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

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

Многие пользователи ошибочно полагают, что функция СЧЁТ решит все проблемы, но она учитывает только числовые значения, игнорируя текст и другие типы данных. В этой статье мы разберём 5 универсальных методов — от базовых до продвинутых, — которые покроют 99% практических сценариев. Вы узнаете, как обойти подводные камни, избежать типичных ошибок и автоматизировать подсчёт даже в самых сложных таблицах.

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

1. Базовая формула: СЧЁТЗ для всех типов данных

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

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

Синтаксис:

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

Где значение1 — обязательный аргумент (диапазон или отдельная ячейка), а последующие аргументы необязательны.

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

=СЧЁТЗ(A1:A10)

Что игнорирует СЧЁТЗ?

Функция пропускает только полностью пустые ячейки (без формул и значений). Но есть нюанс: если в ячейке формула возвращает пустую строку (=""), СЧЁТЗ посчитает её как заполненную! Чтобы этого избежать, используйте комбинацию с ЕПУСТО (разберём ниже).

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

📊 Как часто вы используете СЧЁТЗ в работе?
Ежедневно
Несколько раз в неделю
Редко
Никогда не слышал

2. Подсчёт только числовых ячеек: СЧЁТ и её ограничения

Функция СЧЁТ (англ. COUNT) подходит исключительно для чисел, дат и времени. Она игнорирует:

  • 📄 Текстовые строки
  • ❌ Логические значения (ИСТИНА/ЛОЖЬ)
  • 🔄 Пустые ячейки и ячейки с формулами, возвращающими текст

Синтаксис:

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

Пример: Подсчитаем количество чисел в диапазоне B1:B20:

=СЧЁТ(B1:B20)

⚠️ Внимание: Если в ячейке текст, который выглядит как число (например, "123" в формате текста), СЧЁТ проигнорирует её. Чтобы преобразовать текст в числа, используйте функцию ЗНАЧЕН.

Когда использовать СЧЁТ вместо СЧЁТЗ?

Оптимальные сценарии:

  • 📈 Анализ числовых данных (продажи, температуры, рейтинги)
  • 📅 Подсчёт дат (например, количество записей за месяц)
  • ⏱ Подсчёт временных меток (логи, время выполнения задач)

Как отличить текст от числа в Excel?

Наведите курсор на ячейку — в подсказке справа отобразится реальный формат. Текстовые числа выравниваются по левому краю, а числовые — по правому (если не применено другое форматирование).

3. Продвинутый подсчёт: СЧЁТЕСЛИ и СЧЁТЕСЛИМН с условиями

Если нужно посчитать заполненные ячейки с учётом конкретных критериев, используйте:

  • СЧЁТЕСЛИ (англ. COUNTIF) — одно условие
  • СЧЁТЕСЛИМН (англ. COUNTIFS) — несколько условий

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

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

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

  • 🔢 Числом (">100")
  • 📝 Текстом ("Да" или "текст" для частичного совпадения)
  • 📅 Датой (">=01.01.2026")

Пример 1: Подсчёт ячеек со словом "Да" в диапазоне C1:C100:

=СЧЁТЕСЛИ(C1:C100; "Да")

Пример 2: Подсчёт чисел больше 50 в диапазоне D1:D50:

=СЧЁТЕСЛИ(D1:D50; ">50")

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

=СЧЁТЕСЛИМН(диапазон1; критерий1; [диапазон2; критерий2]; ...)

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

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

Убедитесь, что диапазоны одинакового размера|

Проверьте регистр текста (Excel чувствителен к "Да" и "да")|

Используйте подстановочные знаки (* и ?) для частичного совпадения|

Тестируйте критерии на небольшом диапазоне перед применением ко всей таблице-->

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

⚠️ Внимание: Если критерий — текст длиной более 255 символов, СЧЁТЕСЛИ вернёт ошибку. В таких случаях используйте СУММПРОИЗВ с условием.

Ещё одна распространённая проблема — несоответствие форматов. Например, если в ячейке дата в формате текста ("01.01.2026"), а в критерии вы указываете дату как число (">=45292"), функция не сработает. Решение: приведите данные к единому формату с помощью ДАТАЗНАЧ или ЗНАЧЕН.

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

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

