Проверка пустых ячеек в Excel: 7 работающих формул с примерами

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

Вы узнаете, почему стандартная формула =ЕПУСТО() не всегда работает, как отличить действительно пустую ячейку от ячейки с невидимым содержимым, и какие есть альтернативные подходы для разных версий Excel (включая Excel 365 и Excel 2019). Материал будет полезен как начинающим, так и тем, кто хочет оптимизировать свои таблицы и избежать ошибок при обработке данных.

1. Базовая проверка: функция ЕПУСТО и её ограничения

Самый очевидный способ проверить ячейку на пустоту — использовать функцию =ЕПУСТО() (или =ISBLANK() в английской версии). Она возвращает ИСТИНА, если ячейка не содержит данных, и ЛОЖЬ в противном случае. Например:

```excel

=ЕПУСТО(A1)

```

Однако у этого метода есть критические ограничения:

  • 🔹 Не работает с ячейками, содержащими формулы, даже если они возвращают пустую строку (=""). Например, =ЕПУСТО(B1) вернёт ЛОЖЬ, если в B1 записана формула =ЕСЛИ(1=2;"";"Значение").
  • 🔹 Игнорирует пробелы и непечатаемые символы. Ячейка с одним пробелом (" ") не считается пустой.
  • 🔹 Не распознаёт ошибки типа #Н/Д или #ЗНАЧ! как "пустоту".

Поэтому ЕПУСТО() подходит только для самых простых случаев — когда вы точно уверены, что ячейка либо абсолютно пуста, либо содержит видимые данные. Во всех остальных сценариях потребуются более сложные решения.

📊 Какой версии Excel вы пользуетесь?
Excel 365
Excel 2019
Excel 2016
Excel 2013 или старше

2. Проверка на "пустоту" с учётом формул и пробелов

Если вам нужно учитывать ячейки с формулами, возвращающими пустую строку, или игнорировать пробелы, используйте комбинацию функций ДЛСТР (или LEN в английской версии) и ЕОШИБКА. Пример:

```excel

=И(ЕОШИБКА(НАЙТИ(" ";A1;1));ДЛСТР(A1)=0)

```

Эта формула работает так:

  1. ДЛСТР(A1)=0 — проверяет, что длина содержимого ячейки равна нулю (включая пустые строки от формул).
  2. ЕОШИБКА(НАЙТИ(" ";A1;1)) — исключает ячейки, содержащие только пробелы (функция НАЙТИ вернёт ошибку, если пробелов нет).

Для упрощения можно использовать сокращённую версию:

```excel

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

```

Она заменяет все пробелы на пустую строку и проверяет итоговую длину. Этот метод надёжнее, так как учитывает любые непечатаемые символы.

3. Как отличить пустую ячейку от ячейки с ошибкой

Ячейки с ошибками типа #Н/Д, #ДЕЛ/0! или #ЗНАЧ! часто нужно обрабатывать отдельно от действительно пустых. Для этого комбинируйте ЕПУСТО с ЕОШИБКА:

```excel

=ЕСЛИ(ЕОШИБКА(A1);"Ошибка";ЕСЛИ(ЕПУСТО(A1);"Пусто";"Есть данные"))

```

Если требуется игнорировать ошибки и считать их "пустотой", используйте:

```excel

=ИЛИ(ЕПУСТО(A1);ЕОШИБКА(A1))

```

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

⚠️ Внимание: Функция ЕОШИБКА появилась только в Excel 2007. В более ранних версиях используйте =ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(...)); или аналогичные обходные пути.

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

Чтобы проверить несколько ячеек одновременно, используйте формулы массива (вводите их через Ctrl+Shift+Enter в старых версиях Excel). Например, чтобы посчитать количество пустых ячеек в диапазоне A1:A10:

```excel

=СУММ(--(ДЛСТР(A1:A10)=0))

```

Для условного форматирования (выделения пустых ячеек) создайте правило с формулой:

  1. Выделите диапазон (например, B2:B100).
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу: =ДЛСТР(B2)=0.
  5. Задайте цвет заполнения (например, светло-серый).

Это правило будет выделять ячейки, которые:

  • 🔹 Абсолютно пусты.
  • 🔹 Содержат формулы, возвращающие пустую строку.
  • 🔹 Имеют длину содержимого = 0 (включая пробелы, если использовать ПОДСТАВИТЬ).
Почему условное форматирование не работает с ЕПУСТО?

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

Метод проверки Формула Что считается "пустым" Ограничения
ЕПУСТО =ЕПУСТО(A1) Только абсолютно пустые ячейки Не работает с формулами, пробелами, ошибками
ДЛСТР=0 =ДЛСТР(A1)=0 Пустые строки, формулы с "" Не учитывает пробелы
ПОДСТАВИТЬ+ДЛСТР =ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))=0 Пустые ячейки + ячейки только с пробелами Не распознаёт другие непечатаемые символы (табуляции)
ЕОШИБКА+ДЛСТР =ИЛИ(ЕПУСТО(A1);ЕОШИБКА(A1)) Пустые ячейки + ячейки с ошибками Не учитывает формулы с ""

5. Продвинутые техники: регулярные выражения и Power Query

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

Способ 1: Пользовательская функция на VBA

Создайте функцию IsReallyBlank, которая будет учитывать все нюансы:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (Insert → Module).
  3. Добавьте код:
    Function IsReallyBlank(rng As Range) As Boolean
    

    IsReallyBlank = (Len(Replace(rng.Text, " ", "")) = 0)

    End Function

  4. Теперь в Excel используйте =IsReallyBlank(A1).

Способ 2: Power Query (Excel 2016+)

Если вы работаете с большими данными, импортируйте их в Power Query и добавьте столбец с проверкой:

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

Power Query автоматически удаляет непечатаемые символы при импорте, поэтому этот метод надёжнее стандартных формул Excel.

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

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

  • 🚫 Использование =A1="" вместо ЕПУСТО. Первая формула вернёт ИСТИНА для ячейки с формулой ="", но ЛОЖЬ для действительно пустой ячейки.
  • 🚫 Пропуск ошибок. Если не учитывать ЕОШИБКА, ячейки с #Н/Д будут обрабатываться как непустые.
  • 🚫 Игнорирование непечатаемых символов. Ячейка может "казаться" пустой, но содержать символы переноса строки (CHAR(10)) или неразрывные пробелы (CHAR(160)).
⚠️ Внимание: В Excel Online некоторые функции (например, ПОДСТАВИТЬ с массивами) могут работать медленнее или возвращать ошибки. Тестируйте формулы в вашей версии перед применением к большим данным.

1. Использовать ЕПУСТО только для абсолютно пустых ячеек

2. Для формул с "" применять ДЛСТР=0

3. Учитывать пробелы через ПОДСТАВИТЬ или НАЙТИ

4. Обрабатывать ошибки отдельно с помощью ЕОШИБКА

5. Для больших данных использовать Power Query-->

7. Альтернативные подходы: СЧЁТЗ, СЧИТАТЬПУСТОТЫ и фильтры

Иногда вместо проверки каждой ячейки удобнее использовать функции подсчёта:

  • 📊 =СЧЁТЗ(A1:A100) — считает непустые ячейки в диапазоне.
  • 📊 =СЧИТАТЬПУСТОТЫ(A1:A100) — считает пустые ячейки (но не учитывает формулы с =""!).
  • 🔍 Фильтр по пустым значениям: выделите диапазон → Данные → Фильтр → в выпадающем списке выберите "(Пустые)".

Для динамических диапазонов (например, в Excel 365) можно комбинировать СЧЁТЗ с ФИЛЬТР:

```excel

=СЧЁТЗ(ФИЛЬТР(A1:A100;ДЛСТР(A1:A100)>0))

```

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

Часто задаваемые вопросы

Почему формула =ЕПУСТО(A1) возвращает ЛОЖЬ, если ячейка выглядит пустой?

Скорее всего, в ячейке есть:

  • Формула, возвращающая пустую строку (например, =ЕСЛИ(1=2;"";"Текст")).
  • Невидимые символы (пробелы, табуляции, символы переноса строки).
  • Ошибка, отображаемая как пустая ячейка (например, #Н/Д с отключённым отображением ошибок).

Используйте =ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))=0 для надёжной проверки.

Как найти все ячейки, которые выглядят пустыми, но содержат формулы?

Выполните следующие шаги:

  1. Нажмите F5Выделение группы ячеекФормулы.
  2. Отфильтруйте ячейки с пустым результатом: Главная → Найти и выбрать → Формулы → Проверка ошибок.
  3. Или используйте формулу =ЕСЛИ(ДЛСТР(ФОРМУЛТЕКСТ(A1))>0;ЕСЛИ(A1="";"Формула с пустым результатом";"");"").
Можно ли в Excel 365 использовать новую функцию ISBLANK для диапазонов?

Нет, ISBLANK (или ЕПУСТО) по-прежнему не поддерживает массивы. Однако в Excel 365 вы можете использовать:

=БЫСТР.АНАЛИЗ(A1:A10;ДЛСТР;0)

или комбинацию с КАРТА:

=КАРТА(A1:A10;ЛЯМБДА(x;ДЛСТР(x)=0))
Как сделать так, чтобы пустые ячейки не участвовали в построении графиков?

Два способа:

  1. В настройках графика выберите Выбрать данные → Скрытые и пустые ячейки → Пропускать пустые ячейки.
  2. Замените пустые ячейки на #Н/Д с помощью формулы:
    =ЕСЛИ(ЕПУСТО(A1);НД();A1)
    Excel автоматически игнорирует #Н/Д при построении графиков.
Почему =СЧИТАТЬПУСТОТЫ(A1:A10) возвращает 0, хотя в диапазоне есть пустые ячейки?

Это происходит, если:

  • Ячейки содержат формулы, возвращающие пустую строку (например, ="").
  • Включено условное форматирование, скрывающее содержимое (но не делающее ячейку пустой).
  • Ячейки отформатированы как текст и содержат невидимые символы (например, CHAR(160) — неразрывный пробел).

Используйте =СУММ(--(ДЛСТР(A1:A10)=0)) для точного подсчёта.