Как удалить все пустые строки в Excel за раз: пошаговые методы

Почему пустые строки портят данные и как их убрать без потерь

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

По статистике Microsoft, 37% ошибок в бизнес-отчётах связаны с некорректной обработкой пустых ячеек. При этом в 90% случаев пользователи удаляют строки вручную, не зная о встроенных инструментах Excel. В этой статье вы узнаете 5 проверенных способов очистки данных — от базовых до продвинутых, включая макросы для автоматизации.

Важно: методы работают во всех версиях Excel (2013–2026), Excel Online и Google Sheets (с поправками). Если вы работаете с таблицами объёмом свыше 100 000 строк, обратите внимание на раздел про Power Query — он спасёт ваше время.

Способ 1: Удаление через фильтр (самый простой метод)

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

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

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

Предупреждение: если в строке есть хотя бы один непустой символ (например, пробел или неразрывный пробел Char(160)), фильтр её не скрывает. В таком случае используйте способ с функцией СЖПРОБЕЛЫ (описан ниже).

Выделить весь диапазон данных

Убедиться, что нет объединённых ячеек

Проверить наличие скрытых символов (пробелов, табуляций)

Сохранить резервную копию файла-->

Способ 2: Функция СЖПРОБЕЛЫ + сортировка (для "невидимых" пробелов)

Частая проблема: строки кажутся пустыми, но на самом деле содержат пробелы, перenosы строк (Char(10)) или непечатаемые символы. В этом случае поможет комбинация функции СЖПРОБЕЛЫ и условного форматирования.

Инструкция:

  1. Добавьте вспомогательный столбец справа от данных (например, AA).
  2. В первую ячейку столбца (AA1) введите формулу:
    =ЕСЛИ(СЧЁТЗ(СЖПРОБЕЛЫ(A1:Z1))=0; "ПУСТО"; "ЕСТЬ ДАННЫЕ")

    и растяните её на весь диапазон.

  3. Отсортируйте таблицу по вспомогательному столбцу (по убыванию), чтобы все пустые строки оказались внизу.
  4. Удалите строки с меткой "ПУСТО".

💡 Профи-совет: Если данных много, замените сортировку на фильтр по столбцу AA с критерием "ПУСТО". Так вы избежите ошибок при ручном выделении.

Способ 3: Макрос VBA для мгновенного удаления (для опытных)

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

Как запустить макрос:

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

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

    Dim ws As Worksheet

    Set ws = ActiveSheet

    Set rng = ws.UsedRange

    For Each row In rng.Rows

    If WorksheetFunction.CountA(row) = 0 Then

    row.Delete

    End If

    Next row

    End Sub

  4. Закройте редактор и запустите макрос через Alt+F8DeleteEmptyRows.
Модификация макроса для удаления строк с пробелами

Замените строку If WorksheetFunction.CountA(row) = 0 Then на:

If WorksheetFunction.CountA(row) = 0 Or _

WorksheetFunction.Sum(WorksheetFunction.Len(row)) = 0 Then

Это удалит строки, где есть только пробелы.

⚠️ Внимание: Макрос удаляет строки безвозвратно. Перед запуском:

⚠️ Создайте резервную копию файла (сочетание F12 → сохраните как .xlsx с другим именем).

⚠️ Отменить действие макроса через Ctrl+Z невозможно — он выполняет несколько операций за раз.

Способ 4: Power Query (для больших данных и регулярной очистки)

Power Query — это инструмент Excel для трансформации данных, который идеально подходит для обработки файлов объёмом свыше 50 000 строк. В отличие от макросов, здесь есть история изменений, и вы можете откатиться на любой этап.

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

  • 📊 Выделите диапазон данных → Данные → Из таблицы/диапазонаExcel 2016+).
  • 🔄 В открывшемся редакторе Power Query выберите Домашняя → Удалить строки → Удалить пустые строки.
  • 💾 Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Преимущества метода:

КритерийPower QueryОбычный фильтрМакрос
Скорость обработки 100 000 строк2–3 секунды10–15 секунд1 секунда
Возможность отменыДа (сохраняет шаги)НетНет
Работа с внешними источникамиДа (SQL, CSV, JSON)НетДа (с кодом)
Требует знания формулНетНетДа (VBA)

📊 Какой инструмент вы используете для очистки данных в Excel?
Фильтр
Формулы (СЖПРОБЕЛЫ)
Макросы VBA
Power Query
Ручное удаление

Способ 5: Условное форматирование + удаление (визуальный контроль)

Если вы не уверены, какие строки пустые, а какие содержат важные данные (например, формулы, возвращающие пустое значение), используйте условное форматирование для их выделения.

Как настроить:

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

    (замените $A1:$Z1 на ваш диапазон строки).

  3. Задайте формат (например, красный фон) → ОК.
  4. Отсортируйте таблицу по цвету, чтобы собрать все пустые строки вместе, и удалите их.

🔍 Лайфхак: Чтобы найти строки с формулами, которые выглядят пустыми (например, =ЕСЛИ(A1=0;"";"Данные")), используйте формулу:

=И($A1="";ЕПУСТО($A1)=ЛОЖЬ)

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

Частые ошибки и как их избежать

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

⚠️ Ошибка 1: Удаление строк с формулами, которые возвращают пустое значение. Например, =ВПР(...) без совпадений или =ЕСЛИОШИБКА(формула;""). Решение: используйте условное форматирование с проверкой =ЕПУСТО(A1)=ЛОЖЬ.

⚠️ Ошибка 2: Смещение данных после удаления. Если в таблице есть ссылки типа =B5, они "поедут" после удаления строк выше. Решение: замените абсолютные ссылки на именованные диапазоны или используйте СМЕЩ.

Другие подводные камни:

  • 🔗 Связанные данные: Если таблица связана с Power Pivot или внешним источником, удаление строк может нарушить целостность модели. Проверьте зависимости в Данные → Связи.
  • 📊 Сводные таблицы: Они не обновляются автоматически после удаления строк. Обновите их вручную (Alt+F5).
  • 🔒 Защищённые листы: На защищённых листах макросы и фильтры могут не работать. Снимите защиту через Рецензирование → Снять защиту листа.

FAQ: Ответы на частые вопросы

Можно ли удалить пустые строки в Google Sheets?

Да, методы аналогичны Excel, но с поправками:

  • Фильтр: Данные → Создать фильтр → убрать галочку с (Пусто).
  • Формула для поиска пустых строк: =COUNTBLANK(A1:Z1)=COLUMNS(A1:Z1).
  • Макросы: используйте Google Apps Script вместо VBA.

В Google Sheets нет Power Query, но есть альтернатива — надстройка Power Tools.

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

Это происходит, если ваша таблица связана с внешним источником (например, SQL, CSV или Power Query). При обновлении данные подгружаются заново, включая пустые строки. Решения:

  1. Очищайте данные на этапе импорта (в Power Query или параметрах подключения).
  2. Используйте Лист.MакросVBA), который будет запускаться после каждого обновления.
Как удалить строки, где пуста только одна ячейка в столбце (например, столбец B)?

Используйте фильтр с настройкой:

  1. Выделите данные → Данные → Фильтр.
  2. Откройте фильтр для столбца B → выберите (Пустые).
  3. Выделите отфильтрованные строки и удалите их.

Для автоматизации подойдёт макрос:

Sub DeleteRowsIfColumnBEmpty()

Dim i As Long

For i = Cells.Rows.Count To 1 Step -1

If IsEmpty(Cells(i, 2).Value) Then Rows(i).Delete

Next i

End Sub

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

Если вы не сохраняли файл после удаления, закройте Excel без сохранения — данные восстановятся. В других случаях:

  • Используйте Журнал изменений (Excel 365): Файл → Сведения → Журнал изменений.
  • Восстановите предыдущую версию из Файл → Сведения → Управление книгой → Версии (если включено автосохранение в OneDrive).
  • Для Google Sheets: Файл → История версий.

Если ничего не помогает, проверьте корзину — иногда Excel создаёт временные файлы с расширением .tmp.