Пустые ячейки в Microsoft Excel могут искажать результаты формул, мешать сортировке данных и создавать проблемы при построении графиков. Если вы заметили, что функция =СЧЁТЗ() возвращает неверное количество заполненных строк или фильтр игнорирует часть данных, скорее всего, в таблице есть невидимые пробелы, символы переноса или реально пустые ячейки. Проверка на пустоту — первая диагностика перед любыми вычислениями.
В отличие от очевидных "дырок" в данных, скрытые пустые ячейки часто остаются незамеченными. Например, после импорта из CSV или копирования с веб-страниц в ячейках могут сохраняться непечатаемые символы (CHAR(10), CHAR(13)), которые Excel воспринимает как содержимое. Даже функция =ЕПУСТО() не всегда их распознаёт. В этой статье — 7 способов проверки с учётом таких нюансов, от ручного осмотра до автоматизированных скриптов.
1. Визуальный осмотр: когда достаточно глаз
Если таблица небольшая (до 500 строк), самый быстрый способ — визуальная проверка. Включите отображение формул через вкладку Формулы → Показать формулы или нажмите Ctrl + `. Это поможет выявить:
- 🔹 Ячейки с формулами, возвращающими пустую строку (
=""). - 🔹 Скрытые символы (например, пробелы после текста).
- 🔹 Ячейки с ошибками (
#Н/Д,#ЗНАЧ!), которые иногда воспринимаются как пустые.
Для удобства используйте горячие клавиши навигации:
- 🔹
Ctrl + →— перейти к последней заполненной ячейке в строке (если курсор остановится раньше, значит, есть пустые). - 🔹
Ctrl + End— перейти к последней ячейке с данными на листе (если результат неожиданный, в таблице есть "мусор").
2. Функция ЕПУСТО(): базовый метод с подводными камнями
Функция =ЕПУСТО(ячейка) возвращает ИСТИНА, если ячейка пуста, и ЛОЖЬ — если содержит данные. Однако она не распознаёт ячейки с формулами, возвращающими пустую строку (например, =ЕСЛИ(A1=0;"";"Значение")). Пример использования:
=ЕПУСТО(A1) // Проверяет ячейку A1
=ЕСЛИ(ЕПУСТО(B2);"Пусто";"Есть данные")
Ограничения функции:
- 🚫 Не видит пробелы или символы табуляции.
- 🚫 Игнорирует ячейки с ошибками (
#Н/Д,#ДЕЛ/0!). - 🚫 Не работает с массивами (требуется
БЫСТР.АНАЛИЗилиФИЛЬТР).
Как обойти ограничения ЕПУСТО()?
Используйте комбинацию функций:
=И(ЕПУСТО(A1);ДЛСТР(A1)=0) — проверяет и пустоту, и длину содержимого.
Или для текста с пробелами:
=ИЛИ(ЕПУСТО(A1);A1="").
3. Условное форматирование: выделение пустых ячеек
Если нужно визуально отметить все пустые ячейки в большом диапазоне, используйте условное форматирование:
- Выделите диапазон (например,
A1:D100). - Перейдите на вкладку
Главная → Условное форматирование → Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - В поле "Форматировать только ячейки с" укажите
Значение → равняется → ""(два кавычка без пробела). - Задайте цвет заполнения (например, светло-красный) и нажмите
ОК.
Для проверки ячеек с формулами, возвращающими пустую строку, используйте правило:
=ДЛСТР(A1)=0
4. Фильтр и сортировка: быстрая очистка данных
Чтобы массово удалить или обработать пустые ячейки:
- Выделите заголовок столбца (например,
A1). - Нажмите
Данные → Фильтр(илиCtrl + Shift + L). - Раскройте выпадающий список в заголовке столбца и снимите галочку с
(Пусто). - Скопируйте отфильтрованные данные в новый лист или удалите ненужные строки.
Для сортировки:
- 🔹 Выделите диапазон с заголовками.
- 🔹 Нажмите
Данные → Сортировка. - 🔹 В настройках сортировки выберите столбец и порядок
По убыванию— пустые ячейки окажутся внизу.
5. Формулы для сложных случаев: пробелы, ошибки, непечатаемые символы
Когда стандартные методы не работают, применяйте комбинированные формулы:
| Цель проверки | Формула | Пример результата |
|---|---|---|
| Пустая ячейка или пробелы | =ЕСЛИ(ДЛСТР(СЖПРОБЕЛЫ(A1))=0;"Пусто";"Есть данные") |
Распознаёт ячейки с одним или несколькими пробелами. |
| Ячейка с ошибкой (#Н/Д, #ЗНАЧ!) | =ЕСЛИОШИБКА(A1;"Пусто") |
Заменяет ошибки на "Пусто". |
| Непечатаемые символы (перенос строки) | =ЕСЛИ(ЧИСТ(A1)="";"Пусто";"Есть данные") |
Удаляет символы с кодами 0–31 (включая CHAR(10)). |
| Пустая ячейка или ноль | =ЕСЛИ(ИЛИ(ЕПУСТО(A1);A1=0);"Пусто/ноль";"Другое") |
Различает реально пустые ячейки и нули. |
Для проверки целого диапазона используйте формулу массива (введите с Ctrl + Shift + Enter в старых версиях Excel):
=СУММПРОИЗВ(--(ДЛСТР(СЖПРОБЕЛЫ(A1:A100))=0))
Эта формула вернёт количество реально пустых ячеек в диапазоне A1:A100, игнорируя пробелы.
6. Power Query: автоматизированная очистка данных
Если вы работаете с большими наборами данных (например, импортируете из SQL или CSV), используйте Power Query:
- Выделите диапазон и нажмите
Данные → Из таблицы/диапазона(в Excel 2016+). - В редакторе Power Query выберите столбец, затем
Главная → Заменить значения. - В поле "Значение для поиска" оставьте пустым, в "Заменить на" укажите
nullили нужный текст. - Нажмите
Закрыть и загрузить.
Для удаления строк с пустыми ячейками:
- 🔹 В Power Query выберите столбец →
Главная → Удалить строки → Удалить пустые. - 🔹 Чтобы удалить строки, где все ячейки пустые, используйте
Удалить строки → Удалить строки с ошибками(предварительно замените пустые значения на ошибки через=ЕСЛИ(ЕПУСТО(A1);#Н/Д;A1)).
7. VBA-скрипты: для продвинутых пользователей
Если нужно автоматизировать проверку в сотнях файлов, используйте макрос:
Sub FindEmptyCells()
Dim rng As Range, cell As Range
Set rng = Selection
For Each cell In rng
If IsEmpty(cell) Or Len(Trim(cell.Value)) = 0 Then
cell.Interior.Color = RGB(255, 200, 200) ' Красный цвет
End If
Next cell
End Sub
Как запустить:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон на листе и запустите макрос (
F5).
Для удаления пустых строк целиком:
Sub DeleteEmptyRows()
Dim i As Long
For i = Cells.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next i
End Sub
✅ Удалите лишние пробелы функцией СЖПРОБЕЛЫ
✅ Замените непечатаемые символы через ЧИСТ или ПЕЧСИМВ
✅ Проверьте ячейки с формулами на возвращаемые пустые строки
✅ Примените условное форматирование для визуального контроля
-->
Частые ошибки и как их избежать
Даже опытные пользователи допускают ошибки при проверке пустых ячеек:
⚠️ Внимание: Функция=ЕПУСТО()не распознаёт ячейки с формулой=НД()или=""как пустые. Для таких случаев используйте=ЕСЛИ(ЯЧЕЙКА("тип";A1)="b";"Пусто";"Есть данные"), где"b"— код пустой ячейки.
Другие типичные проблемы:
- 🔸 Ложные срабатывания: Ячейки с формулой
=ЕСЛИ(A1=0;"";"Текст")воспринимаются как пустые, хотя содержат логику. - 🔸 Скрытые символы: После импорта из PDF или веб-страниц в ячейках остаются символы
CHAR(160)(неразрывный пробел), которыеЕПУСТО()не видит. - 🔸 Ошибки форматирования: Ячейки с пользовательским форматом (
;;;для скрытия нулей) могут казаться пустыми, но содержат данные.
⚠️ Внимание: При использованииФильтра по пустым значениямExcel не учитывает ячейки с формулами, возвращающими"". Чтобы их отфильтровать, добавьте вспомогательный столбец с формулой=ЕСЛИ(ДЛСТР(A1)=0;"Пусто";"")и фильтруйте по нему.
FAQ: Ответы на частые вопросы
Почему функция ЕПУСТО не работает с ячейками, где формула возвращает пустую строку?
Функция ЕПУСТО проверяет только физическое отсутствие данных в ячейке. Если ячейка содержит формулу (даже возвращающую ""), она не пуста с точки зрения Excel. Используйте =ДЛСТР(A1)=0 для проверки результата формулы.
Как найти ячейки с пробелами, которые выглядят пустыми?
Примените формулу =СЖПРОБЕЛЫ(A1)="" или условное форматирование с правилом =ДЛСТР(СЖПРОБЕЛЫ(A1))>0 (выделит ячейки с пробелами). Для массовой очистки используйте НАЙТИ/ЗАМЕНИТЬ (Ctrl + H): в поле "Найти" введите пробел, в "Заменить на" оставьте пустым.
Можно ли проверить пустоту ячейки в Google Sheets?
В Google Sheets работают те же принципы, но есть нюансы:
- 🔹 Функция
=ISBLANK()аналогичнаЕПУСТО. - 🔹 Для проверки пробелов используйте
=LEN(TRIM(A1))=0. - 🔹 Условное форматирование настраивается через
Формат → Условное форматирование.
Как посчитать количество пустых ячеек в диапазоне?
Используйте одну из формул:
- 🔹 Для реально пустых ячеек:
=СЧЁТЕСЛИ(A1:A100;""). - 🔹 Для ячеек с пробелами или пустых:
=СУММПРОИЗВ(--(ДЛСТР(СЖПРОБЕЛЫ(A1:A100))=0))(вводите сCtrl+Shift+Enterв старых версиях). - 🔹 Для ячеек с ошибками:
=СЧЁТЕСЛИМНЖ(A1:A100;"#Н/Д").
Почему после удаления пустых строк номера строк сбиваются?
При удалении строк в Excel происходит сдвиг данных вверх, поэтому номера строк изменяются. Чтобы сохранить исходные номера:
- Добавьте вспомогательный столбец с номерами строк (
=СТРОКА()). - Преобразуйте формулы в значения (
Копировать → Специальная вставка → Значения). - Удалите пустые строки — номера останутся привязанными к данным.