Подсчёт заполненных ячеек в Microsoft Excel — одна из самых востребованных задач при работе с большими массивами данных. Без этого навыка невозможно анализировать анкеты, отчёты или базы клиентов, где важно знать, сколько записей уже внесено. Однако многие пользователи ошибочно думают, что для этого достаточно просто визуально просмотреть таблицу или использовать функцию СЧЁТ (которая считает только числа). На практике же существует как минимум 5 разных способов подсчитать непустые ячейки — и каждый из них имеет свои нюансы.
В этой статье разберём не только базовые функции вроде СЧЁТЗ, но и продвинутые приёмы с условиями (СЧЁТЕСЛИ, СЧЁТЕСЛИМН), а также малоизвестные трюки для работы с текстом, датами и ошибками. Вы узнаете, как обойти подводные камни (например, когда ячейка "пустая", но на самом деле содержит пробел или формулу), и сможете автоматизировать рутинные задачи. Даже если вы новичок, после прочтения сможете применять эти методы в своих таблицах — с пошаговыми примерами и скриншотами.
Чаще всего необходимость посчитать заполненные ячейки возникает в трёх сценариях:
- Анализ анкет или опросов (сколько человек ответили на вопрос).
- Контроль заполнения баз данных (например, сколько клиентов указали email).
- Проверка корректности импорта данных (нет ли пропущенных полей).
Но перед тем как перейти к формулам, важно понять, что Excel воспринимает как "заполненную" ячейку — это не всегда очевидно.
1. Базовая функция СЧЁТЗ: как посчитать все непустые ячейки
Функция СЧЁТЗ (англ. COUNTA) — самый простой способ подсчитать количество ячеек, содержащих любые данные: числа, текст, даты, логические значения (ИСТИНА/ЛОЖЬ) и даже ошибки вроде #ДЕЛ/0!. Её синтаксис предельно лаконичен:
=СЧЁТЗ(значение1; [значение2]; ...)
Где значение1 — это диапазон ячеек или отдельная ячейка. Например, формула =СЧЁТЗ(A1:A100) вернёт количество непустых ячеек в первых ста строках столбца A.
Важный нюанс: СЧЁТЗ игнорирует только truly пустые ячейки. Если в ячейке есть:
- 📌 Пробел (даже один символ " ")
- 📌 Формула, возвращающая пустую строку (
="") - 📌 Нулёвое значение (
0)
— функция посчитает её как заполненную. Это часто становится причиной ошибок при анализе данных.
Пример из практики: если вы импортировали данные из Google Forms, где незаполненные поля экспортируются как пустые строки, СЧЁТЗ покажет корректный результат. Но если данные пришли из 1С и незаполненные ячейки содержат 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. Подсчёт уникальных заполненных ячеек
Если вам нужно посчитать не просто количество заполненных ячеек, а количество уникальных значений среди них, используйте комбинацию функций Для более старых версий Excel придётся использовать формулу массива:
ЧСТРОК (англ. ROWS) и УНИК (англ. UNIQUE), доступную в Excel 365 и Excel 2021:
=ЧСТРОК(УНИК(A1:A100))
Важно: эту формулу нужно вводить с =СУММ(1/ЧАСТОТА(ЕСЛИ(A1:A100<>""; A1:A100); ЕСЛИ(A1:A100<>""; A1:A100)))Ctrl+Shift+Enter.
Пример из практики: если у вас список email-адресов клиентов, и вы хотите узнать, сколько уникальных адресов было заполнено (игнорируя повторения), эта формула вернёт точное число.
Чтобы посчитать уникальные значения с условием (например, только те, что начинаются на "A"), комбинируйте По умолчанию Если ошибок много и перечислять их все неудобно, используйте формулу массива:
В Excel 365УНИК с ФИЛЬТР:
=ЧСТРОК(УНИК(ФИЛЬТР(A1:A100; ЛЕВСИМВ(A1:A100)="A")))6. Подсчёт заполненных ячеек с учётом ошибок (#Н/Д, #ЗНАЧ! и др.)
СЧЁТЗ учитывает ячейки с ошибками (например, #ДЕЛ/0! или #Н/Д), но иногда это мешает анализу. Чтобы посчитать только "чистые" заполненные ячейки (без ошибок), используйте комбинацию СЧЁТЗ и ЕОШИБКА:
=СЧЁТЗ(A1:A100) - СЧЁТЕСЛИ(A1:A100; "#Н/Д") - СЧЁТЕСЛИ(A1:A100; "#ДЕЛ/0!")=СУММ((A1:A100<>"")*(НЕ(ЕОШИБКА(A1:A100))))
=СУММ((A1:A100<>"")*(ЕНД(A1:A100)))
Для обратной задачи — подсчёта только ячеек с ошибками — используйте:
=СЧЁТЕСЛИ(A1:A100; "#Н/Д") + СЧЁТЕСЛИ(A1:A100; "#ДЕЛ/0!") + ...
или формулу массива:
=СУММ(ЕОШИБКА(A1:A100)*1)
Это особенно полезно при проверке корректности импорта данных или поиске битых ссылок в формулах.
7. Продвинутые приёмы: динамические диапазоны и Power Query
Если ваши данные постоянно обновляются, и вы хотите автоматически подсчитывать заполненные ячейки в динамическом диапазоне (без указания фиксированного конца, например Пример с Эта формула подсчитает все непустые ячейки в столбце Для ещё более гибкой обработки данных используйте Power Query (вкладка Этот метод позволяет обрабатывать миллионы строк без замедления Excel. Критичный нюанс: функции СМЕЩ и Power Query могут значительно замедлить работу книги при большом объёме данных. Для таблиц с более чем 100 000 строк лучше использовать VBA или специализированные надстройки.
Выбор метода зависит от конкретной задачи. Например, для анализа опроса, где важно посчитать уникальные ответы, подойдёт Да, но стандартные функции ( где A1:A1000), используйте Таблицы Excel или функцию СМЕЩ (англ. OFFSET).
СМЕЩ:
=СЧЁТЗ(СМЕЩ(A1; 0; 0; СЧЁТЗ(A:A); 1))A, начиная с A1, без необходимости указывать последнюю строку.Данные → Получить данные):
= if [Column1] <> null then 1 else 0.Сумма.Сравнение методов подсчёта заполненных ячеек
Метод
Подходит для
Учитывает пустые строки от формул
Работает с условиями
Учитывает ошибки
СЧЁТЗВсе непустые ячейки (числа, текст, даты, ошибки)
Да
Нет
Да
СЧЁТЕСЛИЯчейки, соответствующие критерию
Нет
Да
Нет
ЕТЕКСТ + СУММТолько текстовые ячейки
Нет
Нет
Нет
ЕФОРМУЛА + СУММЯчейки с формулами (включая пустые)
Да
Нет
Да
УНИК + ЧСТРОКУникальные непустые значения
Нет
Да (с ФИЛЬТР)
Нет
УНИК, а для проверки корректности импорта данных лучше комбинировать СЧЁТЗ и ЕОШИБКА.
FAQ: Частые вопросы о подсчёте ячеек в Excel
Можно ли посчитать заполненные ячейки в фильтрованном диапазоне?
СЧЁТЗ, СЧЁТЕСЛИ) работают только с видимыми строками, если использовать их в таблице Excel (Ctrl+T). Для обычных фильтрованных диапазонов используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ (англ. SUBTOTAL):
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A100)3 — код операции для СЧЁТЗ.
Почему СЧЁТЗ считает пустую ячейку как заполненную?
Скорее всего, в ячейке есть невидимый символ (пробел, табуляция, неразрывный пробел) или формула, возвращающая пустую строку (=""). Чтобы это проверить:
- Выделите ячейку и посмотрите в строку формул.
- Используйте функцию
ПЕЧСИМВ(англ.CLEAN) для удаления непечатаемых символов. - Для формул используйте
ЕПУСТО(англ.ISBLANK), но помните, что она не срабатывает на="".
Как посчитать заполненные ячейки в нескольких листах?
Используйте трёхмерные ссылки. Например, чтобы посчитать заполненные ячейки в диапазоне A1:A100 на листах Лист1 и Лист2:
=СУММ(СЧЁТЗ(Лист1:Лист2!A1:A100))
⚠️ Внимание: Если структуры листов различаются, Excel может вернуть ошибку. Перед использованием убедитесь, что диапазоны на всех листах идентичны.
Есть ли разница между СЧЁТЗ и СЧИТАТЬПУСТОТЫ?
Да, это противоположные функции:
СЧЁТЗ(англ.COUNTA) считает непустые ячейки.СЧИТАТЬПУСТОТЫ(англ.COUNTBLANK) считает пустые ячейки (включая те, что содержат""от формул).
Например, если в диапазоне 10 ячеек, из которых 3 пустые, а 7 заполнены, то:
=СЧЁТЗ(A1:A10) вернёт 7, а =СЧИТАТЬПУСТОТЫ(A1:A10) — 3.
Как автоматически обновлять подсчёт при добавлении новых данных?
Используйте умные таблицы (Ctrl+T):
- Преобразуйте ваш диапазон в таблицу.
- В столбце с подсчётом используйте формулу со структурированными ссылками, например:
=СЧЁТЗ(Таблица1[Столбец1]) - Теперь при добавлении новых строк в таблицу диапазон в формуле будет расширяться автоматически.
Альтернатива — использовать Динамический массив (в Excel 365):
=СЧЁТЗ(A1#)
где A1# — это "разливающийся" диапазон.