Поиск последних элементов данных в Excel

Иван Корнев·11.04.2026·4 мин

Чтобы найти последнюю заполненную строку, используйте формулу =МАКС(СТРОКА(A:A)*(A:A<>"")), для последней даты — =МАКС(ЕСЛИ(ЕЧИСЛО(A:A); A:A)), а для последней ячейки в диапазоне потребуется комбинация функций ИНДЕКС и ПОИСКПОЗ. Эти методы позволяют автоматически отслеживать границы данных без ручного выделения диапазонов, что критично для динамических отчетов и сводных таблиц.

Быстрый старт Если у вас есть непрерывный список данных в столбце А без пропусков, самый простой способ получить последнее значение: =ИНДЕКС(A:A; СЧЁТЗ(A:A)).

Как определить номер последней заполненной строки

Задача часто возникает при создании «умных» диапазонов, которые должны расширяться вместе с данными. Подход зависит от структуры вашей таблицы: есть ли пустые ячейки внутри столбца или данные идут сплошным потоком.

Вариант 1: Непрерывный список (без пропусков)

Если в столбце нет пустых ячеек между заголовком и последним значением, достаточно посчитать количество непустых ячеек.

Формула:

=СЧЁТЗ(A:A)

Результат: Количество заполненных ячеек (что равно номеру последней строки, если данные начинаются с первой строки). Если есть заголовок, вычтите 1.

Вариант 2: Список с пропусками (универсальный метод)

Если в столбце встречаются пустые ячейки, функция СЧЁТЗ даст неверный результат. Нужно найти максимальный номер строки среди всех непустых ячеек.

Формула (работает во всех версиях):

=МАКС(СТРОКА(A:A)*(A:A<>""))

Важно: В старых версиях Excel эту формулу нужно подтверждать сочетанием Ctrl + Shift + Enter. В Excel 365 и 2021 она работает как обычная.

Формула для Excel 365/2021 (через ФИЛЬТР): Более современный и понятный вариант:

=МАКС(ФИЛЬТР(СТРОКА(A:A); A:A<>""))

Оптимизация производительности Избегайте ссылок на весь столбец (например, A:A) в сложных файлах с тысячами строк формул. Это замедляет пересчет. Замените A:A на конкретный диапазон с запасом, например A2:A10000.

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

Иногда данные разбросаны по нескольким столбцам, и нужно найти самую нижнюю правую ячейку, содержащую информацию (например, в диапазоне A1:D500).

Для этого нужно отдельно найти номер последней строки и последнего столбца, а затем извлечь значение.

Шаг 1: Находим координаты

Используем логику умножения массивов для определения максимальных индексов.

  • Номер последней строки:
    =МАКС(СТРОКА(A1:D500)*(A1:D500<>""))
    ```
*   **Номер последнего столбца:**
    
```excel
    =МАКС(СТОЛБЕЦ(A1:D500)*(A1:D500<>""))
    ```

### Шаг 2: Извлекаем значение
Объединяем поиск координат в одну формулу с функцией `ИНДЕКС`.

**Универсальная формула:**

```excel
=ИНДЕКС(A1:D500; МАКС(ЕСЛИ(A1:D500<>""; СТРОКА(A1:D500)-СТРОКА(A1)+1)); МАКС(ЕСЛИ(A1:D500<>""; СТОЛБЕЦ(A1:D500)-СТОЛБЕЦ(A1)+1)))

Примечание: Для версий до Excel 365 требуется ввод через Ctrl + Shift + Enter.

Формула для Excel 365 (через LET и ФИЛЬТР): Более читаемый вариант с использованием переменных:

=LET(
  data; A1:D500;
  rows; СТРОКА(data);
  cols; СТОЛБЕЦ(data);
  mask; data<>"";
  lastR; МАКС(ФИЛЬТР(rows; mask));
  lastC; МАКС(ФИЛЬТР(cols; mask));
  ИНДЕКС(data; lastR-МИН(rows)+1; lastC-МИН(cols)+1)
)

