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

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

В этой статье мы разберём 5 рабочих методов подсчёта пустых ячеек, включая формулы, инструменты фильтрации и макросы. Вы узнаете, какой способ выбрать в зависимости от объёма данных, версии Excel (2010, 2016, 2019, 365) и вашего уровня подготовки. А также избежите типичных ошибок, которые искажают результаты.

1. Простейший способ: функция СЧЁТПУСТОТ

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

Формула имеет простой синтаксис:

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

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

=СЧЁТПУСТОТ(A1:A100)
  • ✅ Подходит для новичков — не требует знания сложных формул.
  • ✅ Работает с любыми типами данных (текст, числа, даты).
  • ⚠️ Не учитывает ячейки с формулами, возвращающими пустую строку ("").
  • ⚠️ Игнорирует ячейки с пробелами или невидимыми символами.

Пример: если в ячейке A1 формула =ЕСЛИ(B1=0;"";"Заполнено"), и B1=0, то СЧЁТПУСТОТ не посчитает A1 как пустую, хотя визуально она выглядит пустой.

📊 Какой версией Excel вы пользуетесь?
Excel 2010 или старше
Excel 2016-2019
Excel 365 (онлайн/десктоп)
Mac-версия Excel
Другая

2. Альтернативные формулы: СЧЁТЕСЛИ и ДЛСТР

Когда СЧЁТПУСТОТ даёт сбои (например, не видит ячейки с формулами), на помощь приходят комбинации других функций. Рассмотрим два варианта:

2.1. Формула с СЧЁТЕСЛИ для текста и чисел

Функция СЧЁТЕСЛИ (англ. COUNTIF) позволяет гибко настраивать условия подсчёта. Чтобы найти пустые ячейки, используйте критерий "":

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

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

=СЧЁТЕСЛИ(B2:B50; "")

2.2. Формула с ДЛСТР для ячеек с пробелами

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

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

Эта формула сначала считает все непустые ячейки, а затем вычитает из них те, что содержат хотя бы один символ (включая пробелы).

Формула Подсчитывает Пример
СЧЁТПУСТОТ(A1:A10) Только визуально пустые ячейки =СЧЁТПУСТОТ(A1:A10)
СЧЁТЕСЛИ(A1:A10; "") Ячейки с пустой строкой (включая формулы) =СЧЁТЕСЛИ(A1:A10; "")
СУММПРОИЗВ(--(ДЛСТР(A1:A10)=0)) Ячейки без символов (включая пробелы) =СУММПРОИЗВ(--(ДЛСТР(A1:A10)=0))

3. Подсчёт пустых ячеек с помощью фильтра

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

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

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

  • 👁️ Визуально показывает расположение пустых ячеек.
  • 🔄 Позволяет быстро удалить или заполнить отфильтрованные ячейки.
  • 📊 Работает в любых версиях Excel, включая мобильную.
⚠️ Внимание: Фильтр учитывает только ячейки, которые визуально пусты. Если ячейка содержит формулу с пустым результатом (например, =ЕСЛИ(A1=0;"";"Да")), фильтр её не покажет.

Выделить диапазон данных|Включить фильтр (Ctrl+Shift+L)|Выбрать "(Пустые)" в меню фильтра|Посмотреть количество в строке состояния|Снять фильтр после анализа-->

4. Продвинутый метод: формулы массива

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

Пример формулы для подсчёта ячеек, которые выглядят пустыми (включая формулы с пустым выводом):

=СУММ(--(ЕПУСТО(диапазон)))

Для диапазона D2:D100:

=СУММ(--(ЕПУСТО(D2:D100)))

Введите формулу как формулу массива:

  1. Выделите ячейку для результата.
  2. Введите формулу, но вместо Enter нажмите Ctrl+Shift+Enter (в Excel 365 это не обязательно).

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

=СУММ(--(ДЛСТР(ПОДСТАВИТЬ(диапазон;" ";""))=0))
⚠️ Внимание: Формулы массива могут значительно замедлить работу Excel при обработке больших диапазонов (более 10 000 строк). В таких случаях лучше использовать VBA.

5. Автоматизация с помощью VBA

Если вам регулярно приходится анализировать большие таблицы, стоит автоматизировать процесс с помощью макросов. Ниже приведён код для подсчёта пустых ячеек в выделенном диапазоне:

Sub CountBlankCells()

Dim rng As Range

Dim blankCount As Long

Set rng = Selection

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 или через Макросы в меню Вид).

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

  • 🚀 Обрабатывает миллионы ячеек за секунды.
  • 🔧 Можно доработать под специфические задачи (например, игнорировать ячейки с формулами).
  • 📊 Результаты выводятся в удобном виде (окно сообщения или ячейка).
Как модифицировать макрос для игнорирования формул?

Чтобы макрос не учитывал ячейки с формулами, замените условие If IsEmpty(cell) Or cell.Value = "" Then на:

If IsEmpty(cell) Then

Это позволит считать только действительно пустые ячейки, без формул.

6. Особенности работы с пустыми ячейками в разных версиях Excel

Функциональность подсчёта пустых ячеек может отличаться в зависимости от версии Excel. Рассмотрим ключевые нюансы:

6.1. Excel 2010–2013

В этих версиях:

  • Функция СЧЁТПУСТОТ работает стабильно, но не учитывает ячейки с формулами, возвращающими "".
  • Формулы массива требуют обязательного ввода через Ctrl+Shift+Enter.
  • Фильтр не показывает ячейки с формулами, даже если они визуально пусты.

6.2. Excel 2016–2019 и 365

Новые версии предлагают улучшения:

  • 🆕 Функция СЧИТАТЬПУСТОТЫ (англ. COUNTBLANK) поддерживает динамические массивы.
  • 🔄 Формулы массива можно вводить без Ctrl+Shift+Enter (в Excel 365).
  • 📱 В онлайн-версии Excel 365 доступен фильтр по пустым ячейкам, но с ограничениями.

6.3. Excel для Mac

На macOS:

  • Синтаксис функций идентичен Windows-версии, но горячие клавиши могут отличаться (например, Cmd+Shift+Enter для формул массива).
  • 🐞 В некоторых версиях СЧЁТПУСТОТ ошибочно считает ячейки с #Н/Д как пустые.
Версия Excel Особенности подсчёта пустых ячеек Рекомендации
2010–2013 Формулы массива требуют Ctrl+Shift+Enter Используйте СЧЁТЕСЛИ для надёжности
2016–2019 Поддержка динамических массивов Пробуйте новые функции, например ФИЛЬТР
365 (онлайн) Ограничения на размер диапазона в формулах Для больших таблиц используйте Power Query
Mac Возможны ошибки с #Н/Д Проверяйте результаты вручную
=СТРОКИ(ФИЛЬТР(диапазон; диапазон=""))

Это позволит автоматически обновлять результат при изменении данных.-->

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

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

7.1. Ячейки с формулами, возвращающими ""

Если ячейка содержит формулу вроде =ЕСЛИ(A1=0;"";"Да"), и условие истинно, то:

  • СЧЁТПУСТОТне посчитает как пустую.
  • СЧЁТЕСЛИ(диапазон; "")посчитает.
  • Фильтр — не покажет.

7.2. Ячейки с пробелами или непечатаемыми символами

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

=ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))>0

Эта формула вернёт ИСТИНА, если в ячейке есть хоть один символ (включая пробелы).

7.3. Ошибки в диапазоне

Если в диапазоне есть ячейки с ошибками (#Н/Д, #ЗНАЧ!), некоторые функции (например, СЧЁТПУСТОТ) могут работать некорректно. Чтобы исключить их из подсчёта, используйте:

=СУММ(--(ЕОШ(диапазон)=ИСТИНА))
⚠️ Внимание: В Excel для Mac функция СЧЁТПУСТОТ может ошибочно учитывать ячейки с ошибками как пустые. Всегда проверяйте результаты с помощью СЧЁТЕСЛИ.

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

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

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

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; диапазон)

Где 103 — это код функции СЧЁТ для видимых ячеек. Предварительно отфильтруйте данные.

Как посчитать пустые ячейки в сводной таблице?

Сводные таблицы не поддерживают прямые формулы для подсчёта пустых ячеек. Вместо этого:

  1. Добавьте в исходные данные столбец с формулой =ЕПУСТО(A1).
  2. Обновите сводную таблицу и добавьте это поле в область Значения.
  3. Настройте агрегацию на Счёт.
Почему СЧЁТПУСТОТ возвращает 0, хотя пустые ячейки есть?

Вероятные причины:

  • Ячейки содержат пробелы или невидимые символы.
  • Ячейки имеют условное форматирование, но не пустые.
  • В ячейках есть формулы, возвращающие "".

Проверьте содержимое ячеек с помощью ДЛСТР или ПОИСК.

Как посчитать пустые ячейки в Google Таблицах?

В Google Sheets используйте те же функции, но с английским синтаксисом:

=COUNTBLANK(A1:A100)  // Аналог СЧЁТПУСТОТ

=COUNTIF(A1:A100; "") // Аналог СЧЁТЕСЛИ

Также доступны формулы массива, но они требуют подтверждения ArrayFormula.

Можно ли посчитать пустые ячейки в защищённом листе?

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

  • Формулы (СЧЁТПУСТОТ, СЧЁТЕСЛИ) будут работать, если диапазон не заблокирован.
  • Фильтр и VBA могут быть ограничены настройками защиты.

Если лист защищён, временно снимите защиту (Рецензирование → Снять защиту листа), выполните подсчёт и верните защиту.