Метод 1. Использование ЕПУСТО в массиве

=СУММ(--НЕ(ЕПУСТО(A1:A10)))

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

=СЧЁТЗ(A1:A10) - СУММ(--НЕ(ЕПУСТО(A1:A10)))

Метод 2. Подсчёт ячеек с формулами (даже если они возвращают "")

Если нужно посчитать все ячейки с формулами, независимо от результата, используйте:

=СУММ(--(ЕФОРМУЛА(A1:A10)))

Где ЕФОРМУЛА — функция из надстройки Morefunc (если её нет, используйте VBA или ПОИСК("=";ФОРМУЛАТЕКСТ(A1))>0).

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

Если в диапазоне есть повторяющиеся значения, а нужно посчитать только уникальные непустые ячейки, используйте комбинацию ЧАСТОТА и СЧЁТЕСЛИ:

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

=СУММ(--(ЧАСТОТА(ЕСЛИ(A1:A10<>""; A1:A10); A1:A10)>0))

Альтернатива для Excel 365/2021:

=СЧЁТ(УНИК(A1:A10))

Функция УНИК автоматически игнорирует пустые ячейки.

⚠️ Внимание: В больших диапазонах (>10 000 ячеек) формулы массива могут значительно тормозить файл. Оптимизируйте их или используйте Power Query для обработки.

Пример практического применения

Допустим, у вас список email-адресов клиентов с пустыми ячейками и дублями. Чтобы узнать количество уникальных адресов:

=СЧЁТ(УНИК(ФИЛЬТР(A1:A100; A1:A100<>"")))

6. Автоматизация подсчёта: динамические диапазоны и таблицы Excel

Статические диапазоны (например, A1:A100) неудобны, если данные постоянно обновляются. Решения:

  • 📊 Преобразовать диапазон в таблицу Excel (Ctrl+T), затем использовать СЧЁТЗ(Таблица1[Столбец1]) — формула автоматически расширится при добавлении строк.
  • 🔄 Динамические именованные диапазоны с СМЕЩ:
    =СЧЁТЗ(СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A:$A);1))

Преимущества таблиц Excel:

  • 🔄 Автоматическое расширение формул
  • 🎨 Удобное форматирование
  • 📊 Встроенные фильтры и сортировка

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

Метод Учитывает Игнорирует Пример использования
СЧЁТЗ Всё кроме пустых ячеек Только полностью пустые ячейки =СЧЁТЗ(A1:A10)
СЧЁТ Числа, даты, время Текст, логические значения, ошибки =СЧЁТ(B1:B20)
СЧЁТЕСЛИ Ячейки, соответствующие условию Всё остальное =СЧЁТЕСЛИ(C1:C100; ">50")
ЕПУСТО + СУММ Реально пустые ячейки Ячейки с формулами, возвращающими "" =СУММ(--НЕ(ЕПУСТО(A1:A10)))
УНИК + СЧЁТ Уникальные непустые значения Пустые ячейки и дубли =СЧЁТ(УНИК(A1:A100))

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

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

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

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

Важно: функция работает только при ручном или автоматическом фильтре (не через ФИЛЬТР в Excel 365).

Почему СЧЁТЗ считает пустые ячейки с формулами?

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

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

Стандартными формулами — нет. Но есть обходные пути:

  1. Используйте Условное форматирование + фильтр по цвету, затем ПРОМЕЖУТОЧНЫЕ.ИТОГИ.
  2. Напишите пользовательскую функцию на VBA с методом DisplayFormat.Interior.Color.

Пример 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

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

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

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

Ограничение: листы должны быть смежными в книге. Если нет — суммируйте результаты по каждому листу отдельно.

Чем СЧЁТЕСЛИМН отличается от СЧЁТЕСЛИ?

СЧЁТЕСЛИ работает с одним условием в одном диапазоне, а СЧЁТЕСЛИМН позволяет задавать несколько условий в нескольких диапазонах. Например:

=СЧЁТЕСЛИМН(A1:A100; ">10"; B1:B100; "Да")

Эта формула подсчитает строки, где в столбце A значение > 10, а в столбце B — "Да".