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

Подсчёт заполненных ячеек в Microsoft Excel — одна из самых востребованных задач при работе с большими массивами данных. Без этого навыка невозможно анализировать анкеты, отчёты или базы клиентов, где важно знать, сколько записей уже внесено. Однако многие пользователи ошибочно думают, что для этого достаточно просто визуально просмотреть таблицу или использовать функцию СЧЁТ (которая считает только числа). На практике же существует как минимум 5 разных способов подсчитать непустые ячейки — и каждый из них имеет свои нюансы.

В этой статье разберём не только базовые функции вроде СЧЁТЗ, но и продвинутые приёмы с условиями (СЧЁТЕСЛИ, СЧЁТЕСЛИМН), а также малоизвестные трюки для работы с текстом, датами и ошибками. Вы узнаете, как обойти подводные камни (например, когда ячейка "пустая", но на самом деле содержит пробел или формулу), и сможете автоматизировать рутинные задачи. Даже если вы новичок, после прочтения сможете применять эти методы в своих таблицах — с пошаговыми примерами и скриншотами.

Чаще всего необходимость посчитать заполненные ячейки возникает в трёх сценариях:

  1. Анализ анкет или опросов (сколько человек ответили на вопрос).
  2. Контроль заполнения баз данных (например, сколько клиентов указали email).
  3. Проверка корректности импорта данных (нет ли пропущенных полей).

Но перед тем как перейти к формулам, важно понять, что Excel воспринимает как "заполненную" ячейку — это не всегда очевидно.

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

1. Базовая функция СЧЁТЗ: как посчитать все непустые ячейки

Функция СЧЁТЗ (англ. COUNTA) — самый простой способ подсчитать количество ячеек, содержащих любые данные: числа, текст, даты, логические значения (ИСТИНА/ЛОЖЬ) и даже ошибки вроде #ДЕЛ/0!. Её синтаксис предельно лаконичен:

=СЧЁТЗ(значение1; [значение2]; ...)

Где значение1 — это диапазон ячеек или отдельная ячейка. Например, формула =СЧЁТЗ(A1:A100) вернёт количество непустых ячеек в первых ста строках столбца A.

Важный нюанс: СЧЁТЗ игнорирует только truly пустые ячейки. Если в ячейке есть:

  • 📌 Пробел (даже один символ " ")
  • 📌 Формула, возвращающая пустую строку (="")
  • 📌 Нулёвое значение (0)

— функция посчитает её как заполненную. Это часто становится причиной ошибок при анализе данных.

Пример из практики: если вы импортировали данные из Google Forms, где незаполненные поля экспортируются как пустые строки, СЧЁТЗ покажет корректный результат. Но если данные пришли из и незаполненные ячейки содержат NULL или пробелы — придётся использовать дополнительные функции для очистки.

2. СЧЁТЕСЛИ и СЧЁТЕСЛИМН: подсчёт с условиями

Когда нужно посчитать не просто все заполненные ячейки, а только те, что соответствуют определённому критерию, на помощь приходят функции СЧЁТЕСЛИ (англ. COUNTIF) и СЧЁТЕСЛИМН (англ. COUNTIFS). Они позволяют задавать условия в виде текста, чисел или логических выражений.

Синтаксис СЧЁТЕСЛИ:

=СЧЁТЕСЛИ(диапазон; критерий)

Где критерий может быть:

  • 📌 Числом: =СЧЁТЕСЛИ(A1:A10; ">100") (ячейки со значением > 100).
  • 📌 Текстом: =СЧЁТЕСЛИ(B1:B10; "Да") (ячейки с точным совпадением "Да").
  • 📌 Подстановочным знаком: =СЧЁТЕСЛИ(C1:C10; "при*") (ячейки, начинающиеся на "при").

СЧЁТЕСЛИМН работает аналогично, но позволяет задавать несколько условий для разных диапазонов. Например, чтобы посчитать количество строк, где в столбце A указано "Мужчина", а в столбце B возраст > 30:

=СЧЁТЕСЛИМН(A1:A100; "Мужчина"; B1:B100; ">30")

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

Что делать, если критерий содержит специальные символы?

Если ваш критерий включает символы * или ? (например, вы ищете текст "Код *123"), используйте перед ними тильду: =СЧЁТЕСЛИ(A1:A10; "Код ~*123").

3. Подсчёт ячеек с текстом (игнорируя числа и даты)

Допустим, вам нужно посчитать только ячейки, содержащие текст, исключая числа, даты и логические значения. Для этого нет отдельной функции, но можно комбинировать СЧЁТЕСЛИ с функцией ЕТЕКСТ (англ. ISTEXT), которая проверяет, является ли значение текстом.

