Как в Excel оставить только заполненные ячейки: удаляем пустоты за 5 минут

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

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

Особое внимание уделим сохранению целостности данных: научимся удалять пустоты без потери важной информации и без нарушения связей между ячейками. Все инструкции сопровождаются скриншотами (в текстовом формате) и пошаговыми алгоритмами, которые сработают в Excel 2010–2021 и Microsoft 365.

1. Самый быстрый способ: фильтрация и удаление пустых строк

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

Алгоритм работает по принципу "отсеивания": сначала выделяются все пустые строки, затем они удаляются за один клик. Этот способ идеален для таблиц до 10 000 строк — с большими объёмами Excel может подвисать.

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

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

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

Проверьте наличие формул с пустыми результатами

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

Выделите весь диапазон данных, включая заголовки-->

2. Использование функции "Удалить дубликаты" для чистки данных

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

Преимущество способа: он сохраняет уникальные непустые строки, даже если они повторяются по содержимому. Например, если у вас в столбце A есть пустые ячейки, а в B и C — данные, строка не будет удалена.

  • 📊 Выделите диапазон с заголовками (например, A1:C100).
  • 🔄 Перейдите на вкладку ДанныеУдалить дубликаты.
  • 🎯 В открывшемся окне снимите все галочки, кроме тех столбцов, где нужно удалить пустоты (например, оставьте только Столбец A).
  • 🗑️ Нажмите OKExcel удалит все строки, где в выбранном столбце пусто.

💡 Полезный совет: Если вам нужно удалить строки, где все ячейки пустые, выделите весь диапазон и оставьте галочки на всех столбцах в окне Удалить дубликаты. Excel интерпретирует полностью пустую строку как дубликат и удалит её.

Фильтрация

Удаление дубликатов

Сортировка

VBA-макросы

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

3. Сортировка как инструмент для группировки пустот

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

Важно: перед сортировкой добавьте вспомогательный столбец с номерами строк (например, пронумеруйте строки от 1 до N в столбце A). Это поможет восстановить исходный порядок данных после очистки.

  • 📌 Добавьте слева от таблицы новый столбец и пронумеруйте строки (например, в A1 введите 1, в A22, затем протяните маркер автозаполнения вниз).
  • 🔄 Выделите весь диапазон (включая вспомогательный столбец) и отсортируйте его по столбцу, где больше всего пустот. Для этого: ДанныеСортировка → выберите столбец → Настраиваемая сортировкаПустые ячейки вверху.
  • ✂️ После сортировки все пустые строки окажутся в начале или конце таблицы. Выделите их и удалите (ПКМУдалить).
  • 🔙 Верните исходный порядок, отсортировав данные по вспомогательному столбцу с номерами.

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

Метод Скорость Подходит для Сохраняет порядок данных Работает с формулами
Фильтрация ⭐⭐⭐⭐⭐ Таблицы до 10 000 строк Да (при правильном использовании) Нет (удаляет строки с формулами, возвращающими "")
Удаление дубликатов ⭐⭐⭐⭐ Таблицы с пустотами в отдельных столбцах Нет Да
Сортировка ⭐⭐⭐ Неструктурированные данные Да (с вспомогательным столбцом) Да

4. Продвинутый метод: Power Query для сложных таблиц

Если вы работаете с очень большими таблицами (100 000+ строк) или данными из внешних источников (например, CSV, SQL), лучший выбор — инструмент Power Query (доступен в Excel 2016 и новее). Он позволяет автоматизировать очистку и сохранять шаги для повторного использования.

Power Query не удаляет данные напрямую — он создаёт новую таблицу без пустот, сохраняя исходный файл нетронутым. Это идеально для работы с важными данными, где нельзя рисковать потерять информацию.

  • 📥 Выделите вашу таблицу и перейдите на вкладку ДанныеИз таблицы/диапазонаExcel 2016–2019) или Получить данныеИз таблицы/диапазонаExcel 365).
  • 🔧 В открывшемся редакторе Power Query выберите столбец, где нужно удалить пустоты.
  • 🗑️ Нажмите на стрелку в заголовке столбца → снимите галочку с (пусто)OK.
  • 💾 Нажмите Закрыть и загрузить → выберите Новый лист или Таблица.

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

Как автоматизировать очистку в Power Query?

Создайте запрос один раз, затем сохраните его как шаблон. При следующем импорте данных просто обновите запрос через Данные → Обновить все. Power Query применит все предыдущие шаги очистки автоматически, включая удаление пустот.

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

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

Предупреждение: перед запуском макроса обязательно сохраните файл — ошибка в коде может привести к потере данных.

Sub DeleteEmptyRows()

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

Dim isEmpty As Boolean

Dim lastRow As Long, i As Long

' Определяем диапазон данных (меняйте "A1" на вашу первую ячейку)

Set rng = Range("A1").CurrentRegion

lastRow = rng.Rows.Count

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

For i = lastRow To 1 Step -1

isEmpty = True

For Each cell In rng.Rows(i).Cells

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

End Sub

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

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

⚠️ Внимание: Макрос удаляет строки, где все ячейки пустые, включая те, что содержат формулы с пустым результатом (например, =ЕСЛИ(A1=0;"";"Текст")). Если нужно сохранить такие строки, модифицируйте условие в коде: добавьте проверку If Not IsEmpty(cell) And cell.Value <> "" And Not cell.HasFormula Then.

6. Альтернативные методы: специальная вставка и функции

Если стандартные способы не подходят (например, из-за особенностей структуры таблицы), попробуйте эти альтернативные приёмы:

Метод 1: Замена пустот на значение и последующая фильтрация

  • 🔍 Выделите диапазон → Ctrl + H (замена).
  • 📝 В поле Найти оставьте пустым, в Заменить на введите уникальный символ (например, #ПУСТО#).
  • 🔄 Нажмите Заменить все, затем отфильтруйте таблицу по этому символу и удалите строки.

Метод 2: Использование функции СЧЁТЗ для выделения непустых строк

Добавьте вспомогательный столбец с формулой:

=СЧЁТЗ(B2:D2)

Где B2:D2 — диапазон ячеек в строке. Формула вернёт 0 для полностью пустых строк. Затем отфильтруйте по этому столбцу и удалите строки с 0.

Метод 3: Экспорт в CSV и импорт обратно

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

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

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

  • 🚫 Потеря данных при удалении строк с формулами: Перед очисткой преобразуйте формулы в значения (КопироватьСпециальная вставкаЗначения).
  • 🔗 Нарушение ссылок в формулах: Если после удаления строк формулы возвращают #ССЫЛКА!, используйте Power Query или VBA — они сохраняют целостность ссылок.
  • 📊 Искажение графиков и сводных таблиц: Обновите источники данных после очистки (ПКМ на графике → Выбрать данные).
  • 🔍 Невидимые символы в "пустых" ячейках: Иногда ячейки кажутся пустыми, но содержат пробелы или неразрывные пробелы. Используйте функцию =ПРОБЕЛЫ(A1)="" для проверки.
  • 🔄 Зацикливание макроса: Если VBA-код работает слишком долго, добавьте в начало макроса строку Application.ScreenUpdating = False для ускорения.

💡 Полезный совет: Перед любой очисткой создайте резервную копию файла (например, сохраните как Имя_файла_бэкап.xlsx). Это займёт секунды, но спасёт часы работы в случае ошибки.

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

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

Да, но не все методы сохраняют форматирование. Фильтрация и сортировка сохраняют стили ячеек, а Power Query и VBA — нет (они создают новые данные). Чтобы сохранить формат, используйте специальную вставку после очистки: скопируйте исходные ячейки с форматированием и вставьте их на очищенную таблицу через Специальная вставкаФорматы.

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

Алгоритм аналогичный, но работаем со столбцами:

  1. Выделите всю таблицу.
  2. Добавьте сверху вспомогательную строку с формулой =СЧЁТЗ(A2:A100) (где A2:A100 — диапазон столбца).
  3. Отфильтруйте вспомогательную строку по значению 0 — это пустые столбцы.
  4. Удалите отфильтрованные столбцы.

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

Это происходит потому, что автонумерация (например, в столбце A с формулой =СТРОКА()-1) привязана к физическому положению строк. Решения:

  • Перед очисткой преобразуйте формулы нумерации в статические значения.
  • Используйте Power Query — он сохраняет порядок данных.
  • После очистки заново пронумеруйте строки вручную.

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

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

  1. Перейдите на вкладку РецензированиеСнять защиту листа.
  2. Если запрашивается пароль, введите его (по умолчанию пароля может не быть — просто нажмите OK).
  3. После очистки снова включите защиту через Защитить лист.

⚠️ Если вы не знаете пароль, удалить пустоты без снятия защиты невозможно.

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

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

Private Sub Workbook_Open()

Call DeleteEmptyRows ' Вызов макроса из предыдущего раздела

End Sub

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