Как удалить пустые строки в Excel: 7 проверенных способов (2026)

Пустые строки в таблице Excel не просто портят внешний вид документа — они искажают результаты фильтрации, мешают сортировке и увеличивают размер файла. Если при попытке удалить их через контекстное меню (Удалить строки) ничего не происходит, проблема кроется в скрытых символах, форматировании или особенностях диапазона. Например, ячейки могут казаться пустыми из-за белого шрифта, а реально содержать пробелы, символы табуляции или ошибки формул типа #Н/Д.

В 80% случаев пользователи сталкиваются с тем, что стандартная очистка через Главная → Удалить → Удалить строки листа не работает. Это происходит потому, что Excel воспринимает строку как непустую, если хотя бы в одной её ячейке есть невидимый символ или форматирование. Ниже разберём 7 способов удаления — от ручного до автоматизированного с помощью VBA, включая методы для таблиц с формулами и сводных данных.

1. Быстрое удаление пустых строк через фильтр

Самый надёжный способ для таблиц без формул — использование встроенного фильтра. Он позволяет выделить только те строки, где все ячейки действительно пусты (включая скрытые символы). Метод работает в Excel 2010–2026 и Excel Online, но требует предварительной проверки данных на наличие "невидимых" значений.

Алгоритм действий:

  • 📌 Выделите диапазон таблицы (включая заголовки). Если данных много, нажмите Ctrl+A дважды.
  • 🔍 Перейдите на вкладку Данные → Фильтр (или нажмите Ctrl+Shift+L).
  • 🖱️ Кликните по стрелке фильтра в первом столбце → снимите галочку с (Выделить всё) → оставьте только (Пустые).
  • ✂️ Выделите отфильтрованные строки → правая кнопка мыши → Удалить строки с листа.

Важно: Если после фильтрации пустые строки не отобразились, значит в ячейках есть невидимые символы. Используйте функцию =ЕПУСТО() для проверки (подробнее в разделе 3).

2. Удаление строк с помощью функции "Перейти → Специальная вставка"

Этот метод эффективен для больших таблиц (10 000+ строк), где фильтр работает медленно. Он находит все пустые ячейки в выделенном диапазоне, но требует ручной проверки, так как может захватить ячейки с формулами, возвращающими пустое значение (например, =ЕСЛИ(A1=0;"";"Данные")).

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

  1. Выделите диапазон таблицы (например, A1:Z1000).
  2. Нажмите F5 → выберите Выделить...Специальная вставка.
  3. В открывшемся окне отметьте Пустые ячейкиОК.
  4. Перейдите на вкладку Главная → Удалить → Удалить строки с листа.
⚠️ Внимание: Если в таблице есть формулы, этот метод удалит строки, где формула возвращает пустое значение, даже если ячейка не пустая фактически. Перед использованием сохраните резервную копию файла.
Метод Подходит для Ограничения Скорость
Фильтр Таблицы без формул Не находит ячейки с пробелами Средняя
Специальная вставка Большие диапазоны Удаляет строки с формулами, возвращающими "" Высокая
VBA-скрипт Автоматизация для частых задач Требует навыков работы с макросами Мгновенно

3. Проверка на скрытые символы: функции ЕПУСТО и СЧИСТИТЬ

Часто строки кажутся пустыми из-за невидимых символов: пробелов, табуляций или непечатаемых знаков (например, CHAR(160) — неразрывный пробел). Чтобы их обнаружить, используйте комбинацию функций:

  • 🔎 =ЕПУСТО(A1) — возвращает ИСТИНА, только если ячейка полностью пуста.
  • 🧹 =СЧИСТИТЬ(A1) — удаляет все непечатаемые символы (но не пробелы!).
  • 📏 =ДЛСТР(СЖПРОБЕЛЫ(A1)) — показывает длину строки после удаления пробелов.

Пример применения:

  1. Добавьте вспомогательный столбец рядом с таблицей.
  2. Введите формулу =ЕПУСТО(A1)=ИСТИНА и протяните её на все строки.
  3. Отфильтруйте столбец по значению ЛОЖЬ — это строки с "невидимыми" данными.
Как удалить неразрывные пробелы (CHAR(160))

Используйте формулу =ПОДСТАВИТЬ(A1;СИМВОЛ(160);""), затем скопируйте значения через Специальная вставка → Значения.

4. Автоматизация через VBA: макрос для удаления пустых строк

Если вам регулярно приходится очищать большие таблицы, создайте макрос. Ниже приведён код, который удаляет строки, где все ячейки в диапазоне пустые (включая ячейки с формулами, возвращающими ""):

Sub DeleteEmptyRows()

Dim rng As Range, row As Range, cell As Range

Dim isEmpty As Boolean

Set rng = Selection ' Выделенный диапазон

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

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон таблицы и запустите макрос (F5).
⚠️ Внимание: Макрос удаляет строки безвозвратно. Перед запуском сохраните файл или создайте копию листа. Для таблиц с формулами замените условие cell.Value <> "" на cell.Formula <> "".
📊 Какой способ удаления пустых строк вы используете чаще?
Фильтр
Специальная вставка
VBA-макрос
Ручное удаление

5. Особенности работы с таблицами Excel (Ctrl+T)

Если ваш диапазон оформлен как таблица Excel (созданная через Ctrl+T), стандартные методы удаления строк могут не работать. В этом случае:

  • 🛠️ Преобразуйте таблицу обратно в диапазон: Конструктор → Преобразовать в диапазон.
  • 🔄 Используйте метод фильтрации (раздел 1), но учитывайте, что строки итогов таблицы также могут мешать.
  • 📊 Для сводных таблиц удаляйте пустые строки в исходных данных, а не в самой сводной.

Критичный нюанс: В таблицах Excel (Ctrl+T) нельзя удалить строки через Удалить строки листа — только через контекстное меню строки (Удалить → Строки таблицы). Это ограничение связано с динамическим диапазоном таблицы.

6. Удаление пустых строк в таблицах с формулами

Если в таблице есть формулы, возвращающие пустые значения (например, =ЕСЛИ(A1=0;"";"Текст")), стандартные методы удалят такие строки ошибочно. Чтобы этого избежать:

1. Скопируйте диапазон с формулами в новый лист через Специальная вставка → Значения|false

2. Примените к копии метод фильтрации или Специальной вставки|false

3. Удалите пустые строки в копии и сравните с оригиналом|false

4. Перенесите очищенные данные обратно, если результаты совпадают|false

-->

Альтернативный способ — использовать условное форматирование для выделения строк, где все ячейки пустые фактически (а не по формуле):

  1. Выделите диапазон → Главная → Условное форматирование → Создать правило.
  2. Выберите Использовать формулу... и введите =СЧЁТЗ($A1:$Z1)=0 (замените $A1:$Z1 на ваш диапазон).
  3. Задайте формат (например, красный фон) и удалите выделенные строки вручную.

7. Почему пустые строки появляются снова после удаления

Если после очистки таблицы пустые строки возвращаются, проверьте следующие моменты:

  • 🔄 Динамические диапазоны: Формулы типа =ДВССЫЛ("A1:A"&СЧЁТЗ(A:A)) могут автоматически добавлять строки.
  • 📥 Импорт данных: При импорте из CSV/SQL часто добавляются пустые строки в конце.
  • 🖱️ Стиль таблицы: Некоторые шаблоны Excel добавляют пустые строки для оформления (например, "Таблица с заголовками").
  • 📊 Сводные таблицы: Они могут создавать пустые строки при обновлении источника данных.

Решение:

  1. Для динамических диапазонов ограничьте конечную строку фиксированным значением (например, A1:A1000).
  2. После импорта данных сразу применяйте фильтр по пустым строкам.
  3. Отключите автоформатирование в настройках Excel (Файл → Параметры → Дополнительно → Параметры редактирования).

FAQ: Частые вопросы по удалению пустых строк

Можно ли удалить пустые строки в защищённом листе?

Нет, если лист защищён от изменений. Сначала снимите защиту: Рецензирование → Снять защиту листа (потребуется пароль, если он установлен). Альтернатива — скопировать данные на новый лист через Специальная вставка → Значения.

Почему после удаления строки нумерация формул сбивается?

Это происходит, если в формулах используются относительные ссылки (например, =A1+1). После удаления строки Excel автоматически корректирует ссылки. Чтобы избежать ошибок, замените относительные ссылки на абсолютные (например, =$A$1+1) или используйте именованные диапазоны.

Как удалить пустые строки в сводной таблице?

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

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

Да, если вы не сохраняли файл после удаления. Используйте Ctrl+Z или кнопку Отменить на панели быстрого доступа. В противном случае восстановить данные можно только из резервной копии.

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

Используйте фильтр по столбцу, где должна быть заполнена ячейка. Например, если в строке пуста ячейка в столбце B, отфильтруйте столбец B по (Пустые) и удалите отобранные строки.