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.
К началу страницы
Нужна дополнительная помощь?
Найдем номер строки последней заполненной ячейки в столбце и списке. По номеру строки найдем и само значение.
Рассмотрим диапазон значений, в который регулярно заносятся новые данные.
Диапазон без пропусков и начиная с первой строки
В случае, если в столбце значения вводятся, начиная с первой строки и без пропусков, то определить номер строки последней заполненной ячейки можно формулой:
=СЧЁТЗ(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
.
СОВЕТ:
Как видно, наличие пропусков в диапазоне существенно усложняет подсчет. Поэтому имеет смысл при заполнении и проектировании таблиц придерживаться правил приведенных в статье
Советы по построению таблиц
.
Если вы часто обновляете рабочий лист, записывая новые данные в столбцы, вам пригодится способ, позволяющий ссылаться на последнее значение в том или ином столбце (обычно именно это значение меняется чаще всего). [1] Например (рис. 1), на листе отслеживается размер трех фондов в столбцах B:D. Обратите внимание: обновление информации происходит не в одно и то же время. Цель — получить сумму самых последних данных по каждому из фондов. Эти значения вычисляются в диапазоне G4:G6.
Рис. 1. Формула для возвращения последней непустой ячейки в столбцах B:D на основе подсчета ячеек
Скачать заметку в формате Word или pdf, примеры в формате Excel
В этих формулах используется функция СЧЁТЗ, подсчитывающая количество непустых ячеек в столбце С. Это значение используется как второй аргумент функции ИНДЕКС. Например, в столбце В последнее значение находится в строке 7, а функция ИНДЕКС возвращает седьмое значение из этого столбца.
Приведенные выше формулы работают в большинстве случаев, но не всегда. Если в столбце разбросано несколько пустых ячеек, то определение последней непустой ячейки оказывается более сложной задачей, так как функция СЧЁТЗ не считает пустые ячейки.
Метод с формулой массива. Следующая формула массива возвращает содержимое последней непустой ячейки строк столбца В, даже если в этом столбце есть пустые ячейки (рис. 2): {=ИНДЕКС(B:B;МАКС(СТРОКА(B:B)*(B:B<>"
"
)))}. Для ввода формулы массива нажмите Ctrl+Shift+Enter, а не просто Enter.
Рис. 2. Формула массива справится с пустыми значениями в диапазоне
В том виде, в каком эта формула приведена выше, вы не сможете использовать ее в том же столбце, в котором она записана. При попытке сделать это возникнет циклическая ссылка. Чтобы использовать формулу в ячейке В1, измените ссылки так, чтобы они начинались со строки 2, а не охватывали целый столбец. Например, для возврата последней непустой ячейки в диапазоне В2:В1000 используйте запись В2:В1000.
Следующая формула массива напоминает предыдущую, но возвращает последнюю непустую ячейку в строке (в данном случае в строке 2): {=ИНДЕКС(2:2;МАКС(СТОЛБЕЦ(2:2)*(2:2<>"
"
)))}.
Метод с применением обычной формулы (не формулой массива). Данная формула возвращает последнюю непустую ячейку в столбце В: =ПРОСМОТР(2;1/(B:B<>"
"
);B:B). Эта формула игнорирует ячейки с ошибками, поэтому, если в последней непустой ячейке содержится ошибка (например, #ДЕЛ/0!), формула возвратит последнюю непустую ячейку, не содержащую ошибку.
Аналогично, следующая формула возвращает последнюю непустую ячейку из строки 2, не содержащую ошибок: =ПРОСМОТР(2;1/(2:2<>"
"
);2:2).
[1] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. — СПб.: Питер, 2014. — С. 133, 134.
Узнать последнюю строку можно следующими примерами:
1.
Код 1C v 8.х
Сообщить(appExcel.WorkSheets(1).UsedRange.Row);
2. метод определяет, когда закончились данные на листе:
SpecialCells(11) — «последняя» ячейка
Например, если нужен номер строки последней ячейки,
Код 1C v 8.х
LastRow=ExcelApp.Cells(1,1).SpecialCells(11).Row;
Для проверки нажмите в проверяемом файле ctrl+end. Посмотрите на какой строке остановится курсор.
Узнать последнюю колонку можно следующими примерами:
1.
Код 1C v 8.х
Сообщить(appExcel.WorkSheets(1).UsedRange.Columns);
2.
Код 1C v 8.х
LastCol=ExcelApp.Cells(1,1).SpecialCells(11).Columns;
Информация взята с сайта http://helpf.pro
Хотите узнать больше по этому вопросу?
Подпишитесь на нашу рассылку новостей
Подписаться
Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:
Предложить статью
We use Range.SpecialCells() method in the below VBA Code to find and return details of last used row, column, and cell in a worksheet.
Sample Data:
Sample Data
Syntax:
expression.SpecialCells (Type, Value)
Eg: To return the last used cell address in an activesheet. ActiveSheet.Range(“A1”).SpecialCells(xlCellTypeLastCell).Address
VBA Code:
Declaring Variables:
Variable | Data Type | Comments |
---|---|---|
LastRow | Long | Find and store last used row |
LastCol | Long | store last used column |
LastCell | String | store last used cell address |
'Variable Declaration Dim LastRow As Long, LastCol As Long, LastCell As String
Use SpecialCells function to find last used row/column/cell
'Find Last Used Row LastRow = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row 'Find Last Used Column LastCol = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Column 'Find Last Used Cell LastCell = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Address
Concatenate all three variables (LastRow/LastCol/LastCell), add a new line between variables use Chr(10). Show the final output in an Excel Message box.
'Display the last used row/column/cell MsgBox "Last Used Row : " & LastRow & Chr(10) & "Last Used Column : " & LastCol & Chr(10) & "Last Used Cell : " & LastCell
Implementation:
Follow the below steps to find the Last Used Row and Last Used Column in Excel VBA
Step 1: Add a shape (Find Last Row/Column/Cell) on your worksheet.
Step 2: Right-click on “Find Last Row/Column/Cell” and “Assign Macro..”
Step 3: Select “findLastUsedCell”, you can see a list of macros if available in your workbook
Step 4: Save your excel file as “Excel Macro-Enabled Workbook” *.xlsm
Step 5: Click “Find Last Row/Column/Cell” to execute the VBA code. Code will popup below output for the above given example (Output).
Output: