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

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

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

Вы узнаете:

  • 🔹 Какая функция подходит для подсчета всех непустых ячеек (включая текст и ошибки)
  • 🔹 Как посчитать ячейки с конкретным значением или по условию
  • 🔹 В чем разница между СЧЁТЗ, СЧИТАТЬПУСТОТЫ и COUNTA
  • 🔹 Как обойти ограничения стандартных функций с помощью массивов и Power Query

1. Базовая функция СЧЁТЗ (COUNTA): подсчет всех непустых ячеек

Функция СЧЁТЗ (COUNTA в английской версии) — самый простой и универсальный способ посчитать количество заполненных ячеек в диапазоне. Она учитывает:

  • 📌 Числа (включая даты и время)
  • 📌 Текстовые строки
  • 📌 Логические значения (ИСТИНА/ЛОЖЬ)
  • 📌 Ошибки (#ДЕЛ/0!, #Н/Д и др.)
  • 📌 Формулы, возвращающие пустую строку (="")

Единственное, что СЧЁТЗ игнорирует — это истинно пустые ячейки (без формул и значений). Синтаксис функции:

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

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

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

Для наглядности сравним работу СЧЁТЗ с другими функциями:

Функция Считает числа Считает текст Считает ошибки Считает пустые ячейки Считает ИСТИНА/ЛОЖЬ
СЧЁТЗ ✅ Да ✅ Да ✅ Да ❌ Нет ✅ Да
СЧЁТ ✅ Да ❌ Нет ❌ Нет ❌ Нет ❌ Нет
СЧИТАТЬПУСТОТЫ ❌ Нет ❌ Нет ❌ Нет ✅ Да ❌ Нет
📊 Как часто вы используете функцию СЧЁТЗ в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда не слышал о ней

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

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

  • 🔍 Подсчитать ячейки с конкретным текстом (например, "Да" или "Одобрено")
  • 🔢 Найти числа в заданном диапазоне (больше 100, меньше 0 и т.д.)
  • 📅 Отфильтровать даты (например, только за текущий месяц)

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

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

Примеры:

  • Подсчет ячеек со словом "Да" в диапазоне B2:B100:
    =СЧЁТЕСЛИ(B2:B100; "Да")
  • Подсчет чисел больше 50 в диапазоне C2:C50:
    =СЧЁТЕСЛИ(C2:C50; ">50")
  • Подсчет непустых ячеек (альтернатива СЧЁТЗ):
    =СЧЁТЕСЛИ(A1:A100; "<>""")

Для нескольких условий используйте СЧЁТЕСЛИМН (COUNTIFS):

=СЧЁТЕСЛИМН(диапазон1; условие1; [диапазон2; условие2]; ...)

Пример: Подсчитаем количество строк, где в столбце A указан "Мужчина", а в столбце B возраст больше 30:

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

3. Подсчет ячеек с формулами (включая пустые результаты)

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

Способ 1: Функция ЕПУСТО + СУММПРОИЗВ

Комбинация ЕПУСТО (ISBLANK) и СУММПРОИЗВ (SUMPRODUCT) позволяет посчитать истинно пустые ячейки (без формул и значений), а затем вычесть их из общего количества:

=СЧЁТЗ(диапазон) - СУММПРОИЗВ(--ЕПУСТО(диапазон))

Пример: Подсчет ячеек с формулами или данными в A1:A20 (исключая истинно пустые):

=СЧЁТЗ(A1:A20) - СУММПРОИЗВ(--ЕПУСТО(A1:A20))

Способ 2: Пользовательская функция на VBA

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

Function CountFormulas(rng As Range) As Long

Dim cell As Range

For Each cell In rng

If cell.HasFormula Then CountFormulas = CountFormulas + 1

Next cell

End Function

Используйте её в таблице как:

=CountFormulas(A1:A100)
⚠️ Внимание: Пользовательские функции VBA работают только в версии Excel для Windows и требуют включения макросов. В Excel Online или Mac-версии этот метод недоступен.

4. Подсчет уникальных непустых значений

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

  • 🔹 ЧСТРОК (ROWS) + УНИК (UNIQUE) — в Excel 365 и Excel 2021
  • 🔹 СУММПРОИЗВ + ЧАСТОТА — в старых версиях

Для Excel 365/2021:

=ЧСТРОК(УНИК(A2:A100)) - 1

Минус 1 нужен, чтобы исключить пустую строку, которую УНИК добавляет автоматически.

Для Excel 2019 и старше:

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

Эта формула массива требует подтверждения клавишами Ctrl+Shift+Enter в старых версиях Excel.

Почему формула массива работает медленно?

Формулы массива (вводимые через Ctrl+Shift+Enter) пересчитывают все возможные комбинации данных, что может замедлять работу с большими диапазонами (более 10 000 строк). В Excel 365 эту проблему решает функция УНИК, которая оптимизирована для больших массивов.

5. Подсчет заполненных ячеек в фильтрованном диапазоне

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

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; диапазон)

Где 3 — это код операции для функции СЧЁТЗ (подсчет непустых ячеек). Другие полезные коды:

  • 🔢 2СЧЁТ (только числовые значения)
  • 🔹 103СЧЁТЗ с учетом скрытых строк вручную (но не фильтром)

Пример: Подсчет видимых непустых ячеек в отфильтрованном столбце B:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; B2:B1000)
⚠️ Внимание: Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ игнорирует строки, скрытые фильтром, но учитывает строки, скрытые вручную (через контекстное меню "Скрыть"). Чтобы исключить и их, используйте код 103 вместо 3.

6. Продвинутые методы: Power Query и массивы

Для обработки больших объемов данных (десятки тысяч строк) или сложных условий стандартные функции Excel могут работать слишком медленно. В таких случаях поможет:

Метод 1: Power Query (Get & Transform)

Инструмент Power Query позволяет загружать данные, фильтровать пустые значения и подсчитывать непустые ячейки без формул. Алгоритм:

  1. Выделите диапазон и перейдите на вкладку Данные → Получение данных → Из таблицы/диапазона.
  2. В редакторе Power Query выберите столбец, кликните правой кнопкой и выберите Удалить пустые.
  3. Добавьте столбец с подсчетом строк: Добавить столбец → Индекс.
  4. Верните данные в Excel: Главная → Закрыть и загрузить.

Power Query автоматически обновляет результаты при изменении исходных данных — в отличие от формул, которые требуют ручного пересчета.

Метод 2: Динамические массивы (Excel 365)

В новых версиях Excel можно использовать функции ФИЛЬТР (FILTER) и СТРОКА (ROW) для гибкого подсчета:

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

Эта формула:

  • 🔹 Фильтрует диапазон A2:A100, оставляя только непустые ячейки
  • 🔹 Подсчитывает количество оставшихся строк с помощью СЧЁТ

☑️ Подготовка к подсчету непустых ячеек

Выполнено: 0 / 4

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

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

Ошибка Причина Решение
Функция СЧЁТЗ считает пустые ячейки В ячейках есть формулы, возвращающие "" (пустую строку) Используйте =СУММПРОИЗВ(--(ДЛСТР(A1:A10)>0))
СЧЁТЕСЛИ не находит текст Регистр символов или лишние пробелы Приведите текст к единому регистру: =СЧЁТЕСЛИ(PODST(A1:A10); "да")
Формула массива не работает Забыли нажать Ctrl+Shift+Enter в старых версиях Excel Повторите ввод формулы с правильным завершением
ПРОМЕЖУТОЧНЫЕ.ИТОГИ считает скрытые строки Использован код 3 вместо 103 Замените код на 103 для игнорирования скрытых строк

Как проверить ячейку на "истинную пустоту"?

Используйте комбинацию функций ЕПУСТО и ЕСЛИ:

=ЕСЛИ(И(ЕПУСТО(A1); НЕ(ЕСТЬФОРМУЛА(A1))); "Пусто"; "Не пусто")

Функция ЕСТЬФОРМУЛА (ISFORMULA) доступна только в Excel 365 и Excel 2021.

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

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

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

=СЧЁТЗ(Лист1:Лист3!A1:A10)

Если имена листов не последовательны, перечислите их вручную:

=СУММ(СЧЁТЗ(Лист1!A1:A10); СЧЁТЗ(Лист2!A1:A10); СЧЁТЗ(Лист5!A1:A10))
Почему СЧЁТЗ считает ячейки с формулой ="" как непустые?

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

  1. Используйте =СУММПРОИЗВ(--(ДЛСТР(A1:A10)>0)) — она проверяет длину строки.
  2. Или комбинацию: =СЧЁТЗ(A1:A10) - СЧИТАТЬПУСТОТЫ(A1:A10).

Оба метода вернут количество ячеек с видимым содержимым.

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

Стандартных функций для подсчета по цвету в Excel нет, но есть обходные пути:

  • 🔹 Фильтр по цвету: Отфильтруйте ячейки по цвету (меню Данные → Фильтр → Фильтр по цвету), затем используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; диапазон).
  • 🔹 VBA: Напишите макрос с использованием свойства .Interior.Color.
  • 🔹 Условное форматирование + вспомогательный столбец: Добавляет столбец с формулой, проверяющей цвет (требует VBA).

Пример кода VBA для подсчета ячеек с красным фоном:

Function CountByColor(rng As Range, color As Range) As Long

Dim cl As Range

Dim count As Long

count = 0

For Each cl In rng

If cl.Interior.Color = color.Interior.Color Then

count = count + 1

End If

Next cl

CountByColor = count

End Function

Используйте как: =CountByColor(A1:A100; B1), где B1 — ячейка с образцом цвета.

Можно ли посчитать непустые ячейки в Google Таблицах?

Да, в Google Sheets используются аналогичные функции:

  • 🔹 =COUNTA(A1:A10) — аналог СЧЁТЗ.
  • 🔹 =COUNTIF(A1:A10; "<>""") — аналог СЧЁТЕСЛИ для непустых ячеек.
  • 🔹 =SUMPRODUCT(--(LEN(A1:A10)>0)) — для подсчета ячеек с видимым содержимым.

Отличия от Excel:

  • 🔹 В Google Sheets нет функции ПРОМЕЖУТОЧНЫЕ.ИТОГИ — используйте =SUBTOTAL(3; A1:A10).
  • 🔹 Функции массива (например, FILTER) работают без Ctrl+Shift+Enter.
Как ускорить подсчет в больших таблицах (более 100 000 строк)?

Для оптимизации производительности:

  1. Отключите автоматический пересчет: Перейдите в Формулы → Параметры вычислений → Вручную и пересчитывайте данные по кнопке F9.
  2. Используйте Power Query: Загрузите данные через Данные → Получение данных и фильтруйте пустые значения на этапе загрузки.
  3. Разбейте данные на меньшие диапазоны: Например, вместо СЧЁТЗ(A1:A100000) используйте =СУММ(СЧЁТЗ(A1:A10000); СЧЁТЗ(A10001:A20000); ...).
  4. Превратите формулы в значения: Выделите диапазон с результатами, скопируйте (Ctrl+C), затем Правая кнопка → Специальная вставка → Значения.

В Excel 365 динамические массивы (например, УНИК или ФИЛЬТР) работают быстрее традиционных формул массива.