Последняя заполненная ячейка в EXCEL

history

Найдем номер строки последней заполненной ячейки в столбце и списке. По номеру строки найдем и само значение.


Рассмотрим диапазон значений, в который регулярно заносятся новые данные.

Диапазон без пропусков и начиная с первой строки

В случае, если в столбце значения вводятся, начиная с первой строки и без пропусков, то определить номер строки последней заполненной ячейки можно формулой: =СЧЁТЗ(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 .

СОВЕТ: Как видно, наличие пропусков в диапазоне существенно усложняет подсчет. Поэтому имеет смысл при заполнении и проектировании таблиц придерживаться правил приведенных в статье Советы по построению таблиц .


Комментарии

Только для авторизованных пользователей

Аноним, 23 апреля 2017 г.
Спасибо, мне тоже помогло.
Аноним, 28 апреля 2017 г.
дайте совет. каждый день в таблицу заносятся новые значения. и каждый раз при открытии прихотится листать в самый низ, можно ли сделать так чтобы при открытии таблицы выделялась последняя не заполненная ячейчка первого столбца.
Михаил, 29 апреля 2017 г.
При сохранении файла EXCEL запоминает положение прокрутки листа. Т.е. если файл был сохранен сразу после ввода значения и закрыт, то он откроется в этом же месте. Кроме того, если столбец заполняется подряд, без пропусков с пустыми ячейками, то дважды кликнув на нижнюю границу любой ячейки этого столбца, Вы переместитесь в самый низ столбца.
Аноним, 26 апреля 2020 г.
👍
Виктория, 22 марта 2021 г.
Добрый день. Подскажите как вывести последнюю заполненную ячейку, если надо просматривать через одну (либо выборочно поставить какие нужно просматривать). Функция ПРОСМОТР не подходит. Например нужно вывести последнее заполненное значение из ячеек В2,D2, F2,H2. В ячейках A2, C2... тоже есть данные, которые нужно проигнорировать
Михаил, 22 марта 2021 г.
Добрый день, формула =МАКС(СТРОКА(A2:A14)*(A2:A14<>"")*ЕНЕЧЁТ(СТРОКА(A2:A14))) вернет номер строки последней заполненной нечетной строки. Выражение ЕНЕЧЁТ(СТРОКА(A2:A14) - это условие, которое указывает на те ячейки, которые нужно принимать в расчет при поиске последней заполненной ячейки. Вводить формулу нужно как формулу массива
(только для авторизованных пользователей)

© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved