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

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

Работа с таблицами в Microsoft Excel или Google Sheets часто осложняется наличием пустых строк — они появляются при импорте данных из других источников, копировании с веб-страниц или после неаккуратного редактирования. Эти "невидимые враги" искажают результаты сортировки, мешают построению графиков и сбивают формулы типа СУММ() или СЧЁТЗ(). Например, если вы рассчитываете среднее значение по столбцу, пустые ячейки будут восприняты как нули, что исказит итоговый результат.

Обнаружить пустые строки просто: прокрутите таблицу или используйте сочетание клавиш Ctrl + → (стрелочка вправо) — курсор остановится на последней заполненной ячейке в строке. Если между первой и последней записью есть разрывы, значит, в данных присутствуют пустые строки. В больших таблицах (от 10 000 строк) лучше воспользоваться условным форматированием: выделите диапазон и примените правило "Форматировать только ячейки, которые содержат" → "пустые значения" с заливкой ярким цветом.

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

Способ 1: Ручное удаление (для маленьких таблиц до 100 строк)

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

  1. Выделите строку, которую хотите проверить (кликните по её номеру слева).
  2. Посмотрите на содержимое ячеек: если все они пустые (без пробелов, формул или скрытых символов), строку можно удалять.
  3. Кликните правой кнопкой мыши по номеру строки и выберите Удалить.

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

Выделить строку по номеру слева

Проверить все ячейки на наличие скрытых символов (клавиша F2)

Удалить строку через контекстное меню

Повторить для всех пустых строк-->

Для ускорения процесса можно использовать горячие клавиши:

  • 🔹 Shift + Пробел — выделить всю строку.
  • 🔹 Ctrl + - (минус) — открыть меню удаления.
  • 🔹 Alt + H → D → R — последовательность для удаления строки (в английской версии Excel).

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

Фильтрация — это самый надёжный способ удалить пустые строки в таблицах любого размера, включая файлы с десятками тысяч записей. Метод работает во всех версиях Excel (2010, 2013, 2016, 2019, 365) и Google Sheets, не требует знания формул и сохраняет исходное форматирование данных.

Инструкция по шагам:

  1. Выделите заголовок таблицы (первую строку с названиями столбцов).
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl + Shift + L).
  3. Раскройте выпадающий список в любом столбце и снимите галочку с пункта (Пустые).
  4. Excel скрывает все строки, где в этом столбце нет данных. Скопируйте видимые строки (Ctrl + C) и вставьте их на новый лист (Ctrl + V).
  5. Удалите исходную таблицу и переименуйте новый лист.

Критичный нюанс: если в таблице есть столбцы, где пустые ячейки — это норма (например, необязательные поля типа "Комментарий"), фильтруйтесь по столбцу, который гарантированно не должен содержать пустот (например, "ID", "Дата" или "Наименование").

Ручное удаление

Фильтр

Формулы (СМЕЩ, ИНДЕКС и др.)

Макросы/VBA

Не удаляю, работаю с пустыми строками-->

Метод Скорость Сложность Подходит для больших таблиц Сохраняет форматирование
Ручное удаление ⭐ (медленно) ⭐ (просто) ❌ Нет ✅ Да
Фильтр ⭐⭐⭐⭐ (быстро) ⭐⭐ (средне) ✅ Да ✅ Да
Формулы (СМЕЩ+ПОИСКПОЗ) ⭐⭐⭐ (средне) ⭐⭐⭐⭐ (сложно) ✅ Да ❌ Нет (только значения)
Макросы/VBA ⭐⭐⭐⭐⭐ (мгновенно) ⭐⭐⭐⭐⭐ (очень сложно) ✅ Да ✅ Да

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

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

Вариант 1: Функция ФИЛЬТР (Excel 365 и 2021)

Самый современный способ — использовать динамическую функцию ФИЛЬТР:

=ФИЛЬТР(диапазон; (столбец1<>"")(столбец2<>"")

Пример для таблицы A1:D100, где пустые строки определяются по столбцу A:

=ФИЛЬТР(A2:D100; A2:A100<>"")

Вариант 2: Классические формулы (СМЕЩ + ПОИСКПОЗ)

Для старых версий Excel подойдёт комбинация СМЕЩ и ПОИСКПОЗ:

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$D$100; МАЛЬЧ(ЕСЛИ(($A$2:$A$100<>"")*(СТРОКА($A$2:$A$100)-1); СТРОКА($A$2:$A$100)-1)); СТОЛБЕЦ(A1)); ""); "")

Эта формула массива вернёт только непустые строки. Важно: вводите её как формулу массива (Ctrl + Shift + Enter в Excel 2019 и старше).

Способ 4: Макросы VBA для автоматизации (для продвинутых пользователей)

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

Sub DeleteEmptyRows()

Dim rng As Range, row As Range

Dim lastRow As Long, i As Long

Dim isEmpty As Boolean

' Определяем последнюю строку с данными

lastRow = Cells(Rows.Count, 1).End(xlUp).Row

' Проходим по строкам снизу вверх (чтобы не сбивались номера строк)

For i = lastRow To 1 Step -1

isEmpty = True

' Проверяем каждую ячейку в строке

For Each cell In Cells(i, 1).EntireRow

If Not IsEmpty(cell) And cell.Value <> "" Then

isEmpty = False

Exit For

End If

Next cell

' Удаляем строку, если она пустая

If isEmpty Then

Rows(i).Delete

