При попытке подсчитать пустые ячейки в диапазоне A1:A100 стандартная функция СЧЁТЗ возвращает ноль — даже когда визуально видно, что половину строк вы не заполняли. Проблема в том, что Excel воспринимает как "пустые" только ячейки с абсолютно нулевым содержимым, игнорируя при этом строки с пробелами, апострофами или формулами, возвращающими "". Например, если в ячейке стоит формула =ЕСЛИ(B1=0;"";"Данные"), которая возвращает пустую строку, СЧЁТЗ её проигнорирует, хотя визуально она выглядит пустой.
Чтобы точно посчитать реально пустые ячейки (включая те, где формулы возвращают пустоту), нужно комбинировать функции или использовать альтернативные подходы. Ниже разберём 5 методов — от простых формул до VBA-скриптов, — а также объясним, почему стандартные способы часто дают сбой и как обойти типичные ошибки (например, подсчёт ячеек с пробелами как "непустых").
Почему Excel не видит пустые ячейки: 3 скрытые причины
Перед тем как применять формулы, важно понять, что именно Excel считает "пустотой". Программа различает:
- 🔹 Абсолютно пустые ячейки — никогда не редактировались, не содержат формул, форматирования или даже невидимых символов (например,
CHAR(160)— неразрывный пробел). - 🔹 Ячейки с пустой строкой (
"") — результат работы формул вроде=ЕСЛИ(A1=0;"";"Да")или ручного ввода двух кавычек. - 🔹 Ячейки с "невидимым" содержимым — пробелы, табуляции, апострофы (например,
'для принудительного текстового формата).
Стандартная функция СЧЁТЗ учитывает только первый тип. Чтобы захватить остальные случаи, нужны обходные пути. Например, ячейка с формулой =НД() (ошибка #N/A) не является пустой, но СЧЁТЗ её посчитает как заполненную. А вот ячейка с формулой =ЕСЛИОШИБКА(A1/B1;""), возвращающей пустую строку, будет проигнорирована.
⚠️ Внимание: Если вы копировали данные из веб-страниц или других источников, в "пустых" ячейках могут скрываться символыCHAR(160)(неразрывный пробел) илиCHAR(9)(табуляция). Чтобы их обнаружить, используйте формулу=КОДСИМВ(ЛЕВСИМВ(A1;1))— она вернёт код первого символа.
Ещё одна ловушка — условное форматирование. Если ячейка визуально пустая, но подсвечивается цветом по правилу (например, "если значение = 0, закрасить красным"), это не означает, что она действительно пуста. Форматирование не влияет на содержимое, но может ввести в заблуждение.
Метод 1: Функция СЧИТАТЬПУСТОТЫ (для абсолютно пустых ячеек)
Самый простой способ — использовать встроенную функцию СЧИТАТЬПУСТОТЫ (англ. COUNTBLANK). Она подсчитывает ячейки, которые:
- 📌 Никогда не редактировались.
- 📌 Содержат
""(пустую строку) как результат формулы. - 📌 Были очищены командой
Удалить → Очистить содержимое.
Синтаксис:
=СЧИТАТЬПУСТОТЫ(диапазон)
Пример: =СЧИТАТЬПУСТОТЫ(A1:A100) вернёт количество ячеек в столбце A, которые не содержат данных. Однако эта функция не учитывает ячейки с пробелами или апострофами. Чтобы расширить её возможности, комбинируйте с ЕПУСТО:
=СУММПРОИЗВ(--(ЕПУСТО(A1:A100)))
⚠️ Внимание: В Excel 2019 и новееСЧИТАТЬПУСТОТЫможет вести себя нестабильно в структурированных таблицах (Ctrl+T). Если данные в таблице, используйтеСЧЁТЕСЛИс критерием"".
Метод 2: Комбинация СЧЁТЕСЛИ + "" (для ячеек с пустыми строками)
Если в ячейках хранятся формулы, возвращающие пустую строку (""), или вы вручную вводили две кавычки, стандартная СЧИТАТЬПУСТОТЫ их проигнорирует. В этом случае поможет СЧЁТЕСЛИ:
=СЧЁТЕСЛИ(диапазон; "")
Пример: =СЧЁТЕСЛИ(B2:B50; "") посчитает все ячейки в B2:B50, где содержимое равно пустой строке. Этот метод работает и для ячеек с формулами вида =ЕСЛИ(A1=0;"";"Да").
Однако у СЧЁТЕСЛИ есть ограничение: она не учитывает ячейки с невидимыми символами (пробелы, табуляции). Чтобы захватить и их, используйте формулу массива:
=СУММ(--(ДЛСТР(A1:A100)=0))
Введите её как формулу массива (в старых версиях Excel — нажмите Ctrl+Shift+Enter).
| Метод | Подсчитывает | Не учитывает | Пример |
|---|---|---|---|
СЧИТАТЬПУСТОТЫ | Абсолютно пустые ячейки и "" | Пробелы, апострофы, формулы с ошибками | =СЧИТАТЬПУСТОТЫ(A1:A10) |
СЧЁТЕСЛИ(;"") | Ячейки с "" (в т.ч. от формул) | Пробелы, невидимые символы | =СЧЁТЕСЛИ(A1:A10; "") |
СУММ(--(ДЛСТР=0)) | Ячейки с нулевой длиной (в т.ч. "") | Ячейки с пробелами | {=СУММ(--(ДЛСТР(A1:A10)=0))} |
СУММЕСЛИ с ИСТЕКСТ | Текстовые ячейки (в т.ч. с пробелами) | Числа, ошибки, логические значения | =СУММЕСЛИ(A1:A10; "?") |
Метод 3: Формула массива для "глубокой" проверки пустоты
Если в данных могут встречаться пробелы, табуляции или другие непечатаемые символы, используйте формулу, которая проверяет реальную пустоту:
=СУММ(--(A1:A100="")) + СУММ(--(ДЛСТР(ПЕЧСИМВ(A1:A100))=0))
Разберём её по частям:
- 🔢
A1:A100=""— находит ячейки с пустой строкой (""). - 🔢
ПЕЧСИМВ(A1:A100)— удаляет все непечатаемые символы (включая пробелы). - 🔢
ДЛСТР(...)=0— проверяет, стала ли строка пустой после очистки.
Эта формула посчитает как абсолютно пустые ячейки, так и те, где есть только пробелы или табуляции. Введите её как формулу массива (в новых версиях Excel просто нажмите Enter, в старых — Ctrl+Shift+Enter).
Как проверить, есть ли в ячейке невидимые символы?
Используйте формулу =КОДСИМВ(ЛЕВСИМВ(A1;1)). Она вернёт код первого символа:
- 32 — обычный пробел,
- 160 — неразрывный пробел,
- 9 — табуляция,
- 39 — апостроф (текстовый формат).
Если формула возвращает ошибку #ЗНАЧ!, ячейка действительно пуста.
Метод 4: Фильтр + ручной подсчёт (для больших диапазонов)
Если формулы тормозят из-за большого объёма данных (например, диапазон 100 000+ строк), используйте фильтр:
- Выделите диапазон (например,
A1:A100000). - Нажмите
Данные → Фильтр(илиCtrl+Shift+L). - В выпадающем списке столбца выберите
(Пустые). - Excel отобразит только пустые строки. Их количество будет в строке состояния (внизу окна).
Этот метод работает быстрее формул, но имеет нюансы:
- 📊 Не учитывает ячейки с формулами, возвращающими
""(они не отобразятся как пустые). - 📊 Если в диапазоне есть объединённые ячейки, фильтр может работать некорректно.
Для точного подсчёта после фильтрации используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A100000)
Где 3 — код функции СЧЁТ для видимых ячеек.
Формулы (СЧИТАТЬПУСТОТЫ, СЧЁТЕСЛИ)|Фильтр + ручной подсчёт|VBA-скрипты|Другое-->
Метод 5: VBA-скрипт для сложных случаев
Если нужно посчитать пустые ячейки с учётом всех нюансов (включая скрытые символы, ошибки в формулах и условное форматирование), напишите простой макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте новый модуль (
Insert → Module). - Скопируйте код:
Function CountTrueBlanks(rng As Range) As Long
Dim cell As Range
Dim count As Long
count = 0
For Each cell In rng
If IsEmpty(cell) Or (cell.Value = "" And Not IsError(cell)) Then
count = count + 1
End If
Next cell
CountTrueBlanks = count
End Function
Теперь в Excel можно использовать эту функцию как обычную:
=CountTrueBlanks(A1:A100)
Преимущества метода:
- 🔧 Учитывает
IsEmpty(абсолютно пустые ячейки) иValue = ""(пустые строки). - 🔧 Игнорирует ячейки с ошибками (например, #Н/Д).
- 🔧 Работает быстрее формул на больших диапазонах.
⚠️ Внимание: Макрос не будет работать, если в настройках Excel отключены макросы (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы). В корпоративных сетях это может быть запрещено политикой безопасности.
Включить макросы в настройках Excel|Сохранить файл как .xlsm (с поддержкой макросов)|Проверить диапазон на объединённые ячейки|Сделать резервную копию данных-->
Типичные ошибки и как их избежать
Даже опытные пользователи допускают ошибки при подсчёте пустых ячеек. Вот самые распространённые:
- Игнорирование формата ячеек: Если ячейка отформатирована как текстовая и содержит апостроф (
'), она не пустая, хотя визуально может казаться таковой. Проверяйте формат командойГлавная → Формат → Формат ячеек. - Формулы с ошибками: Ячейка с
#Н/Дили#ЗНАЧ!не пустая, ноСЧИТАТЬПУСТОТЫеё посчитает. Используйте=ЕОШИБКА(A1)для проверки. - Скрытые строки/столбцы: Если строка скрыта, но не отфильтрована,
СЧИТАТЬПУСТОТЫеё проигнорирует. ИспользуйтеПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;...)для видимых ячеек.
Критический нюанс: Если вы импортировали данные из CSV или базы данных, "пустые" ячейки могут содержать NULL-значения, которые Excel интерпретирует как 0 в числовых столбцах. Чтобы их обнаружить, используйте:
=ЕСЛИ(И(A1=0; ДЛСТР(ПОДСТАВИТЬ(A1;0;""))=0); "NULL"; "Нормальное значение")
FAQ: Частые вопросы о подсчёте пустых ячеек
Почему СЧИТАТЬПУСТОТЫ возвращает ноль, хотя в диапазоне есть пустые ячейки?
Скорее всего, ячейки не абсолютно пустые, а содержат:
- Пробелы или невидимые символы (проверьте через
=ДЛСТР(A1)). - Формулы, возвращающие
""(например,=ЕСЛИ(B1=0;"";"Да")). - Апостроф (
') для принудительного текстового формата.
Используйте =СЧЁТЕСЛИ(A1:A10; "") или формулу массива из Метода 3.
Как посчитать пустые ячейки в отфильтрованном диапазоне?
Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ с кодом 103:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; A1:A100)
Где 103 — это COUNTBLANK для видимых ячеек. Убедитесь, что фильтр применён до ввода формулы.
Можно ли посчитать пустые ячейки в сводной таблице?
Нет, сводные таблицы не поддерживают подсчёт пустых значений напрямую. Обходные пути:
- Добавьте в исходные данные вспомогательный столбец с формулой
=ЕПУСТО(A1)и используйте его в сводной как поле данных. - Преобразуйте сводную таблицу в обычный диапазон (
Анализ → Преобразовать в диапазон) и применитеСЧИТАТЬПУСТОТЫ.
Почему после копирования данных из интернета СЧИТАТЬПУСТОТЫ работает некорректно?
Веб-страницы часто содержат неразрывные пробелы (CHAR(160)) или HTML-теги. Чтобы очистить данные:
- Выделите диапазон.
- Нажмите
Ctrl+H(замена). - В поле "Найти" вставьте
CHAR(160)(введите в ячейку=CHAR(160), скопируйте результат). - Замените на пустую строку.
Повторите для обычных пробелов ( ) и табуляций (Ctrl+Tab в поле "Найти").
Как посчитать пустые ячейки в Google Таблицах?
В Google Sheets используйте:
=COUNTBLANK(A1:A100)
или для ячеек с пустыми строками:
=COUNTIF(A1:A100; "")
Отличия от Excel:
- В Google Таблицах
COUNTBLANKучитывает ячейки с""(как иСЧИТАТЬПУСТОТЫв новых версиях Excel). - Формулы массива вводятся без
Ctrl+Shift+Enter.
=СУММ(--(A1:A100="")) + СУММ(--(ДЛСТР(ПЕЧСИМВ(A1:A100))=0))
Эта формула покрывает 90% случаев, включая скрытые символы.
-->