Работа с большими таблицами в Microsoft Excel часто требует анализа данных, включая поиск и подсчёт пустых ячеек. Это может понадобиться для проверки полноты заполнения отчётов, очистки баз данных или подготовки файлов к дальнейшей обработке. Однако не все пользователи знают, что в Excel существует несколько способов решить эту задачу — от элементарных функций до сложных скриптов.
В этой статье мы разберём 5 рабочих методов подсчёта пустых ячеек, включая формулы, инструменты фильтрации и макросы. Вы узнаете, какой способ выбрать в зависимости от объёма данных, версии Excel (2010, 2016, 2019, 365) и вашего уровня подготовки. А также избежите типичных ошибок, которые искажают результаты.
1. Простейший способ: функция СЧЁТПУСТОТ
Если вам нужно быстро посчитать пустые ячейки в диапазоне, начните с самой очевидной функции — СЧЁТПУСТОТ (англ. COUNTBLANK). Она входит в стандартный набор инструментов Excel и работает во всех версиях программы, начиная с 2003 года.
Формула имеет простой синтаксис:
=СЧЁТПУСТОТ(диапазон)
Например, чтобы подсчитать пустые ячейки в столбце A с 1 по 100 строку, введите:
=СЧЁТПУСТОТ(A1:A100)
- ✅ Подходит для новичков — не требует знания сложных формул.
- ✅ Работает с любыми типами данных (текст, числа, даты).
- ⚠️ Не учитывает ячейки с формулами, возвращающими пустую строку (
""). - ⚠️ Игнорирует ячейки с пробелами или невидимыми символами.
Пример: если в ячейке A1 формула =ЕСЛИ(B1=0;"";"Заполнено"), и B1=0, то СЧЁТПУСТОТ не посчитает A1 как пустую, хотя визуально она выглядит пустой.
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. Этот метод не требует знания функций и подходит для визуального анализа:
- Выделите диапазон данных (например,
A1:C100). - Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелку фильтра в заголовке столбца и выберите
(Пустые). - Excel отобразит только пустые ячейки. Их количество будет указано в строке состояния (внизу окна).
Преимущества метода:
- 👁️ Визуально показывает расположение пустых ячеек.
- 🔄 Позволяет быстро удалить или заполнить отфильтрованные ячейки.
- 📊 Работает в любых версиях Excel, включая мобильную.
⚠️ Внимание: Фильтр учитывает только ячейки, которые визуально пусты. Если ячейка содержит формулу с пустым результатом (например, =ЕСЛИ(A1=0;"";"Да")), фильтр её не покажет.
Выделить диапазон данных|Включить фильтр (Ctrl+Shift+L)|Выбрать "(Пустые)" в меню фильтра|Посмотреть количество в строке состояния|Снять фильтр после анализа-->
4. Продвинутый метод: формулы массива
Для сложных задач, где нужно учитывать ячейки с формулами или условным форматированием, подойдут формулы массива. Они обрабатывают данные более гибко, но требуют аккуратности при вводе.
Пример формулы для подсчёта ячеек, которые выглядят пустыми (включая формулы с пустым выводом):
=СУММ(--(ЕПУСТО(диапазон)))
Для диапазона D2:D100:
=СУММ(--(ЕПУСТО(D2:D100)))
Введите формулу как формулу массива:
- Выделите ячейку для результата.
- Введите формулу, но вместо
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
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редакторVBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон в 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 — это код функции СЧЁТ для видимых ячеек. Предварительно отфильтруйте данные.
Как посчитать пустые ячейки в сводной таблице?
Сводные таблицы не поддерживают прямые формулы для подсчёта пустых ячеек. Вместо этого:
- Добавьте в исходные данные столбец с формулой
=ЕПУСТО(A1). - Обновите сводную таблицу и добавьте это поле в область
Значения. - Настройте агрегацию на
Счёт.
Почему СЧЁТПУСТОТ возвращает 0, хотя пустые ячейки есть?
Вероятные причины:
- Ячейки содержат пробелы или невидимые символы.
- Ячейки имеют условное форматирование, но не пустые.
- В ячейках есть формулы, возвращающие
"".
Проверьте содержимое ячеек с помощью ДЛСТР или ПОИСК.
Как посчитать пустые ячейки в Google Таблицах?
В Google Sheets используйте те же функции, но с английским синтаксисом:
=COUNTBLANK(A1:A100) // Аналог СЧЁТПУСТОТ
=COUNTIF(A1:A100; "") // Аналог СЧЁТЕСЛИ
Также доступны формулы массива, но они требуют подтверждения ArrayFormula.
Можно ли посчитать пустые ячейки в защищённом листе?
Да, но с ограничениями:
- Формулы (
СЧЁТПУСТОТ,СЧЁТЕСЛИ) будут работать, если диапазон не заблокирован. - Фильтр и
VBAмогут быть ограничены настройками защиты.
Если лист защищён, временно снимите защиту (Рецензирование → Снять защиту листа), выполните подсчёт и верните защиту.