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

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

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

Особое внимание уделим различию между истинно пустыми ячейками (где не было ввода данных) и ячейками с формулами, которые возвращают пустую строку. Это отличие принципиально влияет на выбор метода подсчёта. Например, функция СЧИТАТЬПУСТОТЫ проигнорирует ячейку с формулой =IF(A1=0,"","Заполнено"), даже если она отображается как пустая.

Прежде чем переходить к практике, убедитесь, что ваша версия Excel поддерживает используемые функции. Большинство методов из этой статьи работают в Excel 2010 и новее, включая Excel 365. Для пользователей Google Sheets мы также укажем альтернативные решения, где это уместно.

1. Базовый метод: функция СЧИТАТЬПУСТОТЫ

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

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

=СЧИТАТЬПУСТОТЫ(диапазон)

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

=СЧИТАТЬПУСТОТЫ(A1:A100)

⚠️ Внимание: Функция СЧИТАТЬПУСТОТЫ учитывает как истинно пустые ячейки, так и ячейки с формулами, возвращающими "". Однако она не учитывает ячейки с пробелами или неразрывными пробелами (например, введёнными через Alt+0160). Для таких случаев потребуется комбинация с функцией СЖПРОБЕЛЫ.

  • ✅ Подходит для быстрого подсчёта видимых пропусков
  • ✅ Работает во всех версиях Excel
  • ❌ Не отличает истинно пустые ячейки от ячеек с пустыми строками из формул
  • ❌ Не учитывает ячейки с пробелами

Если вам нужно исключить ячейки с формулами, возвращающими "", используйте комбинацию функций СЧЁТЗ и СЧИТАТЬ (см. следующий раздел).

2. Продвинутый подсчёт: комбинация СЧЁТЗ и СЧИТАТЬ

Для более точного анализа, когда требуется различать истинно пустые ячейки и ячейки с пустыми строками из формул, используйте следующую формулу:

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

Здесь:

  • СЧЁТЗ (англ. COUNTA) — считает все непустые ячейки, включая текст, числа и логические значения.
  • СЧИТАТЬ (англ. COUNT) — считает только ячейки с числовыми данными.

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

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

Где СТРОКА(диапазон) * СТОЛБЕЦ(диапазон) возвращает общее количество ячеек в диапазоне.

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

Пример: чтобы посчитать истинно пустые ячейки в диапазоне A1:B10:

=СТРОКА(A1:B10) * СТОЛБЕЦ(A1:B10) - СЧЁТЗ(A1:B10)
📊 Какой метод подсчёта пропусков вы используете чаще?
Функция СЧИТАТЬПУСТОТЫ
Комбинация СЧЁТЗ и СЧИТАТЬ
Фильтры
Условное форматирование
Другой

3. Поиск пропусков с помощью фильтров

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

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

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

Чтобы посчитать количество отфильтрованных строк:

  • Выделите видимый диапазон (без заголовков).
  • Посмотрите количество выделенных строк в строке состояния Excel (внизу окна).

⚠️ Внимание: Фильтры не учитывают ячейки с формулами, возвращающими "", если в настройках Excel отключён параметр Показывать нулевые значения (Файл → Параметры → Дополнительно → Показывать нули в ячейках, которые содержат нулевые значения). В таком случае ячейки с "" будут отображаться как пустые и попадут в фильтр.

Преимущество этого метода — наглядность. Вы не только узнаете количество пропусков, но и увидите их местоположение. Однако для больших таблиц фильтрация может занять время.

Убедиться, что в таблице есть заголовки столбцов

Проверить наличие скрытых строк/столбцов

Отключить объединённые ячейки в диапазоне фильтрации

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

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

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

Как применить:

  1. Выделите диапазон, в котором нужно найти пропуски.
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. В первом выпадающем списке выберите Пустые.
  5. Нажмите Формат и задайте цвет заливки (например, красный).
  6. Нажмите OKOK.

Теперь все пустые ячейки будут подсвечены. Чтобы посчитать их количество:

  • Скопируйте отформатированный диапазон (Ctrl+C).
  • Вставьте его в новый лист как Значения (Правая кнопка → Специальная вставка → Значения).
  • Используйте функцию СЧИТАТЬПУСТОТЫ для подсчёта.

⚠️ Внимание: Условное форматирование, как и фильтры, не различает истинно пустые ячейки и ячейки с формулами, возвращающими "". Если вам нужно точное разделение, комбинируйте этот метод с формулами из раздела 2.

Для автоматизации подсчёта можно создать динамический диапазон с условным форматированием и связать его с функцией СЧЁТЕСЛИ по цвету ячейки. Однако это потребует использования VBA, что выходит за рамки базовой функциональности.

5. Работа с "невидимыми" пропусками: пробелы и символы

Один из самых коварных типов пропусков — ячейки, которые выглядят пустыми, но содержат пробелы, неразрывные пробелы (Char(160)), символы табуляции или другие непечатаемые символы. Стандартные функции вроде СЧИТАТЬПУСТОТЫ их игнорируют, что приводит к ошибкам в анализе.

Чтобы найти такие ячейки, используйте комбинацию функций СЖПРОБЕЛЫ и ДЛСТР:

=ЕСЛИ(ДЛСТР(СЖПРОБЕЛЫ(A1))=0; "Пусто"; "Не пусто")

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

Для подсчёта таких "псевдопустых" ячеек в диапазоне A1:A100 используйте:

=СУММПРОИЗВ(--(ДЛСТР(СЖПРОБЕЛЫ(A1:A100))=0))
Примечание: это формула массива, вводите её с Ctrl+Shift+Enter в старых версиях ExcelExcel 365 работает как обычная формула).

⚠️ Внимание: Символы типа неразрывного пробела (Char(160)) могут попадать в данные при копировании из веб-страниц или PDF. Они не удаляются стандартной функцией ПЕЧСИМВ и требуют отдельной обработки. Для их замены используйте:

=ПОДСТАВИТЬ(A1; СИМВОЛ(160); "")
Тип "пустоты" Пример содержимого Функция для обнаружения Учитывается СЧИТАТЬПУСТОТЫ?
Истинно пустая (нет данных) Любая Да
Формула с "" =IF(A1=0,"","Text") ЕПУСТО или ДЛСТР Да
Пробелы " " СЖПРОБЕЛЫ + ДЛСТР Нет
Неразрывный пробел Char(160) ПОДСТАВИТЬ + ДЛСТР Нет
Символ табуляции Char(9) ПЕЧСИМВ + ДЛСТР Нет

Почему СЧИТАТЬПУСТОТЫ не видит ячейки с пробелами?

Функция СЧИТАТЬПУСТОТЫ проверяет только фактическое отсутствие данных в ячейке. Пробел — это символ с кодом 32, поэтому ячейка с пробелом технически не пуста. То же касается неразрывных пробелов (Char(160)) и других непечатаемых символов. Для их обнаружения требуется анализ содержимого ячейки, а не её статуса.

6. Power Query: профессиональный инструмент для анализа пропусков

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

Как посчитать пропуски с помощью Power Query:

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

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

  5. Нажмите OK — в новом столбце появятся 1 для пропусков и 0 для заполненных ячеек.
  6. Чтобы посчитать общее количество пропусков, добавьте ещё один пользовательский столбец с формулой:
    = List.Sum(#"Добавлен пользовательский столбец"[Пропуски])
  7. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

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

  • ✅ Обрабатывает миллионы строк без замедления.
  • ✅ Точно различает истинно пустые ячейки и ячейки с "".
  • ✅ Позволяет автоматизировать процесс (обновление при изменении исходных данных).
  • ✅ Можно комбинировать с другими преобразованиями (например, заменой пробелов).

⚠️ Внимание: В Power Query пустые ячейки обозначаются как null, а ячейки с формулами, возвращающими "", — как пустые строки (""). Чтобы учитывать оба типа, модифицируйте формулу:

= if [Column1] = null or [Column1] = "" then 1 else 0

7. VBA-скрипты для автоматизации подсчёта

Для пользователей, знакомых с Visual Basic for Applications, написание макроса может стать самым гибким решением. VBA позволяет учитывать специфические условия, например, игнорировать ячейки с формулами или обрабатывать скрытые символы.

Пример макроса для подсчёта истинно пустых ячеек:

Sub CountTrueBlanks()

Dim rng As Range

Dim cell As Range

Dim blankCount As Long

' Задайте ваш диапазон здесь

Set rng = Selection

blankCount = 0

For Each cell In rng

If IsEmpty(cell) Then

blankCount = blankCount + 1

End If

Next cell

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

End Sub

Этот скрипт отличает истинно пустые ячейки (IsEmpty) от ячеек с формулами, возвращающими "". Чтобы учитывать и те, и другие, замените условие на:

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

Для запуска макроса:

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

⚠️ Внимание: Макросы могут быть отключены в настройках безопасности Excel. Чтобы их разрешить, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и выберите Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

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

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

Да, но для этого потребуется объединить данные с разных листов. Самый простой способ:

  1. Создайте новый лист и используйте функцию 3D-ссылки (например, =СЧИТАТЬПУСТОТЫ(Лист1:Лист3!A1:A100)).
  2. Или воспользуйтесь Power Query, чтобы объединить листы перед анализом.

Обратите внимание: 3D-ссылки не работают с функциями массива (например, СУММПРОИЗВ).

Почему СЧИТАТЬПУСТОТЫ считает ячейки с формулой =IF(...,"","") как пустые, а СЧЁТЗ — как непустые?

Это связано с тем, как Excel обрабатывает формулы:

  • СЧИТАТЬПУСТОТЫ проверяет отображаемое значение ячейки. Если формула возвращает "", ячейка выглядит пустой.
  • СЧЁТЗ проверяет наличие любого содержимого, включая формулы. Даже если формула возвращает "", ячейка считается непустой.

Чтобы обойти это, используйте комбинацию =ЕСЛИ(ЕПУСТО(A1);1;0) для точного определения истинно пустых ячеек.

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

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

  1. Выделите отфильтрованный диапазон.
  2. Используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; диапазон)

    где 103 — код для функции СЧИТАТЬПУСТОТЫ.

Альтернатива: скопируйте видимые ячейки на новый лист (Alt+; для выделения видимых ячеек) и примените СЧИТАТЬПУСТОТЫ.

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

Да, для этого используйте инструмент "Заполнить":

  1. Выделите диапазон с пропусками.
  2. Перейдите на вкладку ГлавнаяНайти и выделитьВыделить группу ячеек.
  3. Выберите Пустые ячейкиOK.
  4. Введите = и нажмите стрелку вверх (), затем Ctrl+Enter.

Чтобы заменить формулы на значения: выделите заполненные ячейки → Ctrl+CПравая кнопка → Специальная вставка → Значения.

Как в Google Sheets посчитать пропуски?

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

  • =COUNTBLANK(A1:A100) — аналог СЧИТАТЬПУСТОТЫ.
  • =COUNTA(A1:A100) - COUNT(A1:A100) — аналог комбинации СЧЁТЗ и СЧИТАТЬ.
  • Для подсчёта ячеек с пробелами: =SUMPRODUCT(--(LEN(TRIM(A1:A100))=0)).

Отличие: в Google Sheets нет Power Query, но есть Apps Script для автоматизации.