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

Пустые строки в таблицах Microsoft Excel — как сорняки на грядке: кажутся безобидными, пока не заглушат полезные данные. Они портят сортировку, сбивают формулы ВПР и ИНДЕКС-ПОИСКПОЗ, увеличивают размер файла и делают таблицу визуально хаотичной. Вручную удалять их по одной — всё равно что выпалывать сорняки пинцетом: долго, неэффективно и быстро надоедает.

К счастью, в Excel есть минимум 5 способов избавиться от пустых строк разом — от элементарных (под силу новичку) до продвинутых (для работы с миллионами ячеек). В этой статье разберём каждый метод с пошаговыми скриншотами, предупреждениями о подводных камнях и лайфхаками для ускорения процесса. А ещё вы узнаете, почему иногда удалять пустые строки категорически нельзя — и как это проверить за 10 секунд.

Спойлер: самый быстрый способ (3 клика) скрыт в разделе про фильтры, а самый надёжный (работает даже с повреждёнными файлами) — в блоке про Power Query. Если вам нужно очистить таблицу прямо сейчас — начинайте с раздела «Метод 1». Если важна безопасность данных — читайте про проверку зависимостей перед удалением.

1. Удаление пустых строк через фильтр (самый быстрый способ)

Этот метод не требует знания формул или макросов — только умения включать фильтр. Подходит для таблиц до 100 000 строкExcel 2019+ ограничение повышено до 1 048 576 строк).

Алгоритм прост:

  1. Выделите диапазон с данными (включая заголовки). Если таблица большая, нажмите Ctrl + A дважды.
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl + Shift + L).
  3. Откройте выпадающий список в любом столбце и снимите галочку с пункта (Пустые).
  4. Выделите все отфильтрованные строки (они будут подсвечены), кликните правой кнопкой и выберите Удалить строки с листа.

⚠️ Внимание: Если в таблице есть объединённые ячейки, фильтр может работать некорректно. В этом случае используйте метод с поиском и заменой (раздел 3).

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

  • 🔹 Не требует формул или скриптов
  • 🔹 Сохраняет форматирование ячеек
  • 🔹 Работает в Excel Online и мобильной версии

Недостатки:

  • 🚫 Не удаляет строки, где пуста только одна ячейка (если в строке есть хоть одно значение, она останется)
  • 🚫 Может сломать ссылки в формулах типа СМЕЩ или ДВССЫЛ

Выделить весь диапазон данных (включая заголовки)|

Проверить наличие объединённых ячеек|

Убедиться, что в таблице нет скрытых строк|

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

2. Удаление пустых строк с помощью сортировки (для частично заполненных строк)

Если в строке есть хотя бы одна заполненная ячейка, фильтр её не удалит. Здесь поможет сортировка по столбцу с максимальным количеством пустых ячеек. Метод работает в Excel 2007–2023 и не требует установки надстроек.

Инструкция:

  1. Добавьте справа от таблицы вспомогательный столбец с формулой:
    =СЧЁТЗ(|диапазон_строки|)

    Например, для строки A2:D2 формула будет =СЧЁТЗ(A2:D2). Растяните её на все строки.

  2. Выделите всю таблицу (включая вспомогательный столбец) и отсортируйте по этому столбцу по возрастанию.
  3. Удалите строки, где во вспомогательном столбце стоит 0 (это полностью пустые строки).
  4. Удалите вспомогательный столбец.

💡 Полезный совет: Если в таблице есть формулы, а не только значения, используйте функцию =ЕПУСТО() вместо СЧЁТЗ, чтобы избежать ошибок.

Метод Скорость Сложность Подходит для больших таблиц Сохраняет формулы
Фильтр ⚡ Мгновенно ⭐⭐☆ Да (до 1 млн строк) Да
Сортировка 🐢 1–2 минуты ⭐⭐⭐ Да Да (если использовать ЕПУСТО)
Поиск и замена ⚡⚡ Быстро ⭐☆☆ Нет (риск ошибок) Нет

⚠️ Внимание: Если в таблице есть условное форматирование, сортировка может сбить его правила. Перед использованием этого метода проверьте настройки форматирования на вкладке ГлавнаяУсловное форматированиеУправление правилами.

Фильтр|

Сортировка с вспомогательным столбцом|

Поиск и замена|

Mакросы/VBA|

Power Query|

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

3. Поиск и замена: удаление строк с пустыми ячейками в одном столбце

Этот способ подходит, если пустые строки определяются по одному ключевому столбцу (например, по столбцу с ID или названиями). Метод рискованный, но крайне быстрый — занимает менее 10 секунд.

