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

Вы пытаетесь подсчитать количество заполненных ячеек в столбце B2:B100, но функция СЧЁТ возвращает неверное значение, игнорируя текстовые данные? Или нужно узнать, сколько раз в диапазоне встречается конкретное слово, например "Да"? Проблема в том, что Excel предлагает 5 различных функций для подсчёта — и каждая работает по своим правилам. Ошибка в выборе формулы приводит к тому, что вы получаете не количество всех значений, а только числовых, или наоборот — учитываете пустые ячейки.

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

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

  • 📌 Все непустые ячейки=СЧЁТЗ(B2:B100)
  • 📊 Только числа=СЧЁТ(B2:B100)
  • 🔍 Конкретное значение (например, "Да")=СЧЁТЕСЛИ(B2:B100; "Да")
  • 🎯 Уникальные значения=СЧЁТЕСЛИМН(диапазон; критерий1; критерий2...) + УНИК (в новых версиях)

1. Базовые функции: СЧЁТ vs СЧЁТЗ

Начнём с двух самых распространённых функций, которые часто путают. Функция СЧЁТ подсчитывает только ячейки с числовыми данными, включая даты (так как Excel хранит их как числа). Например, если в диапазоне A1:A5 содержатся значения 10, 20, "Текст", 15.05.2023 и пустая ячейка, то =СЧЁТ(A1:A5) вернёт 3 — потому что дата и два числа считаются, а текст и пустота игнорируются.

В отличие от неё, СЧЁТЗ (с буквой "З" на конце) учитывает все непустые ячейки, независимо от типа данных. В том же примере =СЧЁТЗ(A1:A5) вернёт 4, так как пропустит только действительно пустую ячейку. Это ключевое отличие, из-за которого пользователи получают неожиданные результаты.

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

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

Когда нужно посчитать количество ячеек, соответствующих определённому критерию, используйте СЧЁТЕСЛИ. Например, чтобы узнать, сколько раз в столбце C встречается слово "Успешно", введите:

=СЧЁТЕСЛИ(C2:C100; "Успешно")

Функция поддерживает подстановочные знаки:

  • 🔹 =СЧЁТЕСЛИ(A2:A100; "при*") — подсчитает все ячейки, начинающиеся на "при" (например, "привет", "приказ").
  • 🔹 =СЧЁТЕСЛИ(A2:A100; "?ов") — найдёт слова, оканчивающиеся на "ов" с любой буквой перед (например, "Иванов", "Петров").

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

=СЧЁТЕСЛИМН(B2:B100; "Да"; D2:D100; ">100")

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

Чтобы посчитать количество уникальных значений в диапазоне (например, сколько разных городов указано в списке), в Excel 365 и 2021 есть специальная функция:

