Работа с большими таблицами в Microsoft Excel часто превращается в поиск иголки в стоге сена — особенно когда нужно выявить пустые строки. Они могут появиться после импорта данных, неудачного копирования или просто по ошибке пользователя. Такие строки не только портят внешний вид таблицы, но и искажают результаты расчётов, мешают сортировке и фильтрации. Например, функция СЧЁТЗ будет учитывать их как ненулевые значения, а сводные таблицы могут игнорировать важные данные из-за разрывов.
В этой статье мы разберём 7 способов поиска и выделения пустых строк — от базовых инструментов вроде фильтрации до продвинутых методов с использованием Power Query и VBA. Каждый метод проиллюстрирован скриншотами (в текстовом формате) и адаптирован под разные версии Excel (2010–2026). Особое внимание уделим скрытым ловушкам: почему стандартный фильтр иногда не находит "пустоту", как отличить действительно пустую ячейку от ячейки с формулой, возвращающей "", и что делать, если пустые строки чередуются с заполненными.
1. Базовый метод: фильтрация данных
Самый простой способ — использовать встроенный фильтр. Он подходит для таблиц с заголовками и позволяет быстро выделить строки, где все ячейки пустые или пустые в конкретном столбце.
Как это работает:
- 📌 Выделите диапазон данных (включая заголовки).
- 🔍 Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - 📊 В выпадающем списке любого столбца снимите галочку с
(Выделить всё), затем отметьте(Пустые).
⚠️ Внимание: Фильтр покажет строки, где пуста конкретная ячейка, а не вся строка. Чтобы найти строки, где пусты все ячейки, используйте метод с условным форматированием (раздел 3).
2. Поиск с помощью функции "Перейти → Специальная..."
Если нужно выделить все пустые ячейки в таблице (независимо от строк), используйте инструмент Выделить группу ячеек:
- Выделите диапазон данных (например,
A1:D100). - Нажмите
F5→Выделить...(илиCtrl+G). - В открывшемся окне выберите
Специальная.... - Отметьте
Пустые ячейки→ОК.
Теперь все пустые ячейки выделены. Чтобы удалить целые пустые строки, выполните:
- 📌 Нажмите правой кнопкой на выделение →
Удалить.... - 📄 Выберите
Строку→ОК.
3. Условное форматирование для визуализации пустых строк
Когда пустые строки разбросаны по таблице, их сложно заметить. Условное форматирование поможет подсветить такие строки:
- Выделите диапазон (например,
A1:Z1000). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу:
=СЧЁТЗ($A1:$Z1)=0(где
$A1:$Z1— первая строка диапазона, а1— номер строки). - Задайте формат (например, красный фон) →
ОК.
Теперь все строки, где все ячейки пустые, будут подсвечены. Чтобы удалить их:
- 📌 Отсортируйте таблицу по цвету (вкладка
Данные→Сортировка). - 🧹 Выделите подсвеченные строки и удалите их.
Почему формула =СЧЁТЗ($A1
$Z1)=0 не работает?:Если в строке есть ячейки с формулами, возвращающими пустую строку (=""), функция СЧЁТЗ посчитает их как непустые. Используйте вместо неё:
=СУММПРОИЗВ(--($A1:$Z1<>""))=04. Использование функции СЧЁТЕСЛИ для анализа
Если нужно посчитать пустые строки перед их удалением, используйте комбинацию функций:
Допустим, данные в диапазоне A1:C100. Введите в любой свободной ячейке:
=СЧЁТЕСЛИМН($A$1:$A$100; "<>"""; $B$1:$B$100; "<>"""; $C$1:$C$100; "<>"")
Эта формула вернёт количество строк, где хотя бы одна ячейка не пустая. Чтобы найти количество полностью пустых строк, вычтите результат из общего числа строк:
=100 - СЧЁТЕСЛИМН(...)
| Функция | Назначение | Пример |
|---|---|---|
СЧЁТЗ |
Считает непустые ячейки | =СЧЁТЗ(A1:C1) |
СЧЁТЕСЛИ |
Считает ячейки по условию | =СЧЁТЕСЛИ(A1:A100; "<>""") |
СЧЁТЕСЛИМН |
Считает по нескольким условиям | =СЧЁТЕСЛИМН(A1:C1; "<>""") |
5. Power Query: удаление пустых строк в импортированных данных
Если вы работаете с данными, импортированными из CSV, SQL или других источников, Power Query (доступен в Excel 2016+) поможет очистить их от пустых строк до загрузки в таблицу.
Инструкция:
- Выделите данные → вкладка
Данные→Из таблицы/диапазона(или импортируйте файл). - В редакторе Power Query выберите столбец, по которому будете проверять пустоту.
- Нажмите на стрелку фильтра → снимите галочку с
(пусто)→ОК. - Чтобы удалить строки, где все ячейки пустые, используйте:
= Table.SelectRows(#"Предыдущий шаг", each not List.IsEmpty(List.RemoveNulls(Record.FieldValues(_)))) - Нажмите
Закрыть и загрузить.
6. Макросы VBA для автоматизации
Для регулярной работы с большими файлами напишите простой макрос. Он удалит все строки, где все ячейки пустые в выбранном диапазоне:
Sub DeleteEmptyRows()
Dim rng As Range, row As Range, cell As Range
Dim isEmpty As Boolean
Set rng = Selection ' или укажите диапазон: Range("A1:Z1000")
For Each row In rng.Rows
isEmpty = True
For Each cell In row.Cells
If Not IsEmpty(cell) And cell.Value <> "" Then
isEmpty = False
Exit For
End If
Next cell
If isEmpty Then row.Delete
Next row
End Sub
⚠️ Внимание: Макрос удаляет строки без возможности отмены (Ctrl+Z не сработает). Перед запуском:
Сохраните копию файла|Проверьте диапазон выделения|Убедитесь, что в таблице нет скрытых данных|Отключите фильтры
-->
7. Продвинутый метод: формулы массива для сложных случаев
Если пустые строки чередуются с заполненными, а данные разбросаны по листу, используйте формулы массива для их идентификации. Например, чтобы найти номера пустых строк в диапазоне A1:C100:
=ЕСЛИОШИБКА(МАЛЕНЬКИЙ(ЕСЛИ(СЧЁТЕСЛИМН($A$1:$C$100; "<>"""; СТРОКА($A$1:$A$100))=0; СТРОКА($A$1:$A$100)); СТРОКА(A1)); "")
Введите эту формулу как формулу массива (Ctrl+Shift+Enter в старых версиях Excel). Она вернёт номера всех пустых строк. Чтобы удалить их:
- 📌 Скопируйте результаты формулы в новый столбец.
- 📄 Отсортируйте таблицу по убыванию номеров строк.
- 🧹 Удалите строки с номерами из списка.
FAQ: Частые вопросы о пустых строках в Excel
Почему фильтр не находит пустые строки, если они есть?
Фильтр игнорирует ячейки с формулами, возвращающими "" (пустую строку), а также ячейки с пробелами или непечатаемыми символами. Используйте функцию =ПРОБЕЛЫ(A1)=A1, чтобы найти "скрытые" пробелы.
Как удалить пустые строки в защищённом листе?
Снимите защиту (Рецензирование → Снять защиту листа), удалите строки, затем верните защиту. Если пароль неизвестен, используйте VBA для обхода защиты (требует прав администратора).
Можно ли автоматически удалять пустые строки при открытии файла?
Да, добавьте макрос Auto_Open в модуль ThisWorkbook:
Private Sub Workbook_Open()
Call DeleteEmptyRows ' вызов вашего макроса
End Sub
Предупреждение: это замедлит открытие файла и может привести к потере данных при ошибках.
Как найти пустые строки в сводной таблице?
Сводные таблицы не содержат пустых строк — они появляются при обновлении источника данных. Чтобы их убрать, настройте параметры источника: Анализ → Изменить источник данных → удалите пустые строки в исходных данных.
Почему после удаления пустых строк смещаются формулы?
Это происходит из-за относительных ссылок (например, =A1). Замените их на абсолютные (=$A$1) или используйте именованные диапазоны. Также проверьте настройки в Файл → Параметры → Формулы → Стиль ссылок R1C1.