End If

Next i

End Sub

Чтобы использовать этот макрос:

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

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

  • 🔹 Работает с любым количеством строк (тестировано на 1 млн+ записей).
  • 🔹 Учитывает не только полностью пустые строки, но и строки с формулами, возвращающими "".
  • 🔹 Сохраняет форматирование и условные форматы.
Как модифицировать макрос для конкретного диапазона?

Чтобы макрос работал не со всем листом, а с определённым диапазоном (например, A2:Z1000), замените строку с lastRow на:

Set rng = Range("A2:Z1000")

lastRow = rng.Rows.Count

И измените цикл на:

For i = lastRow To 1 Step -1

isEmpty = True

For Each cell In rng.Rows(i)

If Not IsEmpty(cell) And cell.Value <> "" Then

isEmpty = False

Exit For

End If

Next cell

If isEmpty Then

rng.Rows(i).Delete

End If

Next i

Способ 5: Power Query (для Excel 2016 и новее)

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

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

  1. Выделите вашу таблицу и перейдите на вкладку ДанныеИз таблицы/диапазона (или Get Data → From Table/Range).
  2. В открывшемся редакторе Power Query выделите столбец, по которому будете определять пустые строки (лучше выбрать столбец без пропусков, например, с ID).
  3. Нажмите на стрелку в заголовке столбца → Удалить пустые (Remove Empty).
  4. Повторите шаг 3 для других столбцов, если нужно.
  5. Нажмите Закрыть и загрузить (Close & Load), чтобы вернуть очищенные данные в Excel.

Почему Power Query лучше макросов?

  • 🔹 Не требует знания VBA.
  • 🔹 Все изменения фиксируются и могут быть отменены.
  • 🔹 Автоматически обновляет данные при изменении источника.

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

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

⚠️ Внимание: Если после удаления строки формулы в таблице возвращают ошибку #ССЫЛКА!, значит, вы удалили строку, на которую ссылались другие ячейки. Используйте Поиск ошибок (вкладка Формулы) для исправления.

Ошибка 1: Удалены не все пустые строки

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

  • 🔹 Используйте функцию СЖПРОБЕЛЫ() для очистки данных перед удалением.
  • 🔹 Замените все пробелы на пустоту: Ctrl + H → найти " " (пробел), заменить на ничего.

Ошибка 2: Удалены нужные строки

Причина: фильтрация или макрос удалил строки, где хотя бы одна ячейка была пустой (например, необязательное поле "Примечание"). Решение:

  • 🔹 Фильтруйтесь по столбцу, который обязательно должен быть заполнен (например, "ID клиента").
  • 🔹 Перед удалением сделайте резервную копию данных (Ctrl + AКопировать → вставить на новый лист).

Ошибка 3: После удаления сбилась нумерация строк

Причина: в таблице использовались абсолютные ссылки на номера строк (например, =A5). Решение:

  • 🔹 Замените абсолютные ссылки на относительные (например, =A2 вместо =A5).
  • 🔹 Используйте именованные диапазоны или таблицы Excel (Ctrl + T).

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

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

Да, в Google Sheets алгоритм такой же, как в Excel:

  1. Выделите данные → Данные → Создать фильтр.
  2. В выпадающем списке любого столбца снимите галочку с (Пустые).
  3. Скопируйте видимые строки на новый лист.

Также можно использовать формулу =FILTER(A2:D100; NOT(ISBLANK(A2:A100))).

Почему после удаления строки формулы показывают #ССЫЛКА!?

Это происходит, если формулы ссылались на ячейки удалённых строк. Например, если в ячейке B10 была формула =A5, а строку 5 удалили, Excel не может найти источник данных. Решения:

  • Используйте Поиск и замену (Ctrl + H) для обновления ссылок.
  • Замените абсолютные ссылки (например, $A$5) на относительные (A2).
  • Восстановите удалённые строки из резервной копии и исправьте формулы.
Как удалить строки, где пуста только одна ячейка (а не вся строка)?

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

  1. Примените фильтр к таблице (Ctrl + Shift + L).
  2. В выпадающем списке нужного столбца выберите (Пустые).
  3. Удалите отфильтрованные строки.

Для автоматического удаления подойдёт макрос:

Sub DeleteRowsWithEmptyCell()

Dim rng As Range, cell As Range

Dim colNum As Integer ' Номер столбца для проверки (например, 3 для столбца C)

colNum = 3 ' Измените на нужный номер

For i = Cells(Rows.Count, colNum).End(xlUp).Row To 1 Step -1

If IsEmpty(Cells(i, colNum)) Then

Rows(i).Delete

End If

Next i

End Sub

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

Да, но только если вы не сохраняли файл после удаления. Используйте:

  • Ctrl + Z — отмена последнего действия (работает до закрытия файла).
  • Вкладка Файл → Сведения → Управление книгой → Восстановить несохранённую книгу (если Excel сохранил автокопию).

Если файл уже сохранён, попробуйте восстановить предыдущую версию через Файл → Сведения → История версий (доступно в OneDrive/SharePoint).

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

Если лист защищён паролем, сначала снимите защиту:

  1. Рецензирование → Снять защиту листа.
  2. Введите пароль (если он установлен).
  3. Удалите пустые строки любым из описанных методов.
  4. Верните защиту: Рецензирование → Защитить лист.

Если вы не знаете пароль, воспользуйтесь VBA-скриптом для его сброса (требуются права администратора).