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

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

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

Если вы новичок, начните с первых двух методов — они не требуют знания формул. Продвинутым пользователям пригодятся разделы про Power Query и VBA, которые позволяют автоматизировать задачу для регулярного использования.

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

Это базовый способ, который подходит для небольших таблиц (до 10 000 строк). Его главный плюс — не нужно знать формулы или макросы. Минус: если данных много, фильтрация может занять время.

Алгоритм действий:

  • 📌 Выделите любую ячейку в таблице (или весь диапазон данных, если он не сплошной).
  • 🔍 Перейдите на вкладку Данные → нажмите Фильтр (или используйте горячие клавиши Ctrl+Shift+L).
  • 🔽 В заголовке столбца, где нужно искать слово, нажмите на стрелочку фильтра → выберите Текстовые фильтрыСодержит....
  • 📝 В появившемся окне введите искомое слово (например, «Архив») и нажмите ОК.
  • ❌ Excel отобразит только строки с этим словом. Выделите их (кликните на номера строк слева) → правая кнопка мыши → Удалить строку.
  • 🚫 Не забудьте снять фильтр после удаления: ДанныеФильтр (или снова Ctrl+Shift+L).

⚠️ Внимание: Если в таблице есть скрытые строки или объединённые ячейки, фильтр может работать некорректно. Перед удалением проверьте, что выделились именно те строки, которые нужно удалить — иногда Excel захватывает лишние данные из-за ошибок в структуре таблицы.

Выделились только нужные строки?|Нет важных данных в соседних столбцах?|Фильтр применён ко всей таблице?|Сделан бэкап файла?-->

Способ 2: Расширенный фильтр для точного удаления

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

