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

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

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

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

Метод подходит для таблиц с заголовками и без формул. Его преимущество — визуальный контроль перед удалением. Алгоритм работает во всех версиях Excel, включая Excel Online и мобильную версию (с ограничениями).

Шаги:

  • 📌 Выделите любую ячейку в таблице (например, A1)
  • 🔍 Нажмите Ctrl+Shift+L или перейдите на вкладку Данные → Фильтр
  • 📝 В выпадающем списке столбца, где нужно искать слово, выберите Текстовые фильтры → Содержит...
  • 🔑 Введите искомое слово (например, "устарело") и нажмите ОК
  • 🗑️ Выделите все отфильтрованные строки (кроме заголовка!), кликните правой кнопкой → Удалить строку
  • 🔄 Снимите фильтр через Данные → Фильтр или Ctrl+Shift+L

Выделите диапазон данных (включая заголовки)|Проверьте, нет ли скрытых строк (Главная → Формат → Скрыть/отобразить)|Сохраните резервную копию файла (F12)|Убедитесь, что в фильтруемом столбце нет объединённых ячеек-->

⚠️ Внимание: Если в таблице есть объединённые ячейки, фильтр может работать некорректно. Разъедините их заранее через Главная → Объединить и поместить в центре. Также помните, что фильтр учитывает регистр: "Отказ" и "отказ" будут восприниматься как разные слова.

2. Использование функции ПОИСК для выборочного удаления

Когда нужно удалить строки по частичному совпадению (например, все ячейки, содержащие "error" в любом месте текста), поможет комбинация функций ПОИСК и ФИЛЬТР. Этот метод безопаснее макросов и работает в Excel 2016 и новее.

Инструкция:

  1. Добавьте вспомогательный столбец справа от таблицы (например, Z).
  2. В первую ячейку столбца (Z2) введите формулу:
    =ЕСЛИ(ЕЧИСЛО(ПОИСК("слово";A2));"Удалить";"Оставить")

    Замените "слово" на искомый термин, а A2 — на первую ячейку проверяемого столбца.

  3. Растяните формулу на все строки (двойной клик по маркеру автозаполнения).
  4. Отфильтруйте таблицу по вспомогательному столбцу, оставив только строки с "Удалить".
  5. Удалите отфильтрованные строки и удалите вспомогательный столбец.
Функция Назначение Пример
ПОИСК Ищет подстроку в тексте, возвращает позицию или ошибку =ПОИСК("отк";A2) → вернёт 3, если в A2 слово "отказ"
ЕЧИСЛО Проверяет, является ли результат числом (т.е. подстрока найдена) =ЕЧИСЛО(ПОИСК(...))ИСТИНА/ЛОЖЬ
ФИЛЬТР Динамически отображает строки по условию (только Excel 365) =ФИЛЬТР(A2:B100;(ПОИСК(...))=0)

💡 Полезный совет: Чтобы искать без учёта регистра, используйте функцию НАЙТИ вместо ПОИСК, но учтите, что НАЙТИ чувствительна к регистру. Для обратной логики (удалить строки, не содержащие слово) измените формулу на:

=ЕСЛИ(ЕОШ(ПОИСК("слово";A2));"Удалить";"Оставить")

3. Удаление строк с помощью Power Query (для больших таблиц)

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

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

  • 📊 Выделите таблицу и нажмите Данные → Из таблицы/диапазона (или Получить данные → Из других источников → Из таблицы/диапазона в Excel 2016).
  • 🔄 В открывшемся редакторе Power Query выберите столбец для фильтрации.
  • 🔍 Нажмите на стрелку фильтра → Текстовые фильтры → Не содержит... и введите слово.
  • 📥 Нажмите Главная → Закрыть и загрузить, выбрав Заменить данные.

⚠️ Внимание: Power Query создаёт связь с исходными данными. Если источник изменится, обновите запрос через Данные → Обновить все. Для одноразовой очистки лучше использовать методы из раздела 1 или 2.

Фильтр|Формулы|Power Query|Макросы|Не знаю, выберу после прочтения-->

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

Если вам регулярно приходится удалять строки по ключевым словам, стоит автоматизировать процесс с помощью макроса. Этот метод самый быстрый для таблиц от 50 000 строк, но требует включения поддержки макросов (Файл → Параметры → Настроить ленту → Разработчик).

Код макроса для удаления строк, содержащих слово "удалить" в столбце A:

Sub DeleteRowsByKeyword()