Формула массива (вводится нажатием Ctrl+Shift+Enter в старых версиях Excel):

=СУММ(--(ЕТЕКСТ(A1:A10)))

В Excel 365 и Excel 2019 можно использовать более простой вариант:

=СУММ(ЕТЕКСТ(A1:A10)*1)

Альтернативный способ — использовать СЧЁТЕСЛИ с критерием "*" (любой текст):

=СЧЁТЕСЛИ(A1:A10; "*")

Однако этот метод посчитает и ячейки с ошибками (например, #ЗНАЧ!), что не всегда удобно.

Если вам нужно, наоборот, исключить текст и посчитать только числа/даты, используйте функцию ЕЧИСЛО (англ. ISNUMBER):

=СУММ(ЕЧИСЛО(A1:A10)*1)

Убедитесь, что в диапазоне нет ячеек с формулами, возвращающими пустую строку

Проверьте, не содержат ли "пустые" ячейки пробелы или непечатаемые символы

Учтите, что даты в Excel хранятся как числа — они не будут учтены как текст

-->

4. Как посчитать ячейки с формулами (даже если они возвращают пустоту)

Одна из самых коварных ситуаций — когда ячейка содержит формулу, но визуально выглядит пустой. Например, формула =ЕСЛИ(A1=0; ""; A1*2) при A1=0 отобразит пустую строку, но СЧЁТЗ посчитает её как заполненную. Чтобы найти такие ячейки, используйте функцию ЕФОРМУЛА (англ. ISFORMULA), доступную в Excel 2013 и новее.

Формула для подсчёта ячеек с формулами в диапазоне A1:A100:

=СУММ(ЕФОРМУЛА(A1:A100)*1)

Если вам нужно посчитать именно пустые ячейки с формулами (те, что возвращают ""), комбинируйте ЕФОРМУЛА с проверкой на пустоту:

=СУММ((ЕФОРМУЛА(A1:A100))*(A1:A100="")*1)
⚠️ Внимание: Функция ЕФОРМУЛА не работает в Google Sheets. Для аналогичной задачи там используйте =ARRAYFORMULA(SUM(IF(ISFORMULA(A1:A100); 1; 0))).

В старых версиях Excel (до 2013) придётся использовать обходной путь с VBA или вручную проверять ячейки через Найти и выделить → Формулы (вкладка Главная).

5. Подсчёт уникальных заполненных ячеек

Если вам нужно посчитать не просто количество заполненных ячеек, а количество уникальных значений среди них, используйте комбинацию функций ЧСТРОК (англ. ROWS) и УНИК (англ. UNIQUE), доступную в Excel 365 и Excel 2021:

=ЧСТРОК(УНИК(A1:A100))

Для более старых версий Excel придётся использовать формулу массива:

=СУММ(1/ЧАСТОТА(ЕСЛИ(A1:A100<>""; A1:A100); ЕСЛИ(A1:A100<>""; A1:A100)))
Важно:
эту формулу нужно вводить с Ctrl+Shift+Enter.

Пример из практики: если у вас список email-адресов клиентов, и вы хотите узнать, сколько уникальных адресов было заполнено (игнорируя повторения), эта формула вернёт точное число.

Чтобы посчитать уникальные значения с условием (например, только те, что начинаются на "A"), комбинируйте УНИК с ФИЛЬТР:

=ЧСТРОК(УНИК(ФИЛЬТР(A1:A100; ЛЕВСИМВ(A1:A100)="A")))

6. Подсчёт заполненных ячеек с учётом ошибок (#Н/Д, #ЗНАЧ! и др.)

По умолчанию СЧЁТЗ учитывает ячейки с ошибками (например, #ДЕЛ/0! или #Н/Д), но иногда это мешает анализу. Чтобы посчитать только "чистые" заполненные ячейки (без ошибок), используйте комбинацию СЧЁТЗ и ЕОШИБКА:

=СЧЁТЗ(A1:A100) - СЧЁТЕСЛИ(A1:A100; "#Н/Д") - СЧЁТЕСЛИ(A1:A100; "#ДЕЛ/0!")

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

=СУММ((A1:A100<>"")*(НЕ(ЕОШИБКА(A1:A100))))

В Excel 365 её можно упростить:

=СУММ((A1:A100<>"")*(ЕНД(A1:A100)))

Для обратной задачи — подсчёта только ячеек с ошибками — используйте:

=СЧЁТЕСЛИ(A1:A100; "#Н/Д") + СЧЁТЕСЛИ(A1:A100; "#ДЕЛ/0!") + ...

или формулу массива:

=СУММ(ЕОШИБКА(A1:A100)*1)

Это особенно полезно при проверке корректности импорта данных или поиске битых ссылок в формулах.

7. Продвинутые приёмы: динамические диапазоны и Power Query

Если ваши данные постоянно обновляются, и вы хотите автоматически подсчитывать заполненные ячейки в динамическом диапазоне (без указания фиксированного конца, например A1:A1000), используйте Таблицы Excel или функцию СМЕЩ (англ. OFFSET).

Пример с СМЕЩ:

=СЧЁТЗ(СМЕЩ(A1; 0; 0; СЧЁТЗ(A:A); 1))

Эта формула подсчитает все непустые ячейки в столбце A, начиная с A1, без необходимости указывать последнюю строку.

Для ещё более гибкой обработки данных используйте Power Query (вкладка Данные → Получить данные):

  1. Выделите диапазон и загрузите его в Power Query.
  2. Добавьте пользовательский столбец с формулой = if [Column1] <> null then 1 else 0.
  3. Сгруппируйте данные по этому столбцу с операцией Сумма.

Этот метод позволяет обрабатывать миллионы строк без замедления Excel.

Критичный нюанс: функции СМЕЩ и Power Query могут значительно замедлить работу книги при большом объёме данных. Для таблиц с более чем 100 000 строк лучше использовать VBA или специализированные надстройки.

Сравнение методов подсчёта заполненных ячеек

Метод Подходит для Учитывает пустые строки от формул Работает с условиями Учитывает ошибки
СЧЁТЗ Все непустые ячейки (числа, текст, даты, ошибки) Да Нет Да
СЧЁТЕСЛИ Ячейки, соответствующие критерию Нет Да Нет
ЕТЕКСТ + СУММ Только текстовые ячейки Нет Нет Нет
ЕФОРМУЛА + СУММ Ячейки с формулами (включая пустые) Да Нет Да
УНИК + ЧСТРОК Уникальные непустые значения Нет Да (с ФИЛЬТР) Нет

Выбор метода зависит от конкретной задачи. Например, для анализа опроса, где важно посчитать уникальные ответы, подойдёт УНИК, а для проверки корректности импорта данных лучше комбинировать СЧЁТЗ и ЕОШИБКА.

FAQ: Частые вопросы о подсчёте ячеек в Excel

Можно ли посчитать заполненные ячейки в фильтрованном диапазоне?

Да, но стандартные функции (СЧЁТЗ, СЧЁТЕСЛИ) работают только с видимыми строками, если использовать их в таблице Excel (Ctrl+T). Для обычных фильтрованных диапазонов используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ (англ. SUBTOTAL):

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

где 3 — код операции для СЧЁТЗ.

Почему СЧЁТЗ считает пустую ячейку как заполненную?

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

  1. Выделите ячейку и посмотрите в строку формул.
  2. Используйте функцию ПЕЧСИМВ (англ. CLEAN) для удаления непечатаемых символов.
  3. Для формул используйте ЕПУСТО (англ. ISBLANK), но помните, что она не срабатывает на ="".

Как посчитать заполненные ячейки в нескольких листах?

Используйте трёхмерные ссылки. Например, чтобы посчитать заполненные ячейки в диапазоне A1:A100 на листах Лист1 и Лист2:

=СУММ(СЧЁТЗ(Лист1:Лист2!A1:A100))
⚠️ Внимание: Если структуры листов различаются, Excel может вернуть ошибку. Перед использованием убедитесь, что диапазоны на всех листах идентичны.

Есть ли разница между СЧЁТЗ и СЧИТАТЬПУСТОТЫ?

Да, это противоположные функции:

  • СЧЁТЗ (англ. COUNTA) считает непустые ячейки.
  • СЧИТАТЬПУСТОТЫ (англ. COUNTBLANK) считает пустые ячейки (включая те, что содержат "" от формул).

Например, если в диапазоне 10 ячеек, из которых 3 пустые, а 7 заполнены, то:

=СЧЁТЗ(A1:A10)
вернёт 7, а
=СЧИТАТЬПУСТОТЫ(A1:A10)
3.

Как автоматически обновлять подсчёт при добавлении новых данных?

Используйте умные таблицы (Ctrl+T):

  1. Преобразуйте ваш диапазон в таблицу.
  2. В столбце с подсчётом используйте формулу со структурированными ссылками, например:
    =СЧЁТЗ(Таблица1[Столбец1])
  3. Теперь при добавлении новых строк в таблицу диапазон в формуле будет расширяться автоматически.

Альтернатива — использовать Динамический массивExcel 365):

=СЧЁТЗ(A1#)

где A1# — это "разливающийся" диапазон.