Как это работает:

  1. Создайте критерий фильтрации над таблицей. Например, если данные начинаются с A2, введите в A1 заголовок столбца (например, «Статус»), а в B1 — искомое слово (например, «Отменён»).
  2. Выделите всю таблицу (включая заголовки).
  3. Перейдите в ДанныеРасширенный фильтр.
  4. В окне настроек:
    • Выберите Исходный диапазон — ваша таблица.
    • Укажите Диапазон условий — ячейки с критерием (A1:B1 в нашем примере).
    • Поставьте галочку Только уникальные записи (если нужно удалить дубли).
    • Нажмите ОК.
  • Excel отфильтрует строки. Остаётся выделить их и удалить (как в первом способе).
  • 💡 Преимущество метода: можно задавать сложные условия, например, удалять строки, где в столбце А есть слово «Тест», а в столбце B — число больше 100. Для этого в критерии используйте формулу вида:

    =И(А1="Тест"; B1>100)

    Способ 3: Удаление строк с помощью формул (для опытных пользователей)

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

    Самый надёжный вариант — использовать вспомогательный столбец с функцией ЕСЛИ или ПОИСКПОЗ. Пример:

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

      Здесь A2 — ячейка, где искать слово, а "слово" — ваш поисковый запрос.

    3. Растяните формулу на все строки таблицы.
    4. Отфильтруйте столбец Удалить? по значению «Да» и удалите отмеченные строки.

    ⚠️ Внимание: Если в ячейках есть ошибки (например, #Н/Д), функция ПОИСК может давать сбой. В этом случае используйте ЕОШИБКА для проверки:

    =ЕСЛИ(ЕОШИБКА(ПОИСК("слово";A2));"Нет";"Да")
    Формула Когда использовать Пример
    =ЕСЛИ(ЕЧИСЛО(ПОИСК("текст";A2));"Да";"") Поиск точного вхождения слова Найдёт «Архив» в «Архив 2023»
    =ЕСЛИ(A2="текст";"Да";"") Только полное совпадение ячейки Найдёт только «Архив», но не «Архив_старый»
    =ЕСЛИ(СЧЁТЕСЛИ(A2;"текст");"Да";"") Поиск с подстановочными знаками Найдёт «Архив», «Архив_1», «Старый_архив»

    Стандартный фильтр|Расширенный фильтр|Формулы|Power Query|VBA|Не удаляю строки-->

    Способ 4: Power Query — мощный инструмент для больших таблиц

    Если вы работаете с данными объёмом более 50 000 строк или нужно регулярно очищать таблицы по одним и тем же критериям, Power Query (в Excel 2016 и новее) станет лучшим решением. Этот инструмент позволяет сохранять шаги обработки и повторять их одним кликом, что экономит часы времени.

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

    1. Выделите таблицу → перейдите на вкладку ДанныеИз таблицы/диапазона (в группе Получить и преобразовать данные).
    2. В открывшемся редакторе Power Query найдите столбец, где нужно искать слово.
    3. Кликните на стрелочку в заголовке столбца → Текстовые фильтрыНе содержит.
    4. Введите слово, которое не должно встречаться в строках (например, «Удалён»). Нажмите ОК.
    5. В меню Главная нажмите Закрыть и загрузить → выберите Заменить данные или Новый лист.

    🔄 Преимущество: Все действия сохраняются в виде запроса. Чтобы повторить очистку, достаточно обновить данные: правая кнопка по таблице → Обновить. Это идеально для ежемесячных отчётов или импорта данных из внешних источников.

    Как вернуть оригинальные данные после Power Query?

    Если вы загрузили данные в новый лист, оригинал останется нетронутым. Если заменили таблицу, откройте Power Query → найдите ваш запрос в панели Запросы → кликните правой кнопкой → Удалить. Оригинальные данные восстановятся после закрытия и повторного открытия файла (если не сохраняли изменения).

    Способ 5: VBA-макрос для автоматизации (для продвинутых)

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

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

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. В меню выберите InsertModule.
    3. Вставьте следующий код:
      Sub DeleteRowsWithWord()
      

      Dim ws As Worksheet

      Dim rng As Range, cell As Range

      Dim searchWord As String

      Dim colNumber As Integer

      ' Укажите здесь:

      searchWord = "Удалён" ' Искомое слово

      colNumber = 3 ' Номер столбца (A=1, B=2, C=3 и т.д.)

      Set ws = ActiveSheet

      Set rng = ws.UsedRange.Columns(colNumber)

      For Each cell In rng

      If InStr(1, cell.Value, searchWord, vbTextCompare) > 0 Then

      cell.EntireRow.Delete

      End If

      Next cell

      End Sub

    4. Измените searchWord на ваше слово и colNumber на номер столбца (например, для столбца D укажите 4).
    5. Закройте редактор и запустите макрос: Alt + F8 → выберите DeleteRowsWithWordВыполнить.
    6. ⚠️ Внимание: Макрос удаляет строки без возможности отмены (Ctrl+Z не сработает!). Перед запуском:

      • Сохраните копию файла.
      • Проверьте код на небольшом фрагменте данных.
      • Убедитесь, что в коде указан правильный номер столбца (например, B — это 2, а не 1).

      Типичные ошибки и как их избежать

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

      • 🔄 Удаление не тех строк: Всегда проверяйте, какие строки выделились перед удалением. Например, если в ячейке есть формула, а не текст, фильтр может сработать некорректно. Решение: предварительно скопируйте данные на другой лист и работайте с копией.
      • 📊 Нарушение структуры таблицы: Если в данных есть объединённые ячейки или скрытые строки, фильтры и макросы могут дать сбой. Решение: перед удалением разъедините ячейки (ГлавнаяОбъединить и поместить в центре) и отмените скрытие строк.
      • 🔍 Поиск с учётом регистра: По умолчанию Excel ищет слова без учёта регистра («архив» = «Архив»). Если нужно точное совпадение, используйте формулу =ЕСЛИ(A2="Архив";"Да";"") вместо ПОИСК.
      • 🚫 Забыли снять фильтр: После удаления строк фильтр остаётся активным, и вы можете не заметить, что часть данных скрыта. Решение: всегда нажимайте ДанныеФильтр после завершения работы.

      💡 Совет: Если вы часто работаете с одними и теми же данными, создайте шаблон файла с готовыми формулами или макросами. Так вы сэкономите время на настройку каждый раз.

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

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

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

      • Используйте расширенный фильтр с несколькими критериями в одном столбце (Excel воспримет их как «ИЛИ»).
      • В Power Query добавьте несколько фильтров: кликните на стрелочку столбца → Текстовые фильтрыНе содержит → укажите первое слово → повторите для остальных слов.
      • В формуле используйте ИЛИ:
        =ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("слово1";A2)); ЕЧИСЛО(ПОИСК("слово2";A2))); "Да"; "")
      Как удалить строки, где слово встречается в ЛЮБОМ из столбцов?

      Для этого подойдёт вспомогательный столбец с формулой, которая проверяет все столбцы. Пример для диапазона A2:D2:

      =ЕСЛИ(СУММ(ЕЧИСЛО(ПОИСК("слово";A2:D2)))>0; "Да"; "")

      Затем отфильтруйте по «Да» и удалите строки. В Power Query это делается через Добавить столбецПользовательский столбец с аналогичной логикой.

      Почему макрос удаляет не все нужные строки?

      Чаще всего это происходит из-за:

      • Неправильно указанного номера столбца в коде (например, вы указали 2 для столбца C, а нужно 3).
      • Скрытых символов в ячейках (пробелы, переносы строк). Решение: используйте TRIM для очистки данных перед поиском.
      • Ошибок в данных (ячейки с #Н/Д). Решение: добавьте в код проверку на ошибки:
        If Not IsError(cell.Value) And InStr(1, cell.Value, searchWord) > 0 Then
      Можно ли отменить удаление строк после сохранения файла?

      Нет, если файл сохранён, Ctrl+Z не сработает. Но есть способы восстановления:

      • Откройте предыдущую версию файла (если включено автосохранение в OneDrive/SharePoint).
      • Восстановите из корзины (если файл не перезаписывался).
      • Используйте специальные программы (например, OfficeRecovery), но они не всегда работают с Excel.

    🔹 Вывод: Всегда делайте резервную копию перед массовым удалением!

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

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

    1. Выделите данные → ДанныеСоздать фильтр.
    2. В фильтре выберите Текст содержит → введите слово.
    3. Выделите отфильтрованные строки → правая кнопка → Удалить строки 1–X.

    Для формул используйте =REGEXMATCH(A2; "слово") вместо ПОИСК. В Google Apps Script (аналог VBA) логика такая же, но синтаксис отличается.