Как посчитать количество пустых ячеек в Excel: формулы, фильтры и макросы

Работа с большими таблицами в Microsoft Excel часто требует анализа заполненности данных. Пустые ячейки — это не просто "дыры" в информации, а потенциальные ошибки, пропущенные значения или намеренно оставленные пробелы для будущих записей. Их подсчёт помогает оценить полноту данных перед анализом, выявить несоответствия в отчётах или автоматизировать проверку форм. Но как точно определить количество незаполненных ячеек, если вручную пересчитывать их нереально?

В этой статье мы разберём 5 проверенных методов — от элементарных функций до продвинутых приёмов с использованием Power Query и VBA. Вы узнаете, как отличать действительно пустые ячейки от тех, что содержат невидимые символы (пробелы, апострофы), как учитывать условное форматирование и даже как автоматизировать процесс для регулярных отчётов. Все решения протестированы в Excel 2010–2023 и адаптированы для Google Таблиц.

1. Базовый метод: функция СЧЁТПУСТОТ (COUNTBLANK)

Самый простой способ — использовать встроенную функцию СЧЁТПУСТОТ (англ. COUNTBLANK). Она подсчитывает количество ячеек в диапазоне, которые не содержат данных, включая текст, числа и даже формулы, возвращающие пустую строку "".

Синтаксис функции:

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

Примеры применения:

  • 📌 Подсчёт пустых ячеек в столбце A с 1 по 100 строку: =СЧЁТПУСТОТ(A1:A100)
  • 📌 Анализ всей таблицы A1:D50: =СЧЁТПУСТОТ(A1:D50)
  • 📌 Динамический диапазон (если данные заканчиваются в строке 50): =СЧЁТПУСТОТ(A1:A50) + CTRL+SHIFT+↓ для автозаполнения

Ограничения метода:

⚠️ Внимание: Функция СЧЁТПУСТОТ считает пустыми ячейки с формулами, возвращающими "" (например, =ЕСЛИ(A1=0;"";"Данные")). Если вам нужно исключить такие случаи, используйте метод с СЧЁТЕСЛИ (раздел 3).
📊 Какой версией Excel вы пользуетесь?
2010-2013
2016-2019
2021-2023
Google Таблицы
Другая

2. Альтернатива: комбинация СЧЁТЗ и СЧИТАТЬПУСТОТЫ

Если вам нужно посчитать пустые ячейки в диапазоне, где уже есть другие данные, можно пойти от обратного: вычесть количество непустых ячеек из общего числа ячеек. Для этого используйте пару функций:

  • СЧЁТЗ (англ. COUNTA) — считает все непустые ячейки.
  • СЧИТАТЬПУСТОТЫ — это просто разность между общим количеством ячеек и СЧЁТЗ.

Формула:

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

Пример для диапазона B2:B100:

=99 - СЧЁТЗ(B2:B100)

Когда этот метод полезен:

  • 🔹 При работе с структурированными таблицами, где нужно исключить заголовки.
  • 🔹 Если диапазон содержит формулы, которые могут возвращать пустые строки (например, ВПР с ошибкой #Н/Д).

3. Продвинутый подсчёт: СЧЁТЕСЛИ с критерием ""

Функция СЧЁТЕСЛИ (англ. COUNTIF) позволяет гибко настраивать условия подсчёта. Для поиска пустых ячеек используйте критерий "" (две кавычки без пробела). Этот метод точнее СЧЁТПУСТОТ, так как игнорирует ячейки с формулами, возвращающими пустую строку.

Синтаксис:

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

Сравнение с СЧЁТПУСТОТ:

МетодСчитает ячейки с формулой =""Считает ячейки с пробеломРаботает в Google Таблицах
СЧЁТПУСТОТДаНетДа
СЧЁТЕСЛИ(;"")НетНетДа
СЧЁТЗ (обратный метод)Зависит от формулыДа (считает как непустую)Да

Критическое отличие: СЧЁТЕСЛИ(;"") не учитывает ячейки с формулами, возвращающими пустую строку, в отличие от СЧЁТПУСТОТ. Это важно для отчётов, где пустые значения генерируются автоматически.

4. Подсчёт с учётом невидимых символов (пробелы, апострофы)

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

Формула для подсчёта реально пустых ячеек (без скрытых символов):

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

Где:

  • ПЕЧСИМВ — удаляет все непечатаемые символы.
  • ДЛСТР — проверяет длину оставшегося текста.
  • СУММПРОИЗВ — суммирует результаты (1 для пустых, 0 для непустых).

Пример для диапазона A1:A10:

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

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

=СЧЁТЕСЛИ(диапазон; " ")
Как удалить невидимые символы из ячеек?

Чтобы очистить данные от пробелов и апострофов, используйте функцию СЖПРОБЕЛЫ (убирает лишние пробелы) или комбинацию:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"'";"");СИМВОЛ(160);"")

Где:

- "'" — апостроф (может использоваться для форматирования чисел как текста).

- СИМВОЛ(160) — неразрывный пробел.

5. Визуальный метод: фильтрация пустых ячеек

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

