Как посчитать количество строк в Excel после применения фильтра: пошаговое руководство

Почему стандартный подсчёт не работает с фильтром

Вы применили фильтр в Microsoft Excel, отобразили только нужные строки — и вдруг обнаружили, что функция СЧЁТЗ или номер последней строки в статусной строке показывают общее количество записей, а не видимых. Это стандартное поведение программы: большинство функций игнорируют скрытые фильтром данные. Но как же тогда узнать точное число отфильтрованных строк?

Проблема усложняется, если вы работаете с большими массивами данных: вручную пересчитывать сотни строк нереально. К счастью, в Excel есть как минимум 5 способов решить эту задачу — от простых горячих клавиш до продвинутых формул. Далее разберём каждый метод с примерами и нюансами.

Важно понимать, что фильтр не удаляет данные, а лишь временно скрывает их. Поэтому стандартные функции вроде СТРОКА() или ЧСТРОК будут возвращать значения для всех строк, включая невидимые. Нам нужны инструменты, которые учитывают только видимый диапазон.

📊 Как часто вы используете фильтры в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Способ 1: Горячие клавиши для быстрого подсчёта

Самый простой метод — использовать встроенные возможности Excel без формул. Для этого:

  • 🔹 Выделите диапазон с отфильтрованными данными (включая заголовки).
  • 🔹 Нажмите комбинацию Alt + ; (точка с запятой). Это выделит только видимые ячейки.
  • 🔹 Посмотрите на строку состояния внизу окна — там появится надпись «Выделено: X из Y», где X — количество видимых строк.

Этот способ работает во всех версиях Excel (включая Excel 365 и Excel 2019) и не требует знания формул. Однако он подходит только для разового подсчёта — если данные изменятся, процедуру придётся повторять.

Ограничение метода: он не сохраняет результат в ячейке. Если вам нужно зафиксировать количество строк для дальнейших расчётов, переходите к следующим способам.

Способ 2: Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ — универсальное решение

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ (англ. SUBTOTAL) специально разработана для работы с отфильтрованными данными. Её синтаксис:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(номер_функции; диапазон)

Для подсчёта видимых строк используйте номер_функции = 3 (подсчёт непустых ячеек). Пример:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A2:A100)

Где A2:A100 — столбец с данными (можно указать любой столбец фильтруемого диапазона). Функция проигнорирует скрытые строки и вернёт точное количество видимых записей.

Почему именно номер 3?

Номер 3 соответствует функции СЧЁТЗ, которая подсчитывает непустые ячейки. Другие номера (например, 103) тоже подсчитывают, но включают скрытые строки вручную (через меню «Скрыть строки»).

Номер функции Действие Учитывает скрытые строки фильтра?
1 СРЗНАЧ Нет
2 СЧЁТ Нет
3 СЧЁТЗ Нет
101 СРЗНАЧ (включая скрытые вручную) Да

Преимущество этого метода — динамичность: при изменении фильтра или данных результат обновляется автоматически. Однако функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ не работает с структурированными таблицами (Ctrl + T), если в них включён параметр «Итоги».

Способ 3: Формула массива с ЕСЛИ и ПОДСТАВИТЬ

Если вам нужно подсчитать строки по дополнительному условию (например, только видимые строки с определённым значением), используйте формулу массива:

=СУММ(--(ЕСЛИ(ПОДСТАВИТЬ(A2:A100;"";"")<>"";1;0)))

Введите её как формулу массива: после ввода нажмите Ctrl + Shift + EnterExcel 365 достаточно просто Enter). Эта формула:

  • 🔹 Заменяет пустые ячейки на пустую строку (ПОДСТАВИТЬ).
  • 🔹 Проверяет, не пустая ли ячейка (ЕСЛИ).
  • 🔹 Возвращает 1 для каждой непустой видимой строки и суммирует результаты.

Для подсчёта строк с конкретным значением (например, «Да») модифицируйте формулу:

=СУММ(--(ЕСЛИ(ПОДСТАВИТЬ(A2:A100;"Да";"")="Да";1;0)))

Этот метод гибкий, но требует понимания работы с формулами массива. В Excel 365 можно использовать более простую альтернативу:

=СЧЁТЕСЛИ(ФИЛЬТР(A2:A100;A2:A100<>"");"Да")

Способ 4: Power Query для сложных фильтров

Если вы работаете с большими наборами данных и часто применяете сложные фильтры, Power Query (вкладка «Данные» → «Получить данные») станет мощным инструментом. Алгоритм:

  1. Выделите исходный диапазон и нажмите Данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query примените нужные фильтры через интерфейс.
  3. Добавьте столбец с номером строки: Добавить столбец → Индексный столбец.
  4. После фильтрации посмотрите на последний номер в индексном столбце — это и будет количество видимых строк.

Преимущество Power Query — возможность сохранять шаги обработки и обновлять данные одним кликом. Однако для разового подсчёта этот метод избыточен.

Исправить ошибки в исходных данных|Удалить пустые строки/столбцы|Преобразовать диапазон в таблицу (Ctrl+T)|Запомнить исходный диапазон для обновления-->

Способ 5: VBA-макрос для автоматизации

Если вам нужно регулярно подсчитывать строки после фильтра, напишите простой макрос. Откройте редактор VBA (Alt + F11) и вставьте следующий код:

Function CountFilteredRows(rng As Range) As Long

Dim visRows As Long

Dim cell As Range

visRows = 0

For Each cell In rng

If Not cell.EntireRow.Hidden Then visRows = visRows + 1

Next cell

CountFilteredRows = visRows

End Function

Теперь в любой ячейке можно использовать функцию:

=CountFilteredRows(A2:A100)

Макрос переберёт все строки в диапазоне и посчитает только видимые. Этот способ подходит для пользователей, знакомых с VBA, и позволяет гибко настраивать логику подсчёта.

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии файла из ненадёжного источника Excel заблокирует выполнение макросов по умолчанию.

Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при подсчёте отфильтрованных строк. Вот наиболее распространённые:

  • 🚫 Использование ЧСТРОК или СТРОКА: Эти функции возвращают общее количество строк, игнорируя фильтр. Например, =ЧСТРОК(A2:A100) всегда вернёт 99, независимо от фильтра.
  • 🚫 Неправильный номер функции в ПРОМЕЖУТОЧНЫЕ.ИТОГИ: Номера 101–111 учитывают строки, скрытые вручную, что может исказить результат.
  • 🚫 Забывают про пустые ячейки: Если в фильтруемом столбце есть пустые ячейки, функции вроде СЧЁТ их проигнорируют, а СЧЁТЗ — учтёт.

Чтобы избежать ошибок, всегда проверяйте:

  1. Применён ли фильтр к диапазону (иконка воронки в заголовке столбца).
  2. Совпадает ли диапазон в формуле с фактическим диапазоном данных.
  3. Нет ли в данных скрытых вручную строк (они могут исказить результат).
⚠️ Внимание: Если вы используете структурированные таблицы (Ctrl + T), функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ может вести себя непредсказуемо при включённых итогах. В этом случае отключите итоги через Конструктор → Итоги или используйте альтернативные методы.

FAQ: Ответы на частые вопросы

Можно ли подсчитать видимые строки в Google Таблицах?

Да, в Google Таблицах работает функция =СУБТОТАЛ(3; A2:A100) (аналог ПРОМЕЖУТОЧНЫЕ.ИТОГИ). Также можно использовать комбинацию Alt + ; для выделения видимых ячеек и просмотра их количества в строке состояния.

Почему ПРОМЕЖУТОЧНЫЕ.ИТОГИ возвращает 0, хотя строки видны?

Это происходит, если:

  1. Диапазон в формуле не включает видимые строки (проверьте границы).
  2. Столбец, по которому считаете, содержит только пустые ячейки (используйте СЧЁТЗ вместо СЧЁТ).
  3. Фильтр применён некорректно (например, к другому диапазону).
Как посчитать видимые строки по нескольким условиям?

Используйте комбинацию ПРОМЕЖУТОЧНЫЕ.ИТОГИ с ЕСЛИМН:

=СУММПРОИЗВ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A2:A100); --(ЕСЛИМН(B2:B100="Да"; C2:C100>100)))

Эта формула подсчитает строки, где в столбце B значение «Да», а в столбце C — число больше 100.

Можно ли сохранить количество отфильтрованных строк при копировании?

Нет, формулы ПРОМЕЖУТОЧНЫЕ.ИТОГИ и аналогичные зависят от текущего состояния фильтра. Чтобы зафиксировать значение, скопируйте результат формулы и вставьте как «Значения» (Ctrl + Shift + V → Значения).

Почему горячие клавиши Alt + ; не работают?

Возможные причины:

  • Вы используете неанглийскую раскладку клавиатуры (переключите на английскую).
  • В вашей версии Excel отключены горячие клавиши (проверьте в Файл → Параметры → Настройка ленты).
  • Диапазон не отфильтрован (клавиши работают только с применённым фильтром).