Работа с большими таблицами в Microsoft Excel часто требует анализа заполненных данных. Один из самых востребованных вопросов — как подсчитать количество непустых ячеек в диапазоне. Эта задача возникает при инвентаризации, обработке анкет, анализе продаж или проверке заполненности отчетов. Казалось бы, простая операция, но в Excel для нее существует сразу несколько методов — от элементарных до продвинутых.
Многие пользователи ошибочно считают, что достаточно просто выделить диапазон и посмотреть количество ячеек в строке состояния. Однако этот метод учитывает все ячейки, включая пустые. А что если нужно посчитать только те, что содержат текст, числа, формулы или даже ошибки? Здесь уже понадобятся специальные функции. В этой статье мы разберем все возможные способы — от базовых до малоизвестных приемов для опытных пользователей.
Вы узнаете не только стандартные функции вроде СЧЁТЗ, но и научитесь обходить подводные камни: например, как отличать ячейки с формулами, возвращающими пустую строку, от действительно пустых. А для любителей автоматизации мы подготовили бонус — макрос на VBA, который упростит рутинные задачи. Готовы оптимизировать свою работу с данными?
1. Базовый метод: функция СЧЁТЗ
Начнем с самого простого и универсального способа — функции СЧЁТЗ (англ. COUNTA). Она подсчитывает все непустые ячейки в указанном диапазоне, независимо от типа данных: числа, текст, логические значения, ошибки или даже формулы, возвращающие пустую строку "".
Формат функции предельно прост:
=СЧЁТЗ(диапазон)
Например, чтобы посчитать заполненные ячейки в столбце A с 1 по 100 строку, используйте:
=СЧЁТЗ(A1:A100)
✅ Плюсы метода:
- 🔹 Простота — достаточно указать один аргумент
- 🔹 Работает во всех версиях Excel (включая Excel 2003)
- 🔹 Учитывает ячейки с формулами, даже если они возвращают пустую строку
❌ Минусы:
- ⚠️ Не различает типы данных (текст/числа/ошибки)
- ⚠️ Считает ячейки с формулой
=""как непустые
⚠️ Внимание: Если в диапазоне есть ячейки с формулой=НД(англ.#N/A), функцияСЧЁТЗпосчитает их как непустые. Чтобы исключить ошибки, используйте комбинацию сЕОШИБКА.
2. Альтернатива: функция СЧИТАТЬПУСТОТЫ
Иногда удобнее подсчитать пустые ячейки, а затем вычесть их из общего количества. Для этого предназначена функция СЧИТАТЬПУСТОТЫ (англ. COUNTBLANK). Ее синтаксис аналогичен:
=СЧИТАТЬПУСТОТЫ(диапазон)
Чтобы получить количество непустых ячеек, используйте формулу:
=СЧЁТ(диапазон) - СЧИТАТЬПУСТОТЫ(диапазон)
где СЧЁТ возвращает общее число ячеек в диапазоне.
🔹 Пример: Подсчет заполненных ячеек в диапазоне B2:B50:
=СТРОКА(B50)-СТРОКА(B2)+1 - СЧИТАТЬПУСТОТЫ(B2:B50)
✅ Когда этот метод удобнее:
- 📊 Когда нужно отдельно анализировать пустые ячейки
- 📊 Если требуется визуально выделить пустые строки перед подсчетом
⚠️ Внимание: ФункцияСЧИТАТЬПУСТОТЫсчитает пустыми только ячейки без любых данных, включая формулы. Ячейка с формулой=""или=НДбудет воспринята как непустая!
Почему СЧИТАТЬПУСТОТЫ может давать неточные результаты?
Функция СЧИТАТЬПУСТОТЫ учитывает только ячейки, которые визуально пусты. Однако в Excel"пустота" бывает разной:
- Истинно пустая ячейка (никогда не редактировалась)
- Ячейка с удаленным содержимым (сохраняет формат)
- Ячейка с формулой, возвращающей пустую строку =""
- Ячейка с ошибкой #Н/Д или #ЗНАЧ!
Функция проигнорирует только первый случай. Для точного анализа комбинируйте СЧИТАТЬПУСТОТЫ с другими методами, например, ЕПУСТО или ДЛСТР.
3. Продвинутый подсчет: комбинация функций
Когда стандартные функции не справляются, на помощь приходят комбинированные формулы. Рассмотрим триные задачи и их решения:
🔹 Задача 1: Подсчитать только ячейки с текстом (исключить числа и даты).
Используйте формулу массива (вводится через Ctrl+Shift+Enter в старых версиях Excel):
=СУММ(--(ЕОШ(ПОИСК("?";A1:A100))))
Функция ПОИСК ищет любой символ ("?"), а ЕОШ проверяет наличие текста.
🔹 Задача 2: Подсчитать ячейки с формулами (даже если они возвращают пустую строку).
Этот трюк требует дополнительного столбца с функцией ЕПУСТО:
=ЕСЛИ(ЕПУСТО(ФОРМУЛТЕКСТ(A1));0;1)
Затем просуммируйте вспомогательный столбец.
🔹 Задача 3: Игнорировать ячейки с ошибками (#Н/Д, #ДЕЛ/0!).
Комбинация с ЕОШИБКА:
=СЧЁТЗ(A1:A100) - СЧЁТЕСЛИ(A1:A100;"#Н/Д")
| Тип данных | Формула | Пример |
|---|---|---|
| Только числа | =СЧЁТ(A1:A100) |
Подсчитывает 1, 3.14, но игнорирует "текст" |
| Только текст | =СУММ(--(ЕТЕКСТ(A1:A100))) |
Подсчитывает "Привет", игнорирует 123 |
| Ячейки с формулами | =СУММ(--(ЕПУСТО(ФОРМУЛТЕКСТ(A1:A100))=ЛОЖЬ)) |
Подсчитывает =СУММ(B1:B10), даже если результат пуст |
| Игнорировать ошибки | =СЧЁТЕСЛИ(A1:A100;"<>#Н/Д") |
Исключает ячейки с #Н/Д, #ЗНАЧ! и др. |
1. Убедитесь, что диапазон не содержит скрытых символов (пробелов, табуляций)
2. Для формул массива в старых версиях Excel используйте Ctrl+Shift+Enter
3. Проверьте региональные настройки (разделители аргументов — запятая или точка с запятой)
4. Тестируйте формулу на небольшом диапазоне перед применением ко всей таблице
-->
4. Подсчет с учетом условий: СЧЁТЕСЛИ и СЧЁТЕСЛИМН
Если нужно подсчитать непустые ячейки с определенным условием, используйте функции СЧЁТЕСЛИ (англ. COUNTIF) или СЧЁТЕСЛИМН (англ. COUNTIFS). Эти функции гибко фильтруют данные по критериям.
🔹 Пример 1: Подсчет ячеек, содержащих текст"Да":
=СЧЁТЕСЛИ(A1:A100;"Да")
🔹 Пример 2: Подсчет числовых ячеек больше 100:
=СЧЁТЕСЛИ(A1:A100;">100")
🔹 Пример 3: Подсчет непустых ячеек в диапазоне, где значения больше 0 и меньше 1000 (используем СЧЁТЕСЛИМН):
=СЧЁТЕСЛИМН(A1:A100;">0"; A1:A100;"<1000")
⚠️ Важный нюанс: Функции СЧЁТЕСЛИ и СЧЁТЕСЛИМН не учитывают пустые ячейки автоматически. Чтобы подсчитать все непустые ячейки с условием, комбинируйте их с СЧЁТЗ:
=СЧЁТЗ(A1:A100) - СЧЁТЕСЛИ(A1:A100;"<>условие")
💡 Полезный совет: Для подсчета ячеек, не равных определенному значению, используйте оператор <>:
=СЧЁТЕСЛИ(A1:A100;"<>Нет")
=СЧЁТЕСЛИ(A1:A100;"*")
Звездочка (*) — это подстановочный знак, обозначающий"любой текст".-->
5. Подсчет непустых ячеек в фильтрованных данных
При работе с отфильтрованными таблицами стандартные функции (СЧЁТЗ, СЧИТАТЬПУСТОТЫ) учитывают все ячейки, включая скрытые фильтром. Чтобы посчитать только видимые непустые ячейки, используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ (англ. SUBTOTAL).
Синтаксис:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(номер_функции; диапазон)
Для подсчета непустых ячеек укажите номер_функции = 3 (аналог СЧЁТЗ для видимых данных):
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A100)
✅ Преимущества метода:
- 🔹 Учитывает только видимые строки после применения фильтра
- 🔹 Автоматически обновляется при изменении фильтра
- 🔹 Работает в таблицах Excel (
Ctrl+T)
❌ Ограничения:
- ⚠️ Не работает с ручным скрытием строк (только с фильтром)
- ⚠️ Игнорирует ячейки, скрытые через группировку
⚠️ Внимание: Если в вашей таблице используются структурированные ссылки (например,Таблица1[Столбец1]), функцияПРОМЕЖУТОЧНЫЕ.ИТОГИбудет учитывать все строки таблицы, а не только видимые. В этом случае используйте классический диапазон (A1:A100).
6. Автоматизация: макрос VBA для подсчета непустых ячеек
Если вам регулярно приходится подсчитывать непустые ячейки в больших диапазонах или с сложными условиями, на помощь придет макрос на VBA. Ниже приведен код, который подсчитывает непустые ячейки с учетом:
- 🔹 Игнорирования формул, возвращающих пустую строку
- 🔹 Возможности указать несколько диапазонов
- 🔹 Вывода результата в сообщении или ячейку
📌 Код макроса:
Dim rng As Range, cell As Range Dim count As Long Dim inputRange As String Dim outputCell As String ' Запрос диапазона у пользователя inputRange = InputBox("Введите диапазон (например, A1:B100)","Подсчет непустых ячеек") If inputRange ="" Then Exit Sub ' Запрос ячейки для вывода результата outputCell = InputBox("Введите ячейку для результата (например, C1). Оставьте пустым для сообщения.","Вывод результата") Set rng = Range(inputRange) count = 0 ' Подсчет непустых ячеек (исключая формулы с"") For Each cell In rng If Not IsEmpty(cell) And cell.Value <>"" Then count = count + 1 End If Next cell ' Вывод результата If outputCell <>"" Then Range(outputCell).Value = count Else MsgBox"Количество непустых ячеек:" & count, vbInformation End If End SubSub CountNonEmptyCells
🔹 Как использовать:
.
Alt + F11, чтобы открыть редактор VBA
Insert → Module).F5 или кнопку на панели.A1:D500) и ячейку для результата.⚠️ Важно: Макрос отличает истинно пустые ячейки от ячеек с формулой - Всегда тестируйте код на копии данных. - Отключите автоматическое обновление связей ( - Для совместной работы используйте цифровую подпись макроса. --> Пользователи Google Sheets также могут подсчитывать непустые ячейки, но с некоторыми особенностями. Большинство функций Excel работают и здесь, но есть нюансы:
✅ Аналоги функций:
❌ Отличия:
🔹 Пример для Google Sheets: Подсчет непустых ячеек в столбце 💡 Совет: В Google Sheets можно использовать регулярные выражения для сложных условий. Например, подсчет ячеек, содержащих буквы (исключая числа):
Даже опытные пользователи Excel иногда сталкиваются с неожиданными результатами при подсчете непустых ячеек. Разберем самые распространенные ошибки и способы их решения:
🔹 Ошибка 1: Функция 🔎 Причина: В диапазоне есть ячейки с формулами, возвращающими пустую строку ( ✅ Решение: Используйте комбинацию:
🔹 Ошибка 2: 🔎 Причина: Ячейки содержат невидимые символы (пробелы, неразрывные пробелы, символы табуляции).
✅ Решение: Очистите данные функцией (код 32 — это пробел) 🔹 Ошибка 3: Формула массива возвращает #ЗНАЧ!.
🔎 Причина: В старых версиях Excel забыли нажать ✅ Решение: Повторите ввод формулы с правильной комбинацией клавиш.
🔹 Ошибка 4: 🔎 Причина: Функция применяется к структурированной таблице ( ✅ Решение: Используйте классический диапазон ( 1. Скрытые символы (пробелы, табуляции) 2. Формулы, возвращающие пустые строки 3. Ошибки (#Н/Д, #ДЕЛ/0!) 4. Ячейки с условным форматированием, которые могут визуально скрывать содержимое --> Да, для этого укажите диапазоны через точку с запятой (в русскоязычной версии Excel):
В англоязычной версии используйте запятую:
Используйте комбинацию функций:
Эта формула учитывает ячейки, которые:
Это происходит из-за ячеек с формулами, возвращающими пустую строку ( Чтобы получить точное количество, используйте:
Сводные таблицы не поддерживают стандартные функции подсчета. Вместо этого:
Alternatively, используйте функцию Стандартные функции Excel не умеют анализировать цвет ячеек. Для этого понадобится:
="". Если нужно учитывать и такие ячейки, замените условие на:
If Not IsEmpty(cell) ThenФайл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).7. Подсчет непустых ячеек в Google Таблицах
=COUNTA(диапазон) — полный аналог СЧЁТЗ=COUNTBLANK(диапазон) — аналог СЧИТАТЬПУСТОТЫ=SUBTOTAL(3; диапазон) — для фильтрованных данных
ФОРМУЛТЕКСТ — для проверки формул используйте =FORMULATEXT (требуется англоязычная локаль)Ctrl+Shift+Enter (автоматически)СЧЁТЕСЛИМН называется =COUNTIFSA, игнорируя ошибки:
=COUNTA(A1:A100) - COUNTIF(A1:A100;"#N/A")=SUM(ARRAYFORMULA(IF(REGEXMATCH(A1:A100;"[а-яА-Яa-zA-Z]"); 1; 0)))8. Типичные ошибки и как их избежать
СЧЁТЗ возвращает завышенное значение.
="") или ноль (=0).
=СУММ(--(A1:A100<>""))СЧИТАТЬПУСТОТЫ не видит"пустые" ячейки.
СЖПРОБЕЛЫ или найдите скрытые символы через ПЕЧСИМВ:
=ПЕЧСИМВ(A1) = 32Ctrl+Shift+Enter.
ПРОМЕЖУТОЧНЫЕ.ИТОГИ считает скрытые строки.
Ctrl+T) без фильтра.
A1:A100) вместо ссылок на таблицу.
Ошибка
Симптом
Решение
Завышенное значение
СЧЁТЗФункция считает ячейки с
=""Используйте
=СУММ(--(A1:A100<>""))
СЧИТАТЬПУСТОТЫ не работаетЯчейки"пустые", но функция возвращает 0
Проверьте на скрытые символы через
ПЕЧСИМВ
#ЗНАЧ! в формуле массива
Формула не введена как массив
Нажмите
Ctrl+Shift+Enter (для Excel 2019 и старше не требуется)
ПРОМЕЖУТОЧНЫЕ.ИТОГИ считает скрытые строкиФункция возвращает значение для всех строк таблицы
Замените структурированную ссылку на классический диапазон
FAQ: Частые вопросы о подсчете непустых ячеек
Можно ли подсчитать непустые ячейки в нескольких несмежных диапазонах?
=СЧЁТЗ(A1:A10; C1:C10; E1:E10)=COUNTA(A1:A10, C1:C10, E1:E10)Как подсчитать непустые ячейки, игнорируя ячейки с нулем?
=СУММ(--(A1:A100<>0); --(A1:A100<>""))
<>0)<>"")Почему
СЧЁТЗ и СЧИТАТЬПУСТОТЫ дают разные результаты при сложении?=""). Такие ячейки:
СЧЁТЗ (как непустые)СЧИТАТЬПУСТОТЫ (так как технически не пусты)=СТРОКА(A100) - СЧИТАТЬПУСТОТЫ(A1:A100)Как подсчитать непустые ячейки в сводной таблице?
Значения.Количество (Count).GETPIVOTDATA для извлечения данных из сводной таблицы в обычный диапазон, а затем применяйте СЧЁТЗ.
Можно ли подсчитать непустые ячейки по цвету?
ПРОМЕЖУТОЧНЫЕ.ИТОГИ)