Шаги для Excel 2016–2023:

  1. Выделите диапазон с заголовками (например, A1:D100).
  2. Перейдите на вкладку ДанныеФильтр (или нажмите CTRL+SHIFT+L).
  3. Нажмите на стрелочку фильтра в заголовке столбца → снимите галочку с (Выделить всё) → поставьте галочку только напротив (Пустые).
  4. Excel отобразит только пустые строки. Их количество будет в строке состояния (внизу окна).

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

  • 👁️ Визуальный контроль — вы сразу видите, где пропуски.
  • 📊 Можно применить условное форматирование к отфильтрованным ячейкам (например, закрасить их красным).
  • 🔄 Легко исправить данные прямо в фильтре.
⚠️ Внимание: Фильтр учитывает ячейки с формулами, возвращающими "", как пустые. Если вам нужно их исключить, предварительно примените Специальная вставка → Значения (CTRL+ALT+V → З).

Удалить лишние пробелы (СЖПРОБЕЛЫ)

Заменить неразрывные пробелы (CHAR(160)) на обычные

Проверить формулы на возвращаемые пустые строки

Сохранить резервную копию таблицы-->

6. Автоматизация: макрос VBA для подсчёта пустых ячеек

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

Код макроса:

Sub CountEmptyCells()

Dim rng As Range

Dim emptyCount As Long

Dim cell As Range

' Задайте диапазон для анализа

Set rng = Selection ' или укажите явно: Range("A1:D100")

emptyCount = 0

For Each cell In rng

' Проверяем, что ячейка действительно пуста (без формул и пробелов)

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

emptyCount = emptyCount + 1

End If

Next cell

MsgBox "Количество пустых ячеек: " & emptyCount, vbInformation

End Sub

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

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

Модификации макроса:

  • 🔧 Чтобы учитывать ячейки с пробелами, замените условие на: If Trim(cell.Value) = "" Then.
  • 🔧 Для анализа только видимых ячеек (например, после фильтра) добавьте: If Not cell.EntireRow.Hidden Then.

7. Power Query: подсчёт пустых ячеек в больших данных

Для обработки крупных наборов данных (тысячи строк) удобнее использовать Power Query — инструмент ETL (извлечение, преобразование, загрузка), встроенный в Excel 2016+. Он позволяет:

  • 📊 Анализировать данные без изменения исходной таблицы.
  • 🔄 Автоматизировать процесс (обновление при изменении источника).
  • 📌 Подсчитывать пустые ячейки с учётом сложных условий (например, только в определённых столбцах).

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

  1. Выделите диапазон → вкладка ДанныеИз таблицы/диапазона (или Get Data → From Table/Range).
  2. В редакторе Power Query выделите столбец → Добавить столбец → Пользовательский столбец.
  3. Введите формулу для проверки пустоты: = if [Column1] = null or [Column1] = "" then 1 else 0.
  4. Добавьте группировку (Преобразовать → Группировка) по новому столбцу с операцией Сумма.
  5. Нажмите Закрыть и загрузить — результат появится на новом листе.

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

  • ⚡ Обрабатывает миллионы строк без замедления Excel.
  • 🔗 Можно объединять данные из нескольких источников (например, CSV + SQL).
  • 📅 Легко обновлять отчёты по расписанию.

FAQ: Частые вопросы о подсчёте пустых ячеек

❓ Почему СЧЁТПУСТОТ считает ячейку пустой, хотя там есть формула?

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

❓ Как посчитать пустые ячейки в фильтрованном диапазоне?

Стандартные функции не учитывают фильтры. Решения:

  1. Скопируйте видимые ячейки в новый диапазон (ALT; + ; выделяет только видимые) и примените СЧЁТПУСТОТ.
  2. Используйте макрос VBA (раздел 6) с проверкой cell.EntireRow.Hidden.
❓ Можно ли посчитать пустые ячейки в Google Таблицах?

Да, все описанные функции работают в Google Sheets:

  • =COUNTBLANK(A1:A100) — аналог СЧЁТПУСТОТ.
  • =COUNTIF(A1:A100; "") — аналог СЧЁТЕСЛИ.
  • Для Power Query используйте Google Apps Script.
❓ Как выделить пустые ячейки цветом?

Используйте условное форматирование:

  1. Выделите диапазон → Главная → Условное форматирование → Создать правило.
  2. Выберите Форматировать только ячейки, которые содержат.
  3. Установите условие Значение → равняется → "" (две кавычки).
  4. Задайте формат (например, красный фон) и нажмите ОК.
❓ Почему моя формула возвращает #ЗНАЧ! при подсчёте пустых ячеек?

Ошибка #ЗНАЧ! возникает, если:

  • Диапазон содержит ячейки с ошибками (например, #ДЕЛ/0!).
  • Вы используете СУММПРОИЗВ с несопоставимыми диапазонами.
  • В формуле есть опечатка (например, лишняя запятая).

Решение: проверьте диапазон на ошибки или используйте ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(СЧЁТПУСТОТ(A1:A100); 0)