Как найти последнюю дату в столбце

Поиск последней даты отличается тем, что нужно игнорировать текстовые значения и числа, не являющиеся датами. В Excel даты хранятся как числа, поэтому функция МАКС теоретически подходит, но может ошибочно выбрать большое число, если в столбце есть другие цифры.

Надежный способ с проверкой типа данных

Используем функцию ЕЧИСЛО (или ЕСТЬДАТЫ в новых версиях), чтобы отфильтровать только корректные даты.

Формула (массивная):

=МАКС(ЕСЛИ(ЕЧИСЛО(A:A); A:A))

Не забудьте нажать Ctrl + Shift + Enter в старых версиях Excel.

Формула для Excel 365:

=МАКС(ФИЛЬТР(A:A; ЕЧИСЛО(A:A)))

Возврат всей строки с последней датой

Часто нужно не просто увидеть дату, а подтянуть соответствующее ей значение из соседнего столбца (например, фамилию сотрудника или сумму сделки).

  1. Находим номер строки с последней датой:
    =МАКС(СТРОКА(A:A)*(ЕЧИСЛО(A:A)))
    ```
2.  Используем `ИНДЕКС` для получения данных из столбца B:
    
```excel
    =ИНДЕКС(B:B; МАКС(СТРОКА(A:A)*(ЕЧИСЛО(A:A))))
    ```

Проблема с текстовыми датами Если даты импортированы из другой системы и сохранены как текст (выровнены по левому краю), формулы с ЕЧИСЛО вернут ошибку или 0. В таком случае предварительно преобразуйте текст в даты через инструмент «Текст по столбцам» или функцию ДАТАЗНАЧ.

Сравнение методов поиска

ЗадачаПростой метод (без пропусков)Универсальный метод (с пропусками)Требует Ctrl+Shift+Enter?
Последняя строка=СЧЁТЗ(A:A)=МАКС(СТРОКА(A:A)*(A:A<>""))Да (в старых версиях)
Последнее значение=ИНДЕКС(A:A; СЧЁТЗ(A:A))=ИНДЕКС(A:A; МАКС(...))Да (в старых версиях)
Последняя дата=МАКС(A:A)=МАКС(ЕСЛИ(ЕЧИСЛО(A:A); A:A))Да (в старых версиях)
Ячейка в матрицеНе применимоКомбинация ИНДЕКС + МАКСДа (в старых версиях)

Частые ошибки

  • Игнорирование заголовков. Формула СЧЁТЗ считает и заголовок. Если вам нужен номер строки данных, а не общее количество, вычитайте 1 или начинайте диапазон со второй строки (A2:A1000).
  • «Мусор» в конце столбца. Иногда пользователи случайно форматируют пустые ячейки внизу столбца (добавляют цвет или границу). Excel считает их заполненными. Используйте очистку формата или формулы с проверкой на длину строки ДЛСТР(A1)>0.
  • Ссылка на весь столбец в больших файлах. Использование A:A в массивных формулах на листах с 1 млн строк может «подвесить» файл. Всегда ограничивайте диапазон разумным пределом (например, A2:A50000).

FAQ

Вопрос: Почему формула возвращает 0? Ответ: Скорее всего, в указанном диапазоне нет данных, удовлетворяющих условию (например, нет чисел для функции МАКС или все ячейки пустые). Проверьте формат данных.

Вопрос: Можно ли найти предпоследнюю запись? Ответ: Да. Для этого нужно использовать функцию НАИБОЛЬШИЙ. Например, чтобы найти дату перед последней: =НАИБОЛЬШИЙ(ЕСЛИ(ЕЧИСЛО(A:A); A:A); 2). Цифра 2 означает второе по величине значение.

Вопрос: Работают ли эти формулы в Google Таблицах? Ответ: Да, синтаксис практически идентичен. В Google Таблицах функции называются так же (MAX, ROW, INDEX, FILTER), но разделителем аргументов чаще выступает точка с запятой ; (зависит от региональных настроек).