Удаление пустых строк в Excel через фильтр: 5 способов с примерами

Почему фильтр — самый быстрый способ очистить таблицу от пустых строк

Работа с большими таблицами в Microsoft Excel часто сталкивается с проблемой пустых строк — они мешают анализу данных, искажают результаты формул и портят внешний вид отчётов. Вручную удалять каждую пустую строку нереально, если их сотни, а то и тысячи. Здесь на помощь приходит фильтр — инструмент, который позволяет за считанные секунды отсеять ненужные данные и оставить только заполненные ячейки.

В отличие от ручного поиска или использования макросов, фильтрация не требует знания программирования и работает даже в старых версиях Excel (начиная с Excel 2007). Главное преимущество метода — сохранение структуры таблицы: вы не потеряете данные в соседних столбцах и не нарушите связи между ячейками. А если что-то пойдёт не так, всегда можно отменить действие клавишами Ctrl + Z.

Но есть нюансы. Например, фильтр не всегда корректно обрабатывает ячейки с формулами, которые возвращают пустое значение (""), или строки, где пустыми являются не все столбцы. В этой статье мы разберём не только базовый способ удаления пустых строк через фильтр, но и альтернативные методы для сложных случаев — от использования функции ФИЛЬТРExcel 365) до Power Query.

Подготовка таблицы: что нужно сделать перед фильтрацией

Прежде чем применять фильтр, убедитесь, что ваша таблица готова к обработке. Вот ключевые моменты:

  • 📌 Удалите объединённые ячейки. Фильтр не работает с объединёнными областями — Excel выдаст ошибку. Чтобы разъединить ячейки, выделите их и нажмите Главная → Объединить и поместить в центре (кнопка станет неактивной).
  • 📌 Проверьте скрытые символы. Иногда ячейка кажется пустой, но содержит пробелы, неразрывные пробелы (Char(160)) или символы табуляции. Используйте функцию =ПРОБЕЛЫ(A1)=A1, чтобы их выявить.
  • 📌 Преобразуйте диапазон в таблицу (опционально). Если вы работаете с Excel 2016+, преобразование в "умную таблицу" (Ctrl + T) упростит фильтрацию и добавит автоматические заголовки.

Особое внимание уделите первой строке — она должна содержать заголовки столбцов. Если заголовков нет, Excel будет фильтровать данные как первую строку, что приведёт к ошибкам. Чтобы добавить заголовки:

  1. Вставьте новую строку сверху (Главная → Вставить → Строку на лист выше).
  2. Заполните её названиями столбцов (например, "ФИО", "Дата", "Сумма").
  3. Выделите всю таблицу вместе с заголовками перед применением фильтра.

Способ 1: Удаление пустых строк через стандартный фильтр

Это самый простой метод, который работает во всех версиях Excel. Подходит для таблиц, где пустыми являются все ячейки в строке (хотя бы в одном столбце).

  1. Выделите диапазон с данными, включая заголовки. Например, если данные в столбцах A:D, выделите A1:D1000.
  2. Нажмите Данные → Фильтр (или Ctrl + Shift + L). В заголовках появятся стрелочки фильтра.
  3. Щёлкните по стрелочке в любом столбце и снимите галочку с "(Пустые)". Нажмите OK.
  4. Excel скрывает все строки, где в этом столбце нет данных. Остаются только заполненные.
  5. Выделите видимые строки (кроме заголовка!), кликните правой кнопкой и выберите Удалить строку.
  6. Снимите фильтр: Данные → Фильтр (или нажмите стрелочку в заголовке и выберите "Удалить фильтр").

Важно: если в строке хоть одна ячейка заполнена, фильтр её не скрывает. Например, если в столбце A пусто, но в B есть данные, строка останется видимой. Чтобы удалить строки, где пусты все столбцы, используйте метод с вспомогательным столбцом (раздел 4).

Выделен весь диапазон с данными|Заголовки столбцов есть и выделены|Фильтр применён ко всем столбцам|Пустые строки скрыты (проверьте скроллбар)|Выделены только видимые строки (кроме заголовка)-->

