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

Почему подсчёт пустых ячеек важен для анализа данных

Пустые ячейки в Excel — как невидимые ловушки в ваших данных. Они искажают результаты формул, ломают сортировку и могут привести к ошибкам в отчётах. Например, функция СРЗНАЧ автоматически игнорирует пустые ячейки, а СЧЁТ — нет. Это создаёт расхождения, которые сложно отследить в больших таблицах. По данным исследования Microsoft, 37% ошибок в бизнес-отчётах связаны с неучтёнными пустыми значениями.

Подсчёт пропусков помогает:

  • 📊 Контролировать качество данных перед анализом (особенно важно для импортированных таблиц)
  • 🔍 Выявлять пробелы в заполнении анкет, опросов или баз клиентов
  • 📈 Корректировать формулы, зависящие от количества заполненных ячеек
  • 🚀 Автоматизировать проверки в динамических отчётах

В этой статье разберём все способы — от элементарных до профессиональных, включая обработку "невидимых" пропусков (ячейки с формулами, возвращающими ""). Вы узнаете, какой метод выбрать для вашей задачи и как избежать типичных ошибок.

📊 Как часто вы сталкиваетесь с пустыми ячейками в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда

Метод 1: Функция СЧЁТПУСТОТ — самый простой способ

Функция СЧЁТПУСТОТ (COUNTBLANK в английской версии) создана специально для подсчёта пустых ячеек. Её синтаксис предельно прост:

=СЧЁТПУСТОТ(диапазон)

Пример: чтобы посчитать пропуски в столбце A с 1 по 100 строку, используйте:

=СЧЁТПУСТОТ(A1:A100)

Особенности функции:

  • 🔹 Считает только полностью пустые ячейки (без пробелов, символов, формул)
  • 🔹 Игнорирует ячейки с формулами, возвращающими "" (пустую строку)
  • 🔹 Работает с несмежными диапазонами: =СЧЁТПУСТОТ(A1:A10;C1:C10)
⚠️ Внимание: Если в ячейке есть пробел или неразрывный пробел (CHAR(160)), СЧЁТПУСТОТ её не посчитает. Для таких случаев используйте метод 3.
Данные в ячейке СЧЁТПУСТОТ посчитает? Пример
Абсолютно пустая ячейка ✅ Да "" (без формулы)
Ячейка с формулой ="" ❌ Нет =IF(A1="","",A1)
Ячейка с пробелом ❌ Нет " "
Ячейка с #Н/Д ❌ Нет =ВПР(...) с ошибкой

Метод 2: Комбинация СЧЁТ и СЧЁТЗ для точного анализа

Когда нужно посчитать пропуски среди непустых данных (например, в отфильтрованном списке), комбинация функций СЧЁТ и СЧЁТЗ даёт более гибкий результат:

=СЧЁТ(диапазон) - СЧЁТЗ(диапазон)

Разберём на примере:

  • 📌 СЧЁТ(A1:A100) — считает все ячейки с числами (игнорирует текст и пустые)
  • 📌 СЧЁТЗ(A1:A100) — считает все непустые ячейки (числа, текст, ошибки)
  • 📌 Разница покажет количество пустых ячеек в числовом диапазоне

Пример для смешанных данных (числа + текст):

=СТРОКА(диапазон) - СЧЁТЗ(диапазон)

Где СТРОКА(диапазон) — это общее количество строк в диапазоне (например, 100 для A1:A100).

⚠️ Внимание: Этот метод даст неверный результат, если в диапазоне есть ячейки с формулами, возвращающими "". Они считаются непустыми для СЧЁТЗ, но пустыми визуально.