Как сделать:

  1. Выделите столбец, по которому будете определять пустые строки (например, столбец A с ID).
  2. Нажмите Ctrl + F, перейдите на вкладку Заменить.
  3. В поле Найти оставьте пустым, в поле Заменить на введите любой символ (например, #).
  4. Нажмите Заменить всё — все пустые ячейки в выделенном столбце заполнятся символом #.
  5. Отфильтруйте таблицу по этому столбцу, выделите строки с # и удалите их.
  6. Вернитесь к замене и удалите символ # (замените его на пустоту).

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

Когда использовать этот способ:

  • 📌 Таблица небольшая (до 10 000 строк)
  • 📌 Пустые строки определяются по одному столбцу
  • 📌 В таблице нет формул, зависящих от пустых ячеек

4. Удаление пустых строк с помощью VBA (для продвинутых пользователей)

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

Скопируйте этот код в редактор VBA (Alt + F11):

Sub DeleteEmptyRows()

Dim rng As Range, row 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

Как запустить:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (InsertModule).
  3. Закройте редактор и вернитесь в Excel.
  4. Нажмите Alt + F8, выберите макрос DeleteEmptyRows и нажмите Выполнить.

⚠️ Внимание: Макрос удалит все строки, где нет ни одного значения, включая строки с формулами, возвращающими пустоту (например, =ЕСЛИОШИБКА(...)). Чтобы этого избежать, модифицируйте код:

If WorksheetFunction.CountA(row) = 0 And _

WorksheetFunction.CountIf(row, "") = row.Columns.Count Then

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

  • ⚡ Мгновенная обработка миллионов строк
  • 🔄 Можно запускать по расписанию (через Application.OnTime)
  • 🛠 Поддерживает сложные условия (например, удалять строки, где пусты только определённые столбцы)
Как модифицировать макрос для удаления строк с пустыми ячейками в конкретных столбцах?

Чтобы удалять строки, где пусты только столбцы A и C, замените условие на:

If IsEmpty(row.Columns(1)) And IsEmpty(row.Columns(3)) Then

Где Columns(1) — столбец A, Columns(3) — столбец C.

5. Power Query: безопасное удаление пустых строк без риска для данных

Power Query (или Get & Transform в Excel 2016+) — это самый надёжный способ очистки данных. Он не затрагивает исходную таблицу, позволяет отменить изменения и работает даже с повреждёнными файлами.

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

  1. Выделите таблицу и перейдите на вкладку ДанныеИз таблицы/диапазона (или Get DataFrom Table/Range).
  2. В открывшемся редакторе Power Query выделите столбец, по которому будете определять пустые строки.
  3. Нажмите на стрелочку в заголовке столбца → ФильтрыНе пустые (или Does Not Equal → оставьте поле пустым).
  4. Нажмите Закрыть и загрузитьЗакрыть и загрузить в... и выберите Новый лист.

🔹 Почему этот метод лучше остальных?

  • 🔄 Не портит исходные данные — создаёт копию
  • 🔍 Позволяет предварительно просмотреть, какие строки будут удалены
  • 📊 Работает с данными из SQL, CSV, JSON и других источников
  • 🔄 Можно создать шаблон очистки и применять его к новым файлам

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

6. Когда удалять пустые строки нельзя (и что делать вместо этого)

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

1. Таблица связана с внешними данными

  • Если ваш Excel-файл подключён к SQL-базе, Power BI или другому источнику, пустые строки могут быть заполнителями для будущих данных. Их удаление нарушит синхронизацию.
  • 🔹 Решение: Скрывайте строки вместо удаления (ПравкаСкрыть).

2. В таблице используются формулы массива или динамические диапазоны

  • Формулы типа СМЕЩ, ИНДЕКС или ДВССЫЛ часто зависят от фиксированного количества строк. Удаление пустых строк сдвинет диапазоны и сломает расчёты.
  • 🔹 Решение: Замените пустые ячейки на N/A или 0 с помощью функции =ЕСЛИ(ЕПУСТО(A1);"N/A";A1).

3. Файл используется для импорта в другие системы

  • Некоторые программы (например, или SAP) требуют строгой структуры таблицы, включая пустые строки как разделители блоков данных.
  • 🔹 Решение: Создайте копию файла и очищайте её, оставляя оригинал нетронутым.

💡 Как проверить, можно ли удалять пустые строки?

  1. Нажмите Ctrl + [` (гравис), чтобы увидеть все зависимости между ячейками.
  2. Если от пустых строк идут стрелки к другим ячейкам — их удалять нельзя.
  3. Проверьте вкладку ФормулыЗависимости формулВлияющие ячейки.

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

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

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

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

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

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

В сводных таблицах пустые строки появляются из-за пустых значений в исходных данных. Решения:

  1. Очистите исходные данные (удалите пустые строки там).
  2. Настройте сводную таблицу: кликните правой кнопкой по строке → Параметры поля значений → снимите галочку с Показывать элементы без данных.

Можно ли автоматически удалять пустые строки при открытии файла?

Да, с помощью макроса Auto_Open. Добавьте этот код в модуль ThisWorkbook:

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.Activate

Call DeleteEmptyRows ' вызов макроса из раздела 4

Next ws

End Sub

⚠️ Предупреждение: Автоматические макросы могут замедлить открытие файла и вызывать ошибки при совместном редактировании.

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

В Google Таблицах алгоритм похож на Excel, но есть нюансы:

  1. Используйте фильтр: ДанныеСоздать фильтр → снимите галочку с (Пустые).
  2. Для автоматического удаления используйте скрипт:
    function deleteEmptyRows() {
    

    var sheet = SpreadsheetApp.getActiveSheet();

    var maxRows = sheet.getMaxRows();

    var lastRow = sheet.getLastRow();

    sheet.deleteRows(lastRow + 1, maxRows - lastRow);

    }

⚠️ В Google Sheets нет Power Query, но есть аналогичная надстройка Power Tools.