Действие Сочетание клавиш Примечание
Применить фильтр Ctrl + Shift + L Работает только если курсор внутри таблицы
Снять фильтр Alt + D + F + F Последовательность для старых версий Excel
Выделить видимые ячейки Alt + ; Полезно перед удалением строк
Удалить строки Ctrl + - Выберите "всю строку" в диалоговом окне

Раз в неделю|Раз в месяц|Только когда данные портит аналитику|Никогда не делал этого-->

Способ 2: Фильтрация по нескольким столбцам одновременно

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

Для этого:

  1. Примените фильтр ко всей таблице (Ctrl + Shift + L).
  2. В первом столбце (например, "Имя") снимите галочку с "(Пустые)".
  3. Не снимайте фильтр! Перейдите ко второму столбцу ("Фамилия") и там тоже снимите галочку с "(Пустые)".
  4. Excel покажет только строки, где оба столбца не пустые.
  5. Выделите видимые строки (Alt + ;), скопируйте их (Ctrl + C) и вставьте в новое место (Ctrl + V).

Этот метод не удаляет строки, а копирует только нужные данные, что безопаснее. После вставки вы можете удалить исходную таблицу.

⚠️ Внимание: Если в таблице есть формулы, которые ссылаются на другие листы или книги, копирование может нарушить ссылки. В таком случае используйте метод с вспомогательным столбцом (раздел 4) или Power Query (раздел 5).

Способ 3: Использование функции ФИЛЬТР (Excel 365 и 2021)

В новых версиях Excel появилась функция ФИЛЬТР, которая позволяет динамически отображать только нужные строки без ручного применения фильтра. Это идеальный вариант, если вам нужно сохранить исходные данные и работать с "чистой" выборкой.

Формула для удаления пустых строк:

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

Где:

  • A2:D100 — диапазон с данными (без заголовков);
  • (A2:A100<>"") — условие "столбец A не пустой";
  • Звёздочки (*) объединяют условия по логическому "И".

Результат — динамический массив, который автоматически обновляется при изменении исходных данных. Чтобы преобразовать его в обычный диапазон, выделите результат и нажмите Ctrl + C → Главная → Вставить → Значения.

Как работает логика в функции ФИЛЬТР?

В Excel логические выражения (A2:A100<>"") возвращают массивы ИСТИНА/ЛОЖЬ. При умножении (*) эти значения преобразуются в 1/0, а функция ФИЛЬТР воспринимает ненулевые значения как условие для включения строки в результат. Таким образом, строка попадёт в вывод только если все указанные столбцы не пустые.

Способ 4: Вспомогательный столбец для сложных случаев

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

  1. Добавьте новый столбец справа от таблицы (например, столбец E).
  2. В первую ячейку столбца (например, E2) введите формулу:
    =ЕПУСТО(A2)&ЕПУСТО(B2)&ЕПУСТО(C2)&ЕПУСТО(D2)

    Она вернёт ИСТИНА, если все ячейки строки пустые.

  3. Растяните формулу на весь столбец (двойной клик по маркеру автозаполнения).
  4. Примените фильтр к таблице и отфильтруйте вспомогательный столбец по значению ИСТИНА.
  5. Удалите отфильтрованные строки (они полностью пустые).
  6. Удалите вспомогательный столбец.

Для ускорения процесса можно использовать функцию СЧЁТЗ, которая считает количество непустых ячеек в строке:

=СЧЁТЗ(A2:D2)=0
⚠️ Внимание: Если в ячейках есть формулы, которые возвращают пустую строку (""), функция ЕПУСТО их не распознает как пустые. В этом случае замените ЕПУСТО на =A2="".

Способ 5: Power Query для больших таблиц (100 000+ строк)

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

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

  1. Выделите таблицу и нажмите Данные → Из таблицы/диапазона (в группе "Получить и преобразовать данные").
  2. В открывшемся окне Power Query выберите Главная → Удалить строки → Удалить пустые строки.
  3. Нажмите Главная → Закрыть и загрузить, чтобы вернуть данные в Excel.

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

  • 🚀 Обрабатывает миллионы строк без зависаний.
  • 🔄 Сохраняет связь с исходными данными — при их обновлении можно повторно загрузить очищенную таблицу.
  • 🛠️ Позволяет комбинировать с другими преобразованиями (например, разделить столбцы, заменить значения).

Если в Power Query строки не удаляются, проверьте:

  • 🔍 Наличие скрытых символов (используйте замену #(tab) на пустоту).
  • 🔍 Формат ячеек — иногда даты или числа отображаются как пустые из-за неверного формата.

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

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

Ошибка Причина Решение
Фильтр не скрывает пустые строки В ячейках есть пробелы или непечатаемые символы Используйте =ПРОБЕЛЫ(A1)="" для проверки
Удалены нужные строки Фильтр применён только к одному столбцу Проверьте все столбцы или используйте вспомогательный столбец
Excel зависает при фильтрации Слишком много данных (100 000+ строк) Используйте Power Query или разбейте таблицу на части
Формулы сломались после удаления строк Ссылки в формулах были относительными Замените на абсолютные ссылки ($A$1) или используйте имена диапазонов

Ещё одна типичная проблема — пустые строки появляются снова после сохранения файла. Это происходит, если:

  • 📥 Данные импортированы из внешнего источника (например, CSV) с разделителями строк.
  • 🖥️ В настройках Excel включена опция "Вставлять пустые ячейки при сортировке" (Файл → Параметры → Дополнительно).

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

Можно ли удалить пустые строки без фильтра?

Да, есть несколько альтернатив:

  • 🔍 Сортировка: Отсортируйте таблицу по любому столбцу — пустые строки окажутся внизу. Затем выделите и удалите их.
  • 📝 Найти и заменить: Нажмите Ctrl + G → Выделить → Пустые ячейки, затем удалите строки (Ctrl + -).
  • 🤖 Макрос VBA:
    Sub DeleteEmptyRows()
    

    Dim rng As Range, row As Range

    Set rng = Selection

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

    If WorksheetFunction.CountA(rng.Rows(i)) = 0 Then

    rng.Rows(i).Delete

    End If

    Next i

    End Sub

Однако фильтр остаётся самым безопасным методом, так как позволяет предварительно проверить, какие строки будут удалены.

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

Это происходит, если в формулах использовались относительные ссылки на удалённые ячейки. Например, формула =A2+B2 в строке 3 после удаления строки 2 преобразуется в =A2+B2, но теперь она ссылается на другие данные.

Решения:

  • 🔄 Используйте абсолютные ссылки ($A$2) или имена диапазонов.
  • 📊 Преобразуйте формулы в значения перед удалением строк (Копировать → Специальная вставка → Значения).
  • 🔧 Используйте функцию ЕСЛИОШИБКА, чтобы скрыть ошибки: =ЕСЛИОШИБКА(A2+B2;0).
Как удалить строки, где пустой только один конкретный столбец?

Если нужно удалить строки, где пуст, например, только столбец C (независимо от других столбцов):

  1. Примените фильтр к таблице.
  2. В столбце C снимите галочку с "(Пустые)".
  3. Выделите остальные строки (те, где столбец C не пустой) и скопируйте их в новое место.
  4. Удалите исходную таблицу.

Или используйте вспомогательный столбец с формулой =C2="" и отфильтруйте по ИСТИНА.

Работает ли этот метод в Google Таблицах?

Да, в Google Sheets алгоритм аналогичный:

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

Отличие от Excel: в Google Таблицах нельзя удалить строки напрямую через фильтр — только копированием.

Как автоматизировать удаление пустых строк при каждом открытии файла?

Для автоматизации подходит макрос VBA. Добавьте этот код в модуль ThisWorkbook:

Private Sub Workbook_Open()

Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets("Лист1") ' Замените на имя вашего листа

Dim lastRow As Long

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

For i = lastRow To 1 Step -1

If WorksheetFunction.CountA(ws.Rows(i)) = 0 Then

ws.Rows(i).Delete

End If

Next i

End Sub

Теперь при каждом открытии файла пустые строки будут удаляться автоматически. Внимание: этот код удаляет строки без подтверждения!