Исключите ячейки с формулами|Убедитесь, что нет "невидимых" символов (пробелов, табуляций)|Проверьте диапазон на наличие ошибок (#Н/Д, #ДЕЛ/0!)|Сравните результат с СЧЁТПУСТОТ для контроля-->

Метод 3: Продвинутый подсчёт с функцией ДЛСТР (для "невидимых" пропусков)

Частая проблема: ячейка выглядит пустой, но на самом деле содержит пробел, неразрывный пробел (CHAR(160)) или символ табуляции. Стандартные функции такие ячейки не видят. Решение — использовать ДЛСТР (LEN):

=СУММПРОИЗВ(--(ДЛСТР(диапазон)=0))

Как это работает:

  1. ДЛСТР(диапазон) возвращает длину содержимого каждой ячейки
  2. =0 проверяет, равна ли длина нулю (т.е. ячейка действительно пуста)
  3. -- преобразует ИСТИНА/ЛОЖЬ в 1/0
  4. СУММПРОИЗВ суммирует все единицы (пустые ячейки)

Для диапазона A1:A10 формула будет:

=СУММПРОИЗВ(--(ДЛСТР(A1:A10)=0))

Этот метод находит:

  • 🔍 Пустые ячейки без формул
  • 🔍 Ячейки с формулами, возвращающими ""
  • 🔍 Ячейки с формулами, возвращающими 0 (если нужно исключить, добавьте условие И(ДЛСТР(...)=0; A1:A10<>0))
Почему ДЛСТР лучше СЧЁТПУСТОТ?

Функция ДЛСТР анализирует фактическое содержимое ячейки, а не её визуальное состояние. Например, если ячейка содержит формулу =ЕСЛИ(A1=0;"";""), которая возвращает пустую строку, СЧЁТПУСТОТ её проигнорирует, а ДЛСТР — посчитает. Это критично для отчётов, где важна логическая пустота, а не физическая.

Метод 4: Условное форматирование для визуализации пропусков

Если вам нужно не только посчитать, но и визуально выделить пустые ячейки, используйте условное форматирование:

  1. Выделите диапазон (например, A1:Z100)
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило
  3. Выберите Форматировать только ячейки, которые содержат
  4. В поле "Форматировать только ячейки с" выберите Значение ячейки → равное → "" (двойные кавычки без пробела)
  5. Задайте формат (например, красный фон) и нажмите ОК

Для подсчёта выделенных ячеек:

  1. Скопируйте диапазон с условным форматированием (Ctrl+C)
  2. Вставьте в Блокнот — пустые ячейки будут пустыми строками
  3. Используйте поиск по ^$ (регулярное выражение для пустых строк) для подсчёта

Альтернативный способ с формулой:

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

Но помните: СЧЁТЕСЛИ не видит ячейки с формулами, возвращающими "".

Метод 5: Power Query для обработки больших массивов данных

Если вы работаете с данными объёмом более 10 000 строк, стандартные функции Excel тормозят. В этом случае используйте Power Query (вкладка Данные → Получить данные):

Пошаговая инструкция:

  1. Выделите диапазон и нажмите Данные → Из таблицы/диапазона (или Из файла, если импортируете)
  2. В редакторе Power Query выделите столбец, где нужно посчитать пропуски
  3. Перейдите на вкладку Добавить столбец → Пользовательский столбец
  4. Введите формулу:
    = if [Column1] = null then 1 else 0

    (замените Column1 на имя вашего столбца)

  5. Нажмите ОК, затем Главная → Закрыть и загрузить
  6. В новой таблице используйте СУММ для подсчёта единиц (пустых ячеек)

Преимущества Power Query:

  • ⚡ Обрабатывает миллионы строк без зависаний
  • 🔄 Автоматически обновляет результаты при изменении исходных данных
  • 🛠 Позволяет комбинировать подсчёт пропусков с другими преобразованиями (фильтрация, замена значений)
⚠️ Внимание: В Power Query пустые ячейки обозначаются как null, а не "". Это важно для корректной настройки фильтров. Ячейки с формулами, возвращающими "", будут импортированы как пустые строки, а не null.

Метод 6: VBA-скрипт для автоматизации проверок

Если вам нужно регулярно проверять таблицы на пропуски (например, при импорте данных), напишите простой макрос на VBA:

Sub CountBlanks()

Dim rng As Range

Dim blankCount As Long

Set rng = Selection ' или укажите диапазон: Range("A1:Z100")

blankCount = 0

For Each cell In rng

If IsEmpty(cell) Or cell.Value = "" Then

blankCount = blankCount + 1

End If

Next cell

MsgBox "Пустых ячеек: " & blankCount, vbInformation, "Результат"

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA
  2. Вставьте код в новый модуль (Insert → Module)
  3. Выделите диапазон в Excel и запустите макрос (F5)

Расширенная версия скрипта (с учётом формул, возвращающих ""):

Sub AdvancedBlankCount()

Dim rng As Range, cell As Range

Dim blankCount As Long, formulaBlankCount As Long

Set rng = Selection

For Each cell In rng

If IsEmpty(cell) Then

blankCount = blankCount + 1

ElseIf cell.Value = "" And cell.HasFormula Then

formulaBlankCount = formulaBlankCount + 1

End If

Next cell

MsgBox "Пустых ячеек: " & blankCount & vbCrLf & _

"Ячеек с формулами """" : " & formulaBlankCount, _

vbInformation, "Детализация"

End Sub

Преимущества VBA:

  • 🤖 Полная автоматизация (можно запускать по таймеру или при открытии файла)
  • 📊 Гибкая логика (например, игнорировать пропуски в определённых столбцах)
  • 📤 Экспорт результатов в отдельный лист или файл

Типичные ошибки и как их избежать

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

Ошибка Последствия Как исправить
Использование СЧЁТЕСЛИ(диапазон; " ") вместо "" Считает ячейки с пробелом, а не пустые Убедитесь, что в критерии нет пробела: ""
Применение СЧЁТПУСТОТ к диапазону с формулами Пропускает ячейки с = "" Используйте ДЛСТР или Power Query
Фильтрация по "пустым" ячейкам в таблице Excel Не показывает строки, где все ячейки пустые Добавьте вспомогательный столбец с =СЧЁТЗ(строка)
Копирование диапазона с пустыми ячейками в Блокнот Теряются данные из-за неверного разделителя Используйте Текст по столбцам с разделителем Tab

Критическая ошибка: игнорирование "невидимых" символов (CHAR(160), CHAR(9)). Они не видны глазу, но искажают результаты СЧЁТПУСТОТ и СЧЁТЕСЛИ. Всегда очищайте данные функцией =ПЕЧСИМВ(А1) перед анализом.

Проверьте себя:

  • ✅ Вы всегда очищаете данные от непечатаемых символов?
  • ✅ Вы учитываете разницу между IsEmpty (VBA) и ""?
  • ✅ Вы проверяете результаты подсчёта хотя бы двумя разными методами?

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

Можно ли посчитать пропуски в отфильтрованном диапазоне?

Да, но стандартные функции (СЧЁТПУСТОТ, СЧЁТЕСЛИ) работают с всеми данными, игнорируя фильтр. Решения:

  1. Скопируйте видимые ячейки в новый лист (Alt+; → выделить видимые → копировать).
  2. Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; диапазон) (функция 103 — это СЧЁТПУСТОТ для видимых ячеек).
  3. В Power Query примените фильтр перед подсчётом.
Как посчитать пропуски в сводной таблице?

Сводные таблицы не показывают пустые ячейки по умолчанию. Чтобы их учесть:

  1. Щёлкните правой кнопкой по сводной таблице → Параметры сводной таблицы.
  2. На вкладке Макет и формат поставьте галочку Для пустых ячеек отображать и укажите 0 или "Пусто".
  3. Добавьте вычисляемое поле с формулой =ЕСЛИ(поле=0;1;0) и просуммируйте его.

Для точного подсчёта лучше использовать исходные данные с функцией СЧЁТПУСТОТ.

Почему СЧЁТЕСЛИ(диапазон; "") даёт неверный результат?

Функция СЧЁТЕСЛИ считает только ячейки, содержащие именно пустую строку (""). Она не видит:

  • Ячейки с формулами, возвращающими "" (они не хранят значение, а вычисляют его).
  • Ячейки с пробелами или непечатаемыми символами.
  • Ячейки с ошибками (#Н/Д, #ЗНАЧ!).

Используйте СУММПРОИЗВ(--(ДЛСТР(диапазон)=0)) для точного результата.

Как посчитать пропуски в диапазоне с объединёнными ячейками?

Объединённые ячейки (Merge Cells) создают проблемы, так как занимают несколько адресов, но хранят одно значение. Решения:

  1. Разъедините ячейки (Главная → Объединить и центрировать) перед подсчётом.
  2. Используйте VBA:
    Sub CountBlanksInMerged()
    

    Dim rng As Range, cell As Range, blankCount As Long

    Set rng = Selection

    blankCount = 0

    For Each cell In rng

    If cell.MergeCells Then

    If IsEmpty(cell.MergeArea(1)) Then blankCount = blankCount + cell.MergeArea.Cells.Count

    ElseIf IsEmpty(cell) Then blankCount = blankCount + 1

    End If

    Next cell

    MsgBox "Пустых ячеек (включая объединённые): " & blankCount

    End Sub

  3. В Power Query объединённые ячейки автоматически разделяются при импорте.
Можно ли посчитать пропуски в защищённом листе?

Да, но с ограничениями:

  • 🔓 Формулы (СЧЁТПУСТОТ, СУММПРОИЗВ) работают без изменений.
  • 🔒 VBA-скрипты не будут выполняться, если не разрешён доступ к макросам.
  • 🛡 Условное форматирование применяется только к разблокированным ячейкам.

Если лист защищён, а вам нужно использовать VBA:

  1. Снимите защиту (Рецензирование → Снять защиту листа).
  2. Запустите макрос.
  3. Верните защиту (Рецензирование → Защитить лист).