=СЧЁТЕСЛИМН(УНИК(A2:A100); "<>"")

Здесь УНИК извлекает все уникальные значения, а СЧЁТЕСЛИМН отсеивает пустые строки. В старых версиях Excel потребуется комбинация из ЧАСТОТА и ДСЧЁТ (массивная формула).

Для подсчёта уникальных значений с условием (например, уникальные города только для строк, где статус "Активно"), используйте:

=СЧЁТЕСЛИМН(УНИК(ФИЛЬТР(A2:A100; B2:B100="Активно")); "<>"")
Как работают динамические массивы в Excel 365

Подробнее о функциях УНИК, ФИЛЬТР и других динамических массивах читайте в нашем гайде по новым возможностям Excel. Эти функции доступны только в подписке Microsoft 365 или Excel 2021.

4. Подсчёт видимых ячеек после фильтрации

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

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

Аргумент 3 означает операцию СЧЁТ (подсчёт числовых значений). Для всех непустых ячеек используйте 2:

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

Эта функция автоматически учитывает скрытые строки (включая ручное скрытие и фильтрацию). Однако она не работает с таблицами Excel (объектами Table) — для них используйте столбец структурированных ссылок:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; Таблица1[Столбец1])
📊 Какой способ подсчёта вы используете чаще?
СЧЁТЗ для всех непустых ячеек
СЧЁТЕСЛИ для условий
ПРОМЕЖУТОЧНЫЕ.ИТОГИ после фильтра
Другое

5. Распространённые ошибки и как их избежать

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

⚠️ Внимание: Функция СЧЁТ игнорирует ячейки с формулами, возвращающими текст (например, =ЕСЛИ(A1>10; "Да"; "")). Чтобы их учесть, используйте СЧЁТЗ.
Ошибка Причина Решение
Формула возвращает 0, хотя данные есть Ячейки отформатированы как текст, а не как числа Используйте СЧЁТЗ или преобразуйте данные в числа (ЗНАЧЕН)
Подсчитываются пустые ячейки В ячейках формулы, возвращающие "" (пустую строку) Замените "" на NA() или используйте СЧЁТЕСЛИ(диапазон; "<>""")
СЧЁТЕСЛИ не находит текст Регистр символов не совпадает ("да" ≠ "Да") Используйте СЧЁТЕСЛИ(диапазон; "да") для регистронезависимого поиска

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

=СЧЁТЕСЛИ(диапазон; "#Н/Д")

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

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

  • 🔢 Формулы массива (нажмите Ctrl+Shift+Enter в старых версиях Excel):
  • =СУММ(--(ЧАСТОТА(СМЕЩ(A2:A100;0;0); A2:A100)>0))
  • 📊 Power Query (вкладка "Данные" → "Из таблицы/диапазона"):
  • Загрузите данные в Power Query, выберите столбец → "Группировка" → укажите операцию "Количество значений".

  • 📈 Сводные таблицы:
  • Перетащите поле в область "Значения" и выберите "Количество".

Для очень больших диапазонов (более 100 000 строк) формулы массива могут тормозить. В таких случаях:

  1. Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ для предварительной агрегации.
  2. Разбейте данные на части и подсчитывайте отдельно.
  3. Примените Power Pivot (надстройка для работы с большими наборами данных).

☑️ Подготовка данных перед подсчётом

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

7. Автоматизация: VBA для подсчёта

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

Function CountRedCells(rng As Range) As Long

Dim cl As Range

Dim count As Long

count = 0

For Each cl In rng

If cl.Interior.Color = RGB(255, 0, 0) Then

count = count + 1

End If

Next cl

CountRedCells = count

End Function

Чтобы использовать функцию, введите в ячейке =CountRedCells(A1:A100).

Для подсчёта по нескольким критериям (например, красная заливка И значение > 100) модифицируйте код:

If cl.Interior.Color = RGB(255, 0, 0) And cl.Value > 100 Then

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

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

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

=СУММПРОИЗВ(--(ЕОШ(ПОИСКПОЗ(АДРЕС(СТРОКА(A1:A100);СТОЛБЕЦ(A1:A100));ФОРМУЛТЕКСТ(A1:A100);1))))

Эта формула проверяет, содержит ли ячейка формулу (даже если результат пуст).

Почему СЧЁТЕСЛИ не считает ячейки с датами?

Функция СЧЁТЕСЛИ воспринимает даты как числа. Чтобы посчитать ячейки с датой в конкретном диапазоне (например, после 01.01.2023), используйте:

=СЧЁТЕСЛИ(A2:A100; ">44197")

Где 44197 — это внутреннее представление даты 01.01.2023 в Excel. Чтобы не считать вручную, используйте:

=СЧЁТЕСЛИ(A2:A100; ">="&ДАТА(2023;1;1))
Как подсчитать количество цветных ячеек без VBA?

Без макросов это невозможно сделать стандартными формулами. Альтернативы:

  • Используйте условное форматирование с правилом "Формула" и функцией СЧЁТЕСЛИ для косвенного подсчёта.
  • Экспортируйте данные в Power Query и обработайте там.
  • Установите надстройку (например, Kutools for Excel), которая добавляет функцию COUNTBYCOLOR.
Можно ли посчитать количество ячеек с определённым шрифтом или размером?

Нет, стандартные функции Excel не умеют анализировать форматирование шрифта. Решения:

  1. Написать макрос на VBA (аналогично примеру с цветом заливки).
  2. Добавить вспомогательный столбец с формулой, которая будет отмечать ячейки с нужным форматированием (вручную или через VBA), а затем подсчитывать его.
Как посчитать количество строк в таблице Excel, где хотя бы одна ячейка не пуста?

Используйте формулу массива:

=СУММ(--(ММУЛЬТ(--(A2:A100<>""); --(B2:B100<>""); --(C2:C100<>""))>0))

Эта формула проверяет, есть ли данные хотя бы в одном из столбцов A, B или C для каждой строки. Не забудьте ввести её как формулу массива (Ctrl+Shift+Enter в старых версиях).