Как удалить всё кроме нужного в Excel: полное руководство с примерами

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

Эта статья не про банальное удаление строк через ПКМ → Удалить. Здесь вы найдёте 7 профессиональных методов, включая работу с фильтрами, Power Query, макросами и даже регулярными выражениями (для продвинутых пользователей). Мы разберём, как:

  • 🧹 Удалить все строки/столбцы, кроме выделенных (даже если они разбросаны по таблице)
  • 🔍 Очистить данные от непечатаемых символов (пробелы, табуляции, переносы)
  • 📊 Сохранить только уникальные значения или данные по условию (например, суммы > 1000)
  • 🖼️ Убрать всё форматирование, оставив только "голые" числа и текст

Все инструкции подходят для Excel 2010–2023 и Excel 365, а также для Google Таблиц (с учётом особенностей). Если вы работаете с .csv или данными из , SQL-баз — здесь тоже найдёте решения.

📊 Как часто вам приходится очищать данные в Excel?
Ежедневно
Раз в неделю
Редко, но метко
Никогда не делал этого

1. Удаление всех строк/столбцов кроме выделенных

Самая частая задача: в таблице 10 000 строк, а нужны только 200. Выделять их вручную и удалять остальные — не вариант. Вот 3 способа автоматизировать процесс:

Способ 1: Фильтрация + удаление (работает в любых версиях Excel):

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

Способ 2: Power Query (для Excel 2016+ и 365):

  • 📌 Перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  • 🔄 В редакторе Power Query примените фильтр к нужному столбцу.
  • 💾 Нажмите Закрыть и загрузить в..., выбрав опцию Новый лист.

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

Sub DeleteUnselectedRows()

Dim rng As Range, cell As Range

Set rng = Selection

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

If Not Intersect(rng.Rows(i), Selection) Is Nothing Then

rng.Rows(i).EntireRow.Delete

End If

Next i

End Sub

Чтобы использовать этот код, нажмите Alt+F11, вставьте его в модуль и запустите. Важно: перед запуском выделите именно те строки, которые нужно ОСТАВИТЬ — макрос удалит всё остальное.

2. Очистка данных от скрытых символов и лишних пробелов

Невидимые символы (неразрывные пробелы, табуляции, переносы строк) могут испортить сортировку, сводные таблицы и даже формулы. Например, ячейка выглядит пустой, но СЧЁТЗ показывает, что она непустая. Вот как это исправить:

Шаг 1: Удаление всех непечатаемых символов

  • 🔹 Замените табуляции: Ctrl+H → в поле "Найти" введите \t (для Google Sheets), в Excel используйте символ табуляции, нажав Ctrl+Tab в поле поиска.
  • 🔹 Уберите лишние пробелы: в поле "Найти" введите два пробела " ", в поле "Заменить на" — один " ". Повторяйте, пока замены не прекратятся.
  • 🔹 Для неразрывных пробелов (в Word они выглядят как °) используйте замену на обычный пробел.

Шаг 2: Функция СЖПРОБЕЛЫ (TRIM)

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

=СЖПРОБЕЛЫ(A1)

Затем скопируйте значения из вспомогательного столбца и вставьте их поверх оригинальных данных через Специальная вставка → Значения.

Шаг 3: Power Query для глубокой очистки

Если данных много, используйте Power Query:

  1. Загрузите данные в Power Query (Данные → Получить данные → Из таблицы).
  2. Выберите нужный столбец → Преобразовать → Формат → Очистить.
  3. Для удаления всех неалфавитных символов используйте Преобразовать → Заменить значения с регулярным выражением [^a-zA-Z0-9] (заменить на пустоту).
Что такое неразрывный пробел?

Это специальный символ (Unicode U+00A0), который предотвращает перенос слов на новую строку. В Excel он часто попадает при копировании данных из Word или веб-страниц. Его нельзя удалить стандартной функцией СЖПРОБЕЛЫ — только заменой или через Power Query.

3. Сохранение только уникальных значений

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

Метод 1: Удаление дубликатов встроенным инструментом

  • 📋 Выделите диапазон данных (включая заголовки).
  • 🔍 Перейдите на вкладку Данные → Удалить дубликаты.
  • 📌 Отметьте столбцы, по которым нужно искать дубли (например, Email или Номер телефона).

Метод 2: Формула для извлечения уникальных значений

Создайте динамический массив (в Excel 365) или используйте эту формулу:

=УНИК(A2:A100)

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

=ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(0; СЧЁТЕСЛИ($B$1:B1; $A$2:$A$100); 0))

Где $B$1 — ячейка над первой строкой с формулой.

Метод 3: Сводная таблица

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

☑️ Проверка на дубликаты

Выполнено: 0 / 4

4. Удаление всего форматирования, кроме данных

Цвет фона, шрифты, границы ячеек — всё это может мешать при экспорте данных в другие системы. Чтобы оставить только "голые" данные:

Способ 1: Очистка формата

  • 🎨 Выделите диапазон → Главная → Очистить → Очистить форматы.
  • 🔤 Для удаления всех стилей (включая условное форматирование): Главная → Редактирование → Очистить → Очистить всё (но это удалит и данные!).

Способ 2: Копирование через "Блокнот"

Если нужно удалить всё форматирование, включая слияние ячеек:

  1. Скопируйте данные в Excel (Ctrl+C).
  2. Вставьте их в Блокнот или Notepad++.
  3. Скопируйте обратно в Excel — останется только текст и числа.

Способ 3: Power Query для сложных случаев

Если данные импортированы из PDF или HTML и содержат лишние теги:

  1. Загрузите данные в Power Query.
  2. Выберите столбец → Преобразовать → Формат → Очистить.
  3. Для удаления HTML-тегов используйте замену по регулярному выражению <[^>]+>.

5. Удаление пустых строк и ячеек

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

Метод 1: Фильтр + удаление

  • 🔍 Примените фильтр к столбцу (Ctrl+Shift+L).
  • 📌 В выпадающем списке снимите галочку с (Пусто).
  • 🗑️ Выделите все строки с данными, скопируйте их в новый лист и удалите оригинальный диапазон.

Метод 2: Горячие клавиши

  1. Выделите диапазон → F5 → Специальная → Пустые ячейки → OK.
  2. Нажмите Ctrl+- (минус на цифровой клавиатуре) → выберите СтрокуOK.

Метод 3: Формула для поиска последней непустой строки

Если пустые строки в конце таблицы, используйте:

=СЧЁТЗ(A:A)

Эта формула вернёт номер последней непустой строки в столбце A. Затем можно удалить все строки ниже этого номера.

6. Удаление данных по условию (например, суммы < 1000)

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

Способ 1: Фильтр по условию

  • 📊 Примените фильтр к столбцу с суммами.
  • 🔢 В выпадающем списке выберите Числовые фильтры → Больше чем... и введите 1000.
  • 📋 Скопируйте отфильтрованные данные в новый лист.

Способ 2: Power Query с фильтрацией

  1. Загрузите данные в Power Query.
  2. Выберите столбец с суммами → Главная → Фильтр → Числовые фильтры → Больше....
  3. Введите значение 1000 и загрузите данные обратно.

Способ 3: Макрос для удаления строк по условию

Sub DeleteRowsByCondition()

Dim ws As Worksheet

Dim lastRow As Long, i As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' Предполагаем, что суммы в столбце B

For i = lastRow To 2 Step -1

If ws.Cells(i, "B").Value < 1000 Then

ws.Rows(i).Delete

End If

Next i

End Sub

7. Продвинутые методы: регулярные выражения и Power Query M

Для сложных задач (например, удаление всех строк, кроме тех, что содержат email или телефон) пригодятся:

Регулярные выражения в Power Query

Чтобы оставить только строки с email:

  1. Загрузите данные в Power Query.
  2. Добавьте пользовательский столбец с формулой:
= if Text.Contains([YourColumn], "@") then "Keep" else "Delete"
  1. Отфильтруйте по значению "Keep".

Удаление строк по шаблону в VBA

Пример кода для удаления строк, не содержащих слово "Утверждено":

Sub DeleteRowsNotContainingText()

Dim rng As Range, cell As Range

Dim searchText As String

searchText = "Утверждено"

Set rng = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)

For Each cell In rng

If InStr(1, cell.Value, searchText) = 0 Then

cell.EntireRow.Delete

End If

Next cell

End Sub

Power Query M для сложных фильтров

Пример кода для удаления всех строк, кроме тех, где в столбце Status значение "Active":

let

Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

FilteredRows = Table.SelectRows(Source, each ([Status] = "Active"))

in

FilteredRows

Сравнение методов: какой выбрать?

Задача Лучший метод Сложность Подходит для больших данных?
Удалить все строки кроме выделенных Фильтрация или макрос ⭐⭐ Да
Очистка от скрытых символов Power Query или СЖПРОБЕЛЫ + замена ⭐⭐⭐ Да
Оставить только уникальные значения Встроенное удаление дубликатов Да
Удалить пустые строки Фильтр + удаление или горячие клавиши Да
Удалить данные по условию (например, сумма > 1000) Power Query или фильтр ⭐⭐ Да

Для одноразовых задач подойдут простые методы (фильтры, СЖПРОБЕЛЫ). Если вам приходится очищать данные регулярно — осваивайте Power Query или VBA. Например, бухгалтеру, который ежемесячно получает выгрузки из с лишними данными, лучше один раз написать макрос, чем тратить часы на ручную очистку.

Что делать, если после очистки данные "съехали"?

Проверьте, не были ли в исходной таблице объединённые ячейки. Если да — перед очисткой разъедините их через Главная → Объединить и поместить в центре → Отменить объединение ячеек.

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

⚠️ Внимание: Никогда не удаляйте данные напрямую в оригинальном файле! Сначала создайте копию листа (ПКМ по листу → Переместить/скопировать) или сохраните файл под новым именем. В 30% случаев пользователи случайно удаляют нужные строки из-за неверно заданного фильтра.

Ошибка 1: Удаление заголовков

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

  • 📌 Зафиксируйте первую строку (Вид → Закрепить области → Закрепить верхнюю строку).
  • 🔍 В макросах начинайте цикл с i = 2, а не с i = 1.

Ошибка 2: Потеря данных при копировании

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

  • 🔍 Перед копированием отмените фильтр (Данные → Фильтр).
  • 📋 Используйте Специальная вставка → Значения, чтобы избежать переноса формул.
⚠️ Внимание: В Google Sheets функция УНИК может некорректно работать с диапазонами более 10 000 строк. Для больших данных используйте =QUERY(A:B; "SELECT A WHERE B > 1000"; 1).

Ошибка 3: Неучтённые скрытые символы

После очистки данные могут выглядеть корректно, но формулы вроде СЧЁТЕСЛИ или ПОИСКПОЗ работают неверно. Причина — невидимые символы. Проверьте их наличие так:

=ДЛСТР(A1)  ' Длина строки с учётом всех символов

=ЛЕН(СЖПРОБЕЛЫ(A1)) ' Длина после удаления пробелов

Если результаты различаются — в ячейке есть скрытые символы.

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

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

Да. Используйте этот макрос:

Sub DeleteAllSheetsExceptActive()

Dim ws As Worksheet

Application.DisplayAlerts = False

For Each ws In ThisWorkbook.Worksheets

If ws.Name <> ActiveSheet.Name Then

ws.Delete

End If

Next ws

Application.DisplayAlerts = True

End Sub

⚠️ Перед запуском сохраните книгу — макрос удаляет листы без подтверждения!

Как удалить все гиперссылки в Excel?

Выделите диапазон → ПКМ → Удалить гиперссылки. Для удаления всех ссылок в книге используйте макрос:

Sub DeleteAllHyperlinks()

Dim hl As Hyperlink

For Each hl In ActiveSheet.Hyperlinks

hl.Delete

Next hl

End Sub

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

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

  1. Выделите столбец с номерами.
  2. Нажмите F2 → Enter (чтобы обновить формулы).

Если номера введены вручную — придётся перенумеровать заново.

Как удалить все комментарии в файле?

Перейдите на вкладку Рецензирование → Удалить → Удалить все комментарии в документе. Для удаления комментариев только на текущем листе:

Sub DeleteSheetComments()

Dim cmnt As Comment

For Each cmnt In ActiveSheet.Comments

cmnt.Delete

Next cmnt

End Sub

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

В Excel отмена (Ctrl+Z) работает только для последнего действия. Если вы удалили строки и закрыли файл — данные потеряны. Решения:

  • 🔄 Восстановите предыдущую версию файла (Файл → Сведения → Управление книгой → Восстановить).
  • 💾 Проверьте автосохранённые версии в папке C:\Users\ИмяПользователя\AppData\Roaming\Microsoft\Excel\.

В Google Sheets история изменений сохраняется автоматически: Файл → История версий.