Работа с блоком ячеек
Блок — это диапазон ячеекExcel,
окруженный со всех сторон пустыми
ячейками или заголовками столбцов и
строк.
Активная область— это прямоугольник,
который заключает в себя все столбцы и
строки листа, содержащиенепустыеячейки.
На рисунке представлены три блока ячеек:
A3:E8,A10:E10,G3:G8. Активная
область -A3:G10.
Если установить указатель мыши на нижней
границе активной ячейки и дважды щелкнуть
левой кнопкой мыши, то будет выделена
нижняя ячейка блока. Если активной
является самая нижняя ячейка блока, то
двойной щелчок на нижней границе ячейки
приведет к выделению ячейки, расположенной
ниже блока. Аналогичным образом выделяются
ячейки при щелчке на правой, левой или
верхней границе активной ячейки. Если
дважды щелкнуть на границе ячейки при
нажатой клавишеShift, то
будут выделены все ячейки, начиная с
текущей до края блока.
Перемещаться по соседним ячейкам можно
при помощи клавиш управления курсором.
Для перемещения к краю блока ячеек
используются клавиши со стрелками при
нажатой клавише Ctrl.
Для перемещения по листу Excelи выделения ячеек удобно пользоваться
клавишамиHome,End
HomeПеремещение к
первой ячейке текущей строки
Ctrl+HomeПремещение к ячейкеA1
Ctrl+EndПеремещение к последней ячейке последнего
столбца активной области
EndВключение/Выключение
режимаEnd
ScrollLock+HomeПеремещение к первой ячейке текущего
окна
ScrollLock+EndПеремещение к последней ячейке текущего
окна
Для быстрого перемещения и выделения
ячейки или диапазона можно пользоваться
командой «Правка»-«Перейти»
(F5)
«Книга Excel, листExcel|| Эксель || Ввод данных в ячейкиExel»
top
Ввод данных в ячейки Excel
— Числовые значения
— Текстовые значения
— Изменение значений в ячейке
— Защита данных в ячейках
— Скрытие ячеек и листов
Существует два типа данных, которые
можно вводить в ячейки листа Excel-константыиформулы.
Константы в свою очередь подразделяются
на: числовые значения, текстовые значения,
значения даты и времени, логические
значения и ошибочные значения.
Числовые значения
Числовые значения могут содержать цифры
от 0 до 9, а также спецсимволы: + — Е е ( ) .
, $ % /
Для ввода числового значения в ячейку
необходимо выделить нужную ячейку и
ввести с клавиатуры необходимую
комбинацию цифр. Вводимые цифры
отображаются как в ячейке, так и в строке
формул. По завершению ввода необходимо
нажать клавишу Enter. После
этого число будет записано в ячейку. По
умолчанию после нажатияEnterактивной становится ячейка, расположенная
на строку ниже, но командой
«Сервис»-«Параметры» можно на
вкладке «Правка» установить
необходимое направление перехода к
следующей ячейке после ввода, либо
вообще исключить переход. Если после
ввода числа нажать какую-либо из клавиш
перемещения по ячейкам (Tab,Shift+Tab…), то
число будет зафиксировано в ячейке, а
фокус ввода перейдет на соседнюю ячейку.
Рассмотрим особенности ввода числовых
значений, использующих спецсимволы.
— Если надо ввести отрицательное число,
то перед числом необходимо поставить
знак «-» (минус).
— Символ Е или е используется для
представления числа в экспоненциальном
виде. Например, 5е3 означает 5*1000, т.е.
5000.
— Числа, заключенные в скобки интерпретируются
как отрицательные, даже если перед
числом нет знака минуса. Т.е. (40) — для
Excelозначает -40.
— При вводе больших чисел для удобства
представления между группами разрядов
можно вводить пробел (23 456,00). В этом
случае в строке формул пробел отображаться
не будет, а в самой ячейке число будет
с пробелом.
— Для ввода денежного формата используется
знак доллара ($).
— Для ввода процентного формата
используется знак процента (%).
— Для ввода даты и дробных значений
используется знак косой черты (/). Если
Excelможет интерпретировать
значение как дату, например 1/01, то в
ячейке будет представлена дата — 1 января.
Если надо представить подобное число
как дробь, то надо перед дробью ввести
ноль — 0 1/01. Дробью также будет представлено
число, которое не может быть интерпретировано
как дата, например 88/32.
Иногда возникает необходимость ввода
длинных чисел. При этом для его отображения
в строке формул используется
экспоненциальное представление не
более чем с 15 значащими цифрами. Точность
значения выбирается такой, чтобы число
можно было отобразить в ячейке.
В этом случае значение в ячейке называется
вводимым или отображаемым значением.
Значение в строке формул называется
хранимым значением.
Количество вводимых цифр зависит от
ширины столбца. Если ширина недостаточна,
то Excelлибо округляет
значение, либо выводит символы ###. В этом
случае можно попробовать увеличить
размер ячейки.
Текстовые значения
Ввод текста полностью аналогичен вводу
числовых значений. Вводить можно
практически любые символы. Если длина
текста превышает ширину ячейки, то текст
накладывается на соседнюю ячейку, хотя
фактически он находится в одной ячейке.
Если в соседней ячейке тоже присутствует
текст, то он перекрывает текст в соседней
ячейке.
Для настройки ширины ячейки по самому
длинному тексту, надо щелкнуть на границе
столбца в его заголовке. Так если щелкнуть
на линии между заголовками столбцов А
и В, то ширина ячейки будет автоматически
настроена по самому длинному значению
в этом столбце.
Если возникает необходимость ввода
числа как текстового значения, то перед
числом надо поставить знак апострофа,
либо заключить число в кавычки — ‘123
«123».
Различить какое значение (числовое или
текстовое) введено в ячейку можно по
признаку выравнивания. По умолчанию
текст выравнивается по левому краю, в
то время как числа — по правому.
При вводе значений в диапазон ячеек
ввод будет происходить слева-направо
и сверху-вниз. Т.е. вводя значения и
завершая ввод нажатием Enter,
курсор будет переходить к соседней
ячейке, находящейся справа, а по достижении
конца блока ячеек в строке, перейдет на
строку ниже в крайнюю левую ячейку.
Изменение значений в ячейке
Для изменения значений в ячейке до
фиксации ввода надо пользоваться, как
и в любом текстовом редакторе, клавишами
DelиBackspace.
Если надо изменить уже зафиксированную
ячейку, то надо дважды щелкнуть на нужной
ячейке, при этом в ячейке появится
курсор. После этого можно производить
редактирование данных в ячейке. Можно
просто выделить нужную ячейку, а затем
установить курсор в строке формул, где
отображается содержимое ячейки и затем
отредактировать данные. После окончания
редакции надо нажатьEnterдля фиксации изменений. В случае
ошибочного редактирования ситуацию
можно «отмотать» назад при помощи
кнопки «Отменить» (Ctrl+Z).
Защита данных в ячейках
Для защиты отдельных ячеек надо
воспользоваться командой
«Сервис»-«Защита»-«Защитить
лист». После включения защиты изменить
заблокированную ячейку невозможно.
Однако, не всегда необходимо блокировать
все ячейки листа. Прежде чем защищать
лист, выделите ячейки, которые надо
оставить незаблокированными, а затем
в меню «Формат» выберите команду
«Ячейки». В открывшемся окне диалога
«Формат ячеек» на вкладке «Защита»
снимите флажок «Защищаемая ячейка».
Следует иметь ввиду, что Excelне обеспечивает индикации режима защиты
для отдельных ячеек. Если необходимо
отличать заблокированные ячейки, можно
выделить их цветом. В защищенном листе
можно свободно перемещаться по
незаблокированным ячейкам при помощи
клавишиTab.
Скрытие ячеек и листов
Чтобы включить режим скрытия формул,
надо:
— выделить нужные ячейки;
— выбрать «Формат»-«Ячейки»
(Ctrl+1);
— на вкладке «Защита» установить
флажок «Скрыть формулы»;
— выбрать «Сервис»-«Защита»-«Защитить
лист»;
— в окне диалога «Защитить лист»
установить флажок «Содержимого».
После этого при активизации ячеек,
содержащих скрытые формулы, эти самые
формулы не выводятся в строке формул,
хотя результаты вычислений видны.
При желании можно скрыть весь лист. При
этом все данные листа сохраняются, но
они не доступны для просмотра.
Чтобы скрыть лист книги надо щелкнуть
на ярлычке листа и выбрать команду
«Формат»-«Лист»-«Скрыть».
После скрытия листа в подменю «Лист»
появится команда «Отобразить», с
помощью которой можно сделать лист
опять видимым.
Для удаления защиты листа или книги
надо выбрать команду «Сервис»-«Защитить»-«Снять
защиту листа/книги».
«Лист Excel: перемещение,
выделение || Эксель || создание формулExcel»
top
Соседние файлы в папке Литература
- #
- #
- #
- #
Обход столбца Excel объектом Range |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Хитрости »
1 Май 2011 43440 просмотров
Как получить последннюю заполненную ячейку формулой?
Очень часто при работе с большими таблицами возникает вопрос: как узнать последнюю заполненную ячейку в столбце? Обычно это необходимо для того, чтобы суммировать или вычислять среднее только в пределах заданной таблицы, без учета пустых строк, т.к. в случае с вычислением среднего пустые строки могут повлиять на расчеты. Так же определить последнюю ячейку формулой бывает необходимо, если в отдельную ячейку в начале таблицы надо выводить последнее записанное в таблицу значение.
По сути способов узнать последнюю заполненную ячейку формулами не так много. Я в этой статье покажу два варианта: в первом формула проще для понимания, но менее универсальна в использовании — она требует точно знать данные какого типа хранятся в столбце: числа или текст, т.к. ориентируется исключительно на тип данных. Вторая формула более универсальна, но может дольше работать.
Формула ниже по сути будет отбирать только числа и вернет номер самой нижней строки, в которой расположено любое число, даже если это нуль:
=ПОИСКПОЗ(3E+307;A1:A100)
=MATCH(3E+307,A1:A100)
А эта формула вернет номер строки с последней ячейкой, в которой записан любой текст
=ПОИСКПОЗ(«яяя»;A1:A100)
=MATCH(«яяя»,A1:A100)
Принцип работы этих формул основан на последнем аргументе функции ПОИСКПОЗ(MATCH) — интервальный просмотр(подробнее про этот аргумент можно узнать из этой статьи — ВПР и интервальный просмотр(range_lookup)). Если его не указывать, то принимается значения по умолчанию для этого аргумента. По умолчанию он равен 1, что означает искать наибольшее значение, которое меньше или равно искомому. Для «правильной» работы с этим параметром справка Excel рекомендует отсортировать по возрастанию массив значений, в которых осуществляется поиск искомого значения. Но в нашем случае сортировка как раз не нужна. Происходит следующее: в случае с числом мы задает максимально возможное число(3E+307), которого заведомо в искомых значениях быть не может. ПОИСКПОЗ сверяет каждое значение с этим числом. Определяет, что значение в массиве меньше искомого(но не равно ему!) и запоминает его позицию. Но т.к. ПОИСКПОЗ стремится найти самый подходящий вариант — то просматривает значения дальше, предполагая, что массив отсортирован по возрастанию и дальше пойдут значения ЕЩЕ БОЛЬШЕ предыдущего и там возможно есть значение, равное искомому. Но наш массив не отсортирован и значения там расположены абы как. Да и значения там все меньше указанного. В результате ПОИСКПОЗ доходит до последнего числа в указанном массиве и возвращает именно его позицию, т.к. дальше искать нечего и ПОИСКПОЗ считает, что это максимально подходящее число. Опять же потому, что считает, что значения у нас отсортированы.
Тоже самое и с текстом, только тут мы задаем текст «яяя», который в бинарной сетке будет в самом низу, т.к. буква «я» имеет самый большой числовой код. А три этих буквы подряд дают по сути «самый большой текст».
Но чаще всего как раз заранее неизвестно, какие именно данные будут в ячейках: текстовые или числовые. Т.е. по факту в столбце могут быть абсолютно любые данные. В таких случаях можно применить один из следующих вариантов формулы:
- =МАКС(ПОИСКПОЗ({«яяя»;3E+307};A1:A100))
=MAX(MATCH({«яяя»,3E+307},A1:A100)) - =ПРОСМОТР(2;1/(A1:A100<>»»);СТРОКА(A1:A100))
=LOOKUP(2,1/(A1:A100<>»»),ROW(A1:A100))
Первая формула вводится как формула массива(ввод формулы в ячейку завершается нажатием не просто Enter, а сочетанием клавиш Ctrl+Shift+Enter). Но есть и еще один недостаток: если в столбце нет какого-либо типа данных — формула вернет #Н/Д. Обхитрить можно, если захватить в расчет заголовок, в котором будет текст или число, в зависимости от того, какие данные предположительно могут отсутствовать. Или сделать двойной заголовок — в одном число, в другом текст. Основной принцип работы ПОИСКПОЗ в данном случае описан выше. Могу лишь добавить, что ввод её как формулу массива заставляет формулу искать как позицию самого дальнего числа, так и позицию самого дальнего текста. А функция МАКС(MAX) отбирает из найденных двух позиций максимальное значение.
Вторая формула вводится в ячейку обычным методом и вроде как не имеет никаких подводных камней. Кроме одного: не стоит указывать в качестве диапазона ВЕСЬ СТОЛБЕЦ с данными — формула может очень долго пересчитываться. Особенно это сказывается в файлах версии 2007 Excel, где строк больше миллиона. Предыдущие формулы лишены этого недостатка. Хотя я в любом случае советовал бы указывать явно диапазон «с запасом».
Принцип её работы похож на ПОИСКПОЗ с небольшими дополнениями:
- A1:A100<>»» — здесь идет сравнение каждого значения в указанном диапазоне и если ячейка не пустая — возвращается ИСТИНА(TRUE).
- 1/(A1:A100<>»») — здесь единица делится на полученные значения ИСТИНА(TRUE). Звучит как бред, но. Для Excel ИСТИНА это 1, а ЛОЖЬ — 0. Таким образом мы получаем массив значений 1 и #ДЕЛ/0(#DIV/0). Т.е. максимальное число в массиве у нас — 1. А принцип работы функции ПРОСМОТР(LOOKUP) очень похож на ПОИСКПОЗ, только она всегда стремиться найти наибольшее подходящее значение, меньшее или равное искомому. А в качестве искомого мы задаем 2, т.е. оно заведомо больше любого значения в массиве для поиска: =ПРОСМОТР(2;1/(A1:A100<>»»)
Таким образом ПРОСМОТР всегда будет нам возвращать позицию последней заполненной ячейки. Последний аргумент функции ПРОСМОТР — массив, равный по размеру просматриваемому(A1:A100), из которого будет возвращено значение. Мы задаем в качестве этого массива значений для возврата массив номеров строк: СТРОКА(A1:A100). Т.е. если в массиве A1:A100 последнее значение будет в ячейке A9, то ПРОСМОТР вернет значение для СТРОКА(A9).
Как видно, недостатки есть в любой из приведенных формул, так что выбор в любом случае за Вами и зависеть он будет напрямую от поставленной задачи.
Вот один из примеров, как можно применить определение последней ячейки в реальных формулах. Например, вычисление среднего значения:
=СРЗНАЧ(A2:ИНДЕКС(A1:A100;ПОИСКПОЗ(9E+307;A1:A100)))
Числовые данные начинаются с ячейки
A2
. В A1 заголовок, а где заканчиваются данные неизвестно — они постоянно изменяются: удаляются, дополняются.
В данном случае мы первой ячейкой указываем
A2
— начало числовых данных. А вот далее уже идет вычисление последней ячейки:
ПОИСКПОЗ(9E+307;A1:A100)
В данном случае можно применить поиск последней ячейки именно с числом, т.к. СРЗНАЧ(AVERAGE) в любом случае игнорирует текст и лишние ячейки нам ни к чему. ПОИСКПОЗ(MATCH) возвращает номер последней ячейки в диапазоне
A1:A100
. Но чтобы получить именно ссылку на эту ячейку, а не просто её строку мы используем ИНДЕКС(INDEX):
ИНДЕКС(A1:A100;ПОИСКПОЗ(9E+307;A1:A100))
Т.е. по шагам формулу можно представить так:
=СРЗНАЧ(A2:ИНДЕКС(A1:A100;ПОИСКПОЗ(9E+307;A1:A100))) =>
=СРЗНАЧ(A2:ИНДЕКС(A1:A100;9)) =>
=СРЗНАЧ(A2:A9) =>
4,5
В приложенном к теме примере записаны все приведенные формулы, а так же пара примеров того, как эти формулы можно использовать в других формулах для определения конца диапазона.
Скачать пример
Tips_General_Last_Cell_Formula.xls (38,5 KiB, 3 350 скачиваний)
Также см.:
Как определить последнюю ячейку на листе через VBA?
Что такое формула массива
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Найдем номер строки последней заполненной ячейки в столбце и списке. По номеру строки найдем и само значение.
Рассмотрим диапазон значений, в который регулярно заносятся новые данные.
Диапазон без пропусков и начиная с первой строки
В случае, если в столбце значения вводятся, начиная с первой строки и без пропусков, то определить номер строки последней заполненной ячейки можно формулой:
=СЧЁТЗ(A:A))
Формула работает для числовых и текстовых диапазонов (см.
Файл примера
)
Значение из последней заполненной ячейки в столбце выведем с помощью функции
ИНДЕКС()
:
=ИНДЕКС(A:A;СЧЁТЗ(A:A))
Ссылки на целые столбцы и строки достаточно ресурсоемки и могут замедлить пересчет листа. Если есть уверенность, что при вводе значений пользователь не выйдет за границы определенного диапазона, то лучше указать ссылку на диапазон, а не на столбец. В этом случае формула будет выглядеть так:
=ИНДЕКС(A1:A20;СЧЁТЗ(A1:A20))
Диапазон без пропусков в любом месте листа
Если список, в который вводятся значения расположен в диапазоне
E8:E30
(т.е. не начинается с первой строки), то формулу для определения номера строки последней заполненной ячейки можно записать следующим образом:
=СЧЁТЗ(E9:E30)+СТРОКА(E8)
Формула
СТРОКА(E8)
возвращает номер строки заголовка списка. Значение из последней заполненной ячейки списка выведем с помощью функции
ИНДЕКС()
:
=ИНДЕКС(E9:E30;СЧЁТЗ(E9:E30))
Диапазон с пропусками (числа)
В случае
наличия пропусков
(пустых строк) в столбце, функция
СЧЕТЗ()
будет возвращать неправильный (уменьшенный) номер строки: оно и понятно, ведь эта функция подсчитывает только значения и не учитывает
пустые
ячейки.
Если диапазон заполняется
числовыми
значениями, то для определения номера строки последней заполненной ячейки можно использовать формулу
=ПОИСКПОЗ(1E+306;A:A;1)
. Пустые ячейки и текстовые значения игнорируются.
Так как в качестве просматриваемого массива указан целый столбец (
A:A
), то функция
ПОИСКПОЗ()
вернет номер последней заполненной строки. Функция
ПОИСКПОЗ()
(с третьим параметром =1) находит позицию наибольшего значения, которое меньше или равно значению первого аргумента (1E+306). Правда, для этого требуется, чтобы массив был
отсортирован
по возрастанию. Если он не отсортирован, то эта функция возвращает позицию последней заполненной строки столбца, т.е. то, что нам нужно.
Чтобы вернуть значение в последней заполненной ячейке списка, расположенного в диапазоне
A2:A20
, можно использовать формулу:
=ИНДЕКС(A2:A20;ПОИСКПОЗ(1E+306;A2:A20;1))
Диапазон с пропусками (текст)
В случае необходимости определения номера строки последнего
текстового
значения (также при наличии пропусков), формулу нужно переделать:
=ПОИСКПОЗ(«*»;$A:$A;-1)
Пустые ячейки, числа и текстовое значение
Пустой текст
(«») игнорируются.
Диапазон с пропусками (текст и числа)
Если столбец содержит и
текстовые и числовые значения
, то для определения номера строки последней заполненной ячейки можно предложить универсальное решение:
=МАКС(ЕСЛИОШИБКА(ПОИСКПОЗ(«*»;$A:$A;-1);0); ЕСЛИОШИБКА(ПОИСКПОЗ(1E+306;$A:$A;1);0))
Функция
ЕСЛИОШИБКА()
нужна для подавления ошибки возникающей, если столбец
A
содержит только текстовые или только числовые значения.
Другим универсальным решением является
формула массива
:
=МАКС(СТРОКА(A1:A20)*(A1:A20<>»»))
Или
=МАКС(СТРОКА(A1:A20)*НЕ(ЕПУСТО(A1:A20)))
После ввода
формулы массива
нужно нажать
CTRL + SHIFT + ENTER
. Предполагается, что значения вводятся в диапазон
A1:A20
. Лучше задать фиксированный диапазон для поиска, т.к. использование в
формулах массива
ссылок на целые строки или столбцы является достаточно ресурсоемкой задачей.
Значение из последней заполненной ячейки, в этом случае, выведем с помощью функции
ДВССЫЛ()
:
=ДВССЫЛ(«A»&МАКС(СТРОКА(A1:A20)*(A1:A20<>»»)))
Или
=ДВССЫЛ(«A»&МАКС(СТРОКА(A1:A20)*НЕ(ЕПУСТО(A1:A20))))
Как обычно, после ввода
формулы массива
нужно нажать
CTRL + SHIFT + ENTER
вместо
ENTER
.
СОВЕТ:
Как видно, наличие пропусков в диапазоне существенно усложняет подсчет. Поэтому имеет смысл при заполнении и проектировании таблиц придерживаться правил приведенных в статье
Советы по построению таблиц
.
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
При этом в Excel сохраняется только часть каждого из них, которая содержит данные или форматирование. Пустые ячейки могут содержать форматирование, из-за котором последняя ячейка в строке или столбце выпадет за пределы диапазона ячеек, содержащих данные. В результате размер файла книги будет больше, чем требуется, и при печати книги на печать может потребоваться больше страниц.
Чтобы избежать этих проблем, можно найти последнюю ячейку с данными или форматированием на нем, а затем сбросить эту последнюю ячейку, сбросить все форматирование, которое может быть применено в пустых строках или столбцах между данными и последней ячейкой.
Поиск последней ячейки с данными или форматированием на нем
-
Чтобы найти последнюю ячейку с данными или форматированием, щелкните в любом месте на нем и нажмите CTRL+END.
Примечание: Чтобы выбрать последнюю ячейку в строке или столбце, нажмите клавишу END, а затем клавишу СТРЕЛКА ВПРАВО или СТРЕЛКА ВНИЗ.
Очистка всего форматирования между последней ячейкой и данными
-
Выполните одно из указанных ниже действий.
-
Чтобы выбрать все столбцы справа от последнего столбца с данными, щелкните первый заголовок столбца, нажмите и удерживайте нажатой кнопку CTRL, а затем щелкните заголовки столбцов, которые нужно выбрать.
Совет: Можно также щелкнуть первый заголовок столбца и нажать CTRL+SHIFT+END.
-
Чтобы выбрать все строки под последней строкой с данными, щелкните заголовок первой строки, нажмите и удерживайте нажатой кнопку CTRL, а затем щелкните заголовки строк, которые нужно выбрать.
Совет: Можно также щелкнуть заголовок первой строки и нажать CTRL+SHIFT+END.
-
-
На вкладке Главная в группе Редактирование щелкните стрелку рядом с кнопкой Очистить и выберите очистить все.
-
Сохраните лист.
-
Закроем таблицу.
При повторном открыть книгу последняя ячейка данных должна быть последней ячейкой на этом сайте.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
К началу страницы