Вы пытаетесь подсчитать количество заполненных ячеек в столбце 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, выберите столбец → "Группировка" → укажите операцию "Количество значений".
Перетащите поле в область "Значения" и выберите "Количество".
Для очень больших диапазонов (более 100 000 строк) формулы массива могут тормозить. В таких случаях:
- Используйте
ПРОМЕЖУТОЧНЫЕ.ИТОГИдля предварительной агрегации. - Разбейте данные на части и подсчитывайте отдельно.
- Примените Power Pivot (надстройка для работы с большими наборами данных).
☑️ Подготовка данных перед подсчётом
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 не умеют анализировать форматирование шрифта. Решения:
- Написать макрос на VBA (аналогично примеру с цветом заливки).
- Добавить вспомогательный столбец с формулой, которая будет отмечать ячейки с нужным форматированием (вручную или через VBA), а затем подсчитывать его.
Как посчитать количество строк в таблице Excel, где хотя бы одна ячейка не пуста?
Используйте формулу массива:
=СУММ(--(ММУЛЬТ(--(A2:A100<>""); --(B2:B100<>""); --(C2:C100<>""))>0))
Эта формула проверяет, есть ли данные хотя бы в одном из столбцов A, B или C для каждой строки. Не забудьте ввести её как формулу массива (Ctrl+Shift+Enter в старых версиях).