Dim ws As Worksheet

Dim rng As Range, cell As Range

Dim i As Long, lastRow As Long

Dim keyword As String

keyword = "удалить" ' Замените на ваше слово

Set ws = ActiveSheet

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

For i = lastRow To 1 Step -1 ' Обратный порядок, чтобы не сбивались индексы

If InStr(1, ws.Cells(i, 1).Value, keyword, vbTextCompare) > 0 Then

ws.Rows(i).Delete

End If

Next i

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Замените "удалить" на ваше слово и столбец "A" на нужный.
  4. Запустите макрос через F5 или кнопку на панели Разработчик.
Дополнительные параметры макроса

Чтобы искать точное совпадение (а не подстроку), замените строку с InStr на:

If ws.Cells(i, 1).Value = keyword Then

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

Dim keywords: keywords = Array("слово1", "слово2")

и замените условие на цикл проверки по массиву.

5. Удаление строк по условию в Excel Online и мобильной версии

В Excel Online и мобильном приложении доступны не все функции десктопной версии. Здесь для удаления строк по слову можно использовать только фильтр или вспомогательный столбец с формулами. Рассмотрим нюансы:

Ограничения:

  • 🚫 Нет поддержки Power Query и макросов.
  • 🔄 Фильтр работает медленнее на больших таблицах (от 5 000 строк).
  • 📱 В мобильной версии нельзя удалять строки пакетно — только по одной.

Алгоритм для Excel Online:

  1. Добавьте вспомогательный столбец с формулой =ЕСЛИ(ЕЧИСЛО(ПОИСК("слово";A2)));1;0).
  2. Отсортируйте таблицу по вспомогательному столбцу по убыванию.
  3. Удалите строки с единицей вручную (в мобильной версии) или через фильтр (в онлайн-версии).

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

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

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

Ошибка Причина Решение
Удалились не те строки Неверно указан диапазон фильтра или столбец для поиска Проверьте выделение перед применением фильтра (Ctrl+A дважды)
Формулы сбились после удаления В таблице есть ссылки на ячейки (например, =A2+B2) Замените относительные ссылки на абсолютные (=$A$2+$B$2) или используйте именованные диапазоны
Макрос не находит слово В коде не учтён регистр или пробелы Добавьте vbTextCompare в InStr или используйте Trim() для удаления пробелов
Excel зависает при фильтрации Слишком много данных (>100 000 строк) или сложные формулы Разбейте таблицу на части или используйте Power Query

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

  1. Нажмите Ctrl+H (замена).
  2. В поле "Найти" введите =#ССЫЛКА!, в поле "Заменить на" оставьте пустым.
  3. Нажмите Заменить все.

1. Есть ли резервная копия файла (Файл → Сохранить как).

2. Не содержат ли удаляемые строки важные данные (например, скрытые столбцы).

3. Не используются ли удаляемые ячейки в сводных таблицах или графиках (обновите их после изменений).-->

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

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

Нет, если лист защищён от изменений (Рецензирование → Защитить лист). Сначала снимите защиту (если знаете пароль) или скопируйте данные на новый лист через Главная → Формат → Переместить/скопировать лист.

Как удалить строки, где слово встречается в ЛЮБОМ столбце?

Используйте вспомогательный столбец с формулой, объединяющей все ячейки строки:

=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("слово";A2));ЕЧИСЛО(ПОИСК("слово";B2));...);"Удалить";"")

Или запишите макрос, который проверяет каждый столбец в строке.

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

Это происходит, если в таблице использовались относительные ссылки (например, =A2). Замените их на:

  • Абсолютные ссылки (=$A$2),
  • Именованные диапазоны (Формулы → Присвоить имя),
  • Функцию ИНДЕКС для динамических ссылок.

Как удалить строки по слову в Google Таблицах?

В Google Sheets алгоритм аналогичен Excel:

  1. Добавьте вспомогательный столбец с формулой =REGEXMATCH(A2; "слово").
  2. Отфильтруйте по значению ИСТИНА.
  3. Удалите отфильтрованные строки через правый клик.

Для автоматизации используйте Apps Script (аналог VBA).

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

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

  • Ctrl+Z (отмена последнего действия),
  • Журнал изменений (Файл → Сведения → Управление книгой → Журнал изменений в Excel 365).

Если файл сохранён, восстановите данные из резервной копии или временных файлов (Файл → Открыть → Последние → Восстановить несохранённые книги).