Как найти и вернуть предпоследнее значение в заданной строке или столбце Excel?
При работе с большими листами Excel зачастую нужно найти не просто последнее значение в строке или столбце, а именно предпоследнее. Например, как показано на снимке экрана ниже, для диапазона A1:E16 может потребоваться извлечь предпоследнее значение в 6-й строке или в столбце B. Такая задача особенно актуальна при отслеживании последних изменений, анализе временных рядов или работе с самыми свежими, но не текущими записями в наборе данных. В отличие от поиска последнего значения, определение предпоследнего может быть неочевидным — особенно если данные содержат пустые ячейки или регулярно обновляются. В этой статье представлены чёткие пошаговые решения, которые помогут вам эффективно справиться с этой задачей и избежать распространённых ошибок.

- Найдите и верните предпоследнее значение в определённой строке или столбце с помощью формул
- Код VBA – используйте макрос для поиска предпоследнего значения в указанной строке или столбце
- Другие встроенные методы Excel – отфильтруйте все пустые ячейки и вручную определите предпоследнее значение
Найдите и верните предпоследнее значение в определённой строке или столбце с помощью формул
Как видно на скриншоте выше, для поиска и возврата предпоследнего значения — будь то в 6-й строке или в столбце B диапазона A1:E16 — формулы Excel обеспечивают динамичное и эффективное решение. Они особенно удобны, когда ваши данные регулярно обновляются или позиция предпоследнего значения может смещаться из-за добавления или удаления записей. В отличие от ручных методов, формулы автоматически подстраиваются под актуальные данные, гарантируя точный результат.
Найдите и верните предпоследнее значение в столбце B
1. Выберите пустую ячейку, в которой нужно отобразить предпоследнее значение. Введите следующую формулу массива в строку формул и нажмите Ctrl + Shift + Enter (для устаревших версий Excel), чтобы подтвердить её как формулу массива. В Excel 365 или Excel 2021 достаточно просто нажать клавишу Enter — формулы массива там обрабатываются автоматически.
=INDEX(B:B,LARGE(IF(B:B<,>,"",ROW(B:B)),2)) 
Примечание: в этой формуле B:B означает столбец B. Если вам нужно предпоследнее значение в другом столбце, просто замените B:Bна нужную ссылку на столбец (например, измените на)C:C для столбца C). Этот метод работает как для диапазонов с пустыми ячейками, так и без них, но если присутствуют скрытые значения или отфильтрованные данные, возможны расхождения. Всегда дважды проверяйте ваш диапазон данных, если результат не соответствует ожидаемому.
Найдите и верните предпоследнее значение в строке 6
Выберите пустую ячейку для отображения результата из 6-й строки. Затем введите следующую формулу в строку формул и нажмите Enter, чтобы подтвердить.
=OFFSET($A$6,0, COUNTA(6:6)-2,1,1) 
Примечание: в приведённой выше формуле $A$6 — это первая ячейка строки 6, а 6:6обозначает всю строку 6. При необходимости скорректируйте эти ссылки для других строк. Формула динамически подсчитывает количество непустых ячеек (включая ячейки с пустыми строками) в строке 6, а затем смещается от начальной ячейки, чтобы найти предпоследнюю заполненную ячейку. Если в вашей строке есть формулы, возвращающие пустые строки ()""), функция СЧЁТЗ всё равно может считать их непустыми, что повлияет на результат. Для диапазонов, содержащих смесь констант и формул, всегда проверяйте результаты, чтобы избежать ошибок.
Советы по использованию формул:
- При работе с большими наборами данных использование ссылок на весь столбец (например,)
B:B) может негативно сказаться на производительности. По возможности ограничьте диапазон только необходимой областью (например,B1:B100). - Если ваши данные содержат скрытые строки или отфильтрованы, формулы по-прежнему будут учитывать скрытые и отфильтрованные ячейки. Для корректной работы с отфильтрованными данными рекомендуем использовать специальные функции промежуточных итогов или вспомогательные столбцы.
- Если все значения в целевой строке или столбце пусты, формулы могут вернуть ошибку или неожиданный результат — убедитесь, что ваши данные содержат как минимум два непустых значения.
Код VBA – используйте макрос для поиска предпоследнего значения в указанной строке или столбце
Для пользователей, которым часто нужно находить предпоследнее значение в различных или больших диапазонах, автоматизация процесса с помощью макроса VBA может значительно сэкономить время, особенно при работе с динамическими или сложными таблицами. Макросы полезны, когда размер набора данных меняется, и вы хотите избежать постоянного обновления формул или когда необходимо извлекать значения из нескольких разных позиций одним и тем же способом. Ниже приведено решение на языке VBA: макрос запрашивает целевую строку или столбец и автоматически возвращает предпоследнее значение, исключая необходимость ручного подсчёта или корректировки.
1. Перейдите на вкладку Инструменты разработчика на ленте Excel и щёлкните Visual Basic, чтобы открыть редактор VBA. В редакторе выберите Вставка > Модуль. Затем вставьте следующий код VBA в созданный модуль:
Sub GetSecondToLastValue()
Dim rng As Range
Dim arr As Variant
Dim values As Collection
Dim i As Long
Dim secondLast As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.InputBox("Select the row or column range to analyze", xTitleId, Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
arr = rng.Value
Set values = New Collection
If rng.Rows.Count = 1 Then
For i = 1 To rng.Columns.Count
If arr(1, i) <> "" Then
values.Add arr(1, i)
End If
Next i
ElseIf rng.Columns.Count = 1 Then
For i = 1 To rng.Rows.Count
If arr(i, 1) <> "" Then
values.Add arr(i, 1)
End If
Next i
Else
MsgBox "Please select a single row or single column range.", vbExclamation
Exit Sub
End If
If values.Count < 2 Then
MsgBox "There are less than two non-blank values in the selected range.", vbInformation
Exit Sub
End If
secondLast = values(values.Count - 1)
MsgBox "The second-to-last value is: " & secondLast, vbInformation
End Sub 2. После ввода кода вернитесь в Excel и запустите макрос с помощью кнопки
Выполнить, либо нажмите Alt + F8и выберите GetSecondToLastValueиз списка. Появится запрос на выбор диапазона — одной строки или одного столбца (например, B1:B16 для столбца или A6:E6 для строки). После подтверждения выделения макрос отобразит предпоследнее значение в диалоговом окне.
Примечания:
- Этот макрос учитывает только непустые ячейки, автоматически пропуская пустые в выбранной строке или столбце.
- Если в выделении содержится менее двух непустых значений, появится предупреждение, и значение не будет возвращено.
- Макрос предназначен для выделения только одной строки или одного столбца. Если вы одновременно выберете несколько строк и столбцов, он предложит скорректировать выделение.
- Для автоматизации вы можете дополнительно изменить код так, чтобы результат копировался в указанную ячейку листа вместо отображения во всплывающем диалоговом окне.
Это решение на VBA особенно выгодно для пользователей, работающих с динамическими таблицами или часто обновляемыми наборами данных, так как оно сводит к минимуму ручные ошибки и рутинные операции.
Другие встроенные методы Excel – отфильтруйте все пустые ячейки и вручную определите предпоследнее значение
Хотя формулы и макросы предлагают автоматизированные способы поиска предпоследнего значения, иногда вы можете предпочесть быстрый визуальный подход — особенно при работе с нерегулярными или несмежными данными или когда нужно разово проверить значение. Встроенные средства фильтрации Excel позволяют временно скрыть пустые или нерелевантные ячейки, упрощая поиск нужной записи без редактирования или написания формул.
Метод фильтрации:
- Выделите Диапазон данных for your column or row (for columns, select cells B1:B16; for rows, select A6:E6 in your worksheet).
- На ленте Excel щёлкните Данные > Фильтр, чтобы включить стрелки фильтрации. Щёлкните раскрывающийся список фильтра в заголовке столбца или рядом с выбранным диапазоном.
- Снимите флажок (Пустые), чтобы скрыть пустые ячейки. Теперь в списке отображаются только непустые значения.
- Для столбца прокрутите отфильтрованный список до самого конца и посмотрите предпоследнее значение. Для строки (после фильтрации, если это возможно) считайте справа, чтобы найти предпоследнюю непустую запись.
Примечания и советы:
- Фильтрация наиболее эффективна для небольших и средних списков или когда вам нужно визуально подтвердить расположение значений.
- Если ваш набор данных очень большой, фильтрация может замедлить работу, и она не подходит для автоматизации или многократного использования.
- Когда применены фильтры, убедитесь, что вы работаете в правильном контексте (отфильтрованные списки могут пропускать скрытые строки или столбцы).
- Чтобы удалить фильтры, щёлкните Очистить на вкладке «Данные».
Этот метод менее подходит для постоянного динамического анализа или работы с большими наборами данных, однако обеспечивает прозрачную ручную проверку предпоследней непустой записи — что может быть полезно для быстрой диагностики или подтверждения.
Связанные статьи:
- Как найти позицию первого или последнего числа в текстовой строке в Excel?
- Как найти первую или последнюю пятницу каждого месяца в Excel?
- Как с помощью ВПР найти первое, второе или n-е совпадающее значение в Excel?
- Как найти значение с наибольшей частотой в диапазоне в Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек