Как в Excel узнать количество заполненных ячеек: полное руководство с примерами

Почему подсчёт заполненных ячеек — ключевая задача в Excel

Работаете с большими таблицами, где важно знать, сколько строк действительно содержат данные? Или нужно быстро проверить, все ли обязательные поля заполнены перед отправкой отчёта? Подсчёт непустых ячеек в Microsoft Excel — одна из самых востребованных операций, которая экономит часы ручной работы. Без этого навыка вы рискуете упустить критичные данные, допустить ошибки в аналитике или даже исказить результаты финансовых расчётов.

В этой статье мы разберём 7 проверенных способов — от элементарных функций вроде СЧЁТЗ до продвинутых техник с Power Query и условным форматированием. Вы узнаете, как считать ячейки с любыми данными (текст, числа, даты), как исключить ошибки #Н/Д, и почему иногда простой фильтр справится быстрее формулы. А ещё — как автоматизировать подсчёт для динамических таблиц, которые обновляются ежедневно.

Неважно, новичок вы или опытный пользователь: здесь найдёте решение под свою задачу. Начнём с базы — и постепенно перейдём к методам, которые используют только 1% специалистов.

Способ 1: Функция СЧЁТЗ — универсальное решение для любых данных

Если вам нужно посчитать все непустые ячейки в диапазоне — независимо от того, содержат они текст, числа, даты или даже ошибки — функция СЧЁТЗ (COUNTA в английской версии) станет вашим первым помощником. Она игнорирует только совершенно пустые ячейки, включая те, где формула возвращает пустую строку ("").

Синтаксис прост:

=СЧЁТЗ(диапазон)

Пример: =СЧЁТЗ(A2:A100) вернёт количество заполненных ячеек в столбце A со 2-й по 100-ю строку.

  • ✅ Подходит для любых типов данных (числа, текст, даты, логические значения)
  • ✅ Учитывает ячейки с формулами, которые возвращают пустую строку (="")
  • ❌ Не считает ячейки с формулами, возвращающими 0 (их придётся обрабатывать отдельно)
  • ❌ Игнорирует ошибки типа #Н/Д или #ДЕЛ/0!

Важный нюанс: СЧЁТЗ посчитает ячейку заполненной, даже если в ней стоит формула вида =ЕСЛИ(A1=0;"";"Есть данные"), которая возвращает пустую строку. Чтобы исключить такие случаи, комбинируйте её с СЧИТАТЬПУСТОТЫ (об этом — в следующем разделе).

Способ 2: СЧИТАТЬПУСТОТЫ — когда нужно инвертировать логику

Функция СЧИТАТЬПУСТОТЫ (COUNTBLANK) работает с точностью до наоборот: она подсчитывает пустые ячейки в диапазоне. Почему это полезно? Иногда проще вычесть количество пустых ячеек из общего числа строк, чем искать заполненные — особенно в больших таблицах.

Формула:

=СТРОКИ(диапазон) - СЧИТАТЬПУСТОТЫ(диапазон)

Пример: =СТРОКИ(A2:A100) - СЧИТАТЬПУСТОТЫ(A2:A100) даст тот же результат, что и СЧЁТЗ(A2:A100), но с другим подходом.

ФункцияСчитаетИгнорируетПример использования
СЧЁТЗВсе непустые ячейкиТолько полностью пустыеПодсчёт заполненных анкет
СЧИТАТЬПУСТОТЫПустые ячейкиЛюбые данные, включая 0Контроль пропущенных полей
СТРОКИ - СЧИТАТЬПУСТОТЫНепустые ячейки (альтернатива СЧЁТЗ)Когда нужна гибкость в формулах

Остерегайтесь ловушки: СЧИТАТЬПУСТОТЫ посчитает как пустую ячейку с формулой =ЕСЛИ(A1=0;"";""), даже если визуально она выглядит заполненной. Для точного подсчёта комбинируйте её с ЕПУСТО:

=СУММПРОИЗВ(--НЕ(ЕПУСТО(диапазон)))
📊 Какой функцией вы чаще пользуетесь для подсчёта ячеек?
СЧЁТЗ
СЧИТАТЬПУСТОТЫ
Другие функции
Не знаю, что это

Способ 3: Фильтр + строка состояния — без формул за 2 клика

Если вам нужно разово узнать количество заполненных ячеек — например, чтобы проверить, все ли клиенты заполнили обязательные поля — не обязательно писать формулы. Достаточно воспользоваться встроенным фильтром и строкой состояния Excel:

Выделите диапазон с заголовком|Нажмите Ctrl+Shift+L (или Данные → Фильтр)|Щёлкните по стрелке фильтра в заголовке столбца|Снимите галочку с "(Пустые)"|Посмотрите количество строк в строке состояния (внизу окна)

-->

Этот метод идеален для визуального контроля: вы сразу увидите, какие строки пустые, и сможете их отфильтровать. А строка состояния покажет точное количество отфильтрованных (т.е. непустых) ячеек.

Преимущества:

  • 🔹 Не требует знания функций
  • 🔹 Работает даже с очень большими диапазонами (миллионы строк)
  • 🔹 Позволяет сразу редактировать или удалять пустые строки

Ограничение: фильтр учитывает только видимые ячейки. Если в таблице есть скрытые строки, их данные не попадут в подсчёт. В таких случаях лучше использовать формулы или Power Query.

Как вернуть фильтр в исходное состояние?

Чтобы сбросить фильтр и показать все строки, нажмите на стрелку фильтра и выберите "Удалить фильтр из столбца" или используйте комбинацию Ctrl+Shift+L повторно.

Способ 4: Условное форматирование — визуализация заполненных ячеек

Когда нужно не просто посчитать, но и наглядно выделить заполненные ячейки — например, для презентации или отчёта — поможет условное форматирование. Этот метод не даст вам точного числа, но позволит мгновенно оценить распределение данных.

Как настроить:

  1. Выделите диапазон (например, A2:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите "Форматировать только ячейки, которые содержат".
  4. В поле "Форматировать только ячейки с" укажите "Значение" → "не равно" → оставьте поле пустым.
  5. Задайте цвет заполнения (например, светло-зелёный) и нажмите ОК.

Теперь все непустые ячейки будут подсвечены. Чтобы узнать их количество, достаточно посчитать цветные строки — или использовать фильтр (как в способе 3).

⚠️ Внимание: Условное форматирование не учитывает ячейки с формулами, возвращающими пустую строку (=""). Для них нужно создавать отдельное правило с функцией =ДЛСТР(ячейка)>0.

Продвинутый трюк: комбинируйте условное форматирование с функцией ПОИСКПОЗ, чтобы автоматически нумеровать только заполненные строки. Например:

=ЕСЛИОШИБКА(ПОИСКПОЗ(A2;$A$2:$A$100;0);"")

Способ 5: Power Query — для динамических и больших данных

Если вы работаете с импортированными данными (из SQL, CSV, веб-страниц) или таблицами, которые обновляются ежедневно, Power Query станет вашим секретным оружием. Этот инструмент позволяет не только посчитать заполненные ячейки, но и автоматизировать процесс для будущих обновлений.

Пошаговая инструкция:

  1. Выделите ваш диапазон и перейдите на вкладку Данные → Из таблицы/диапазонаExcel 2016+).
  2. В открывшемся редакторе Power Query выделите столбец, где нужно посчитать заполненные ячейки.
  3. Нажмите Преобразовать → Статистика → Подсчёт значений.
  4. В новом столбце появится количество непустых ячеек. При необходимости отфильтруйте его.
  5. Нажмите Главная → Закрыть и загрузить, чтобы вернуть данные в Excel.

Преимущества Power Query:

  • 📊 Обрабатывает миллионы строк без замедления
  • 🔄 Автоматически обновляет результаты при изменении исходных данных
  • 🛠️ Позволяет комбинировать подсчёт с другими преобразованиями (очистка, замена, объединение)
⚠️ Внимание: По умолчанию Power Query считает ячейки с формулами, возвращающими "", как пустые. Чтобы их учесть, добавьте пользовательский столбец с формулой = if [Column1] <> null and [Column1] <> "" then 1 else 0.

Для регулярных отчётов сохраните запрос и настройте автоматическое обновление по расписанию (Данные → Обновить все → Свойства связи).

Способ 6: Формулы массива для сложных условий

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

Примеры:

  1. Подсчёт непустых ячеек с числом > 100:
    =СУММ(--(A2:A100<>"");--(A2:A100>100))

    Здесь -- преобразует логические значения ИСТИНА/ЛОЖЬ в 1/0 для суммирования.

  2. Подсчёт ячеек, содержащих текст "Да" (с учётом регистра):
    =СУММПРОИЗВ(--(A2:A100="Да"))
  3. Подсчёт непустых ячеек ИГНОРИРУЯ ошибки:
    =СУММПРОИЗВ(--(ЕОШИБКА(A2:A100)=ЛОЖЬ);--(A2:A100<>""))

Формулы массива требуют нажатия Ctrl+Shift+EnterExcel 365 они работают как обычные формулы). Их главный плюс — гибкость: вы можете комбинировать любые условия в одной формуле.

Минус: такие формулы сложнее отлаживать. Используйте Выделение зависимых ячеек (Формулы → Зависимости формул → Влияющие ячейки), чтобы проверить логику.

Способ 7: VBA-скрипт для автоматизации рутинных задач

Если вам приходится считать заполненные ячейки ежедневно в десятках файлов, пора автоматизировать процесс с помощью VBA. Например, этот скрипт подсчитает непустые ячейки во всех листах книги и выведет результат в новое окно:

Sub CountNonEmptyCells()

Dim ws As Worksheet

Dim total As Long

total = 0

For Each ws In ThisWorkbook.Worksheets

On Error Resume Next ' Пропускаем листы с ошибками

Dim lastRow As Long, lastCol As Long

lastRow = ws.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

lastCol = ws.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

total = total + ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)).SpecialCells(xlCellTypeConstants).Count

Next ws

MsgBox "Всего заполненных ячеек в книге: " & total, vbInformation, "Результат подсчёта"

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Запустите макрос нажатием F5.

Преимущества VBA:

  • 🤖 Автоматизирует рутинные задачи (например, еженедельные отчёты)
  • 📁 Работает с несколькими файлами или листами одновременно
  • ⚡ Быстрее формул при обработке больших объёмов данных
⚠️ Внимание: Макросы могут быть заблокированы настройками безопасности Excel. Перед запуском проверьте Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и включите "Включить все макросы" (только для доверенных файлов!).

Для новичков в VBA рекомендуем начать с записи макроса (Вид → Макросы → Записать макрос) и потом редактировать сгенерированный код.

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

Как посчитать заполненные ячейки, игнорируя формулы с пустыми строками (="")?

Используйте комбинацию функций:

=СУММПРОИЗВ(--(ДЛСТР(A2:A100)>0))

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

Почему СЧЁТЗ считает ячейку с формулой =ЕСЛИ(A1=0;"";"Есть") как заполненную?

Потому что СЧЁТЗ учитывает любые непустые результаты формул, включая пустую строку (""). Чтобы исключить такие случаи, используйте:

=СУММПРОИЗВ(--(A2:A100<>""))

Или комбинируйте с ЕПУСТО:

=СУММПРОИЗВ(--НЕ(ЕПУСТО(A2:A100)))
Можно ли посчитать заполненные ячейки в фильтрованном диапазоне?

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

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

Аргумент 103 означает подсчёт непустых ячеек с учётом скрытых строк (если они отфильтрованы).

Как посчитать уникальные непустые значения в столбце?

Для этого подходит комбинация СЧЁТЕСЛИМН и УНИКExcel 365):

=СТРОКИ(УНИК(ФИЛЬТР(A2:A100; A2:A100<>"")))

В старых версиях используйте Разведка данных → Удалить дубликаты и потом применяйте СЧЁТЗ.

Почему в строке состояния показывается неверное количество выделенных ячеек?

Строка состояния учитывает только видимые ячейки. Если у вас:

  • Применён фильтр — покажет только отфильтрованные строки.
  • Есть скрытые строки/столбцы — их данные не попадут в подсчёт.
  • Выделен несплошной диапазон (с зажатым Ctrl) — покажет сумму по всем фрагментам.

Для точного подсчёта используйте формулы или Power Query.