Работа с большими таблицами в Microsoft Excel часто требует очистки данных от ненужных записей. Одна из самых распространённых задач — удаление строк, содержащих определённое слово или фразу. Например, вам нужно убрать все записи с пометкой «Устарело», исключить дубликаты по названию товара или очистить список клиентов от неактуальных статусов. Вручную это делать неэффективно, особенно если строк тысячи. К счастью, в Excel есть несколько способов автоматизировать процесс — от простых фильтров до мощных формул и макросов.
В этой статье мы разберём 5 проверенных методов, как удалить строки с заданным словом: через стандартный фильтр, расширенный фильтр, формулы, Power Query и VBA. Каждый способ подходит для разных ситуаций — выберите тот, который соответствует вашему уровню владения программой и объёму данных. Также мы расскажем, как избежать типичных ошибок (например, случайного удаления важных данных) и дадим советы по оптимизации процесса.
Если вы новичок, начните с первых двух методов — они не требуют знания формул. Продвинутым пользователям пригодятся разделы про Power Query и VBA, которые позволяют автоматизировать задачу для регулярного использования.
Способ 1: Удаление строк через стандартный фильтр (самый простой метод)
Это базовый способ, который подходит для небольших таблиц (до 10 000 строк). Его главный плюс — не нужно знать формулы или макросы. Минус: если данных много, фильтрация может занять время.
Алгоритм действий:
- 📌 Выделите любую ячейку в таблице (или весь диапазон данных, если он не сплошной).
- 🔍 Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - 🔽 В заголовке столбца, где нужно искать слово, нажмите на стрелочку фильтра → выберите
Текстовые фильтры→Содержит.... - 📝 В появившемся окне введите искомое слово (например, «Архив») и нажмите
ОК. - ❌ Excel отобразит только строки с этим словом. Выделите их (кликните на номера строк слева) → правая кнопка мыши →
Удалить строку. - 🚫 Не забудьте снять фильтр после удаления:
Данные→Фильтр(или сноваCtrl+Shift+L).
⚠️ Внимание: Если в таблице есть скрытые строки или объединённые ячейки, фильтр может работать некорректно. Перед удалением проверьте, что выделились именно те строки, которые нужно удалить — иногда Excel захватывает лишние данные из-за ошибок в структуре таблицы.
Выделились только нужные строки?|Нет важных данных в соседних столбцах?|Фильтр применён ко всей таблице?|Сделан бэкап файла?-->
Способ 2: Расширенный фильтр для точного удаления
Стандартный фильтр подходит не всегда. Например, если нужно удалить строки, где слово встречается в любом из нескольких столбцов, или когда данные разбросаны по листу. Здесь поможет расширенный фильтр.
Как это работает:
- Создайте критерий фильтрации над таблицей. Например, если данные начинаются с
A2, введите вA1заголовок столбца (например, «Статус»), а вB1— искомое слово (например, «Отменён»). - Выделите всю таблицу (включая заголовки).
- Перейдите в
Данные→Расширенный фильтр. - В окне настроек:
- Выберите
Исходный диапазон— ваша таблица. - Укажите
Диапазон условий— ячейки с критерием (A1:B1в нашем примере). - Поставьте галочку
Только уникальные записи(если нужно удалить дубли). - Нажмите
ОК.
- Выберите
💡 Преимущество метода: можно задавать сложные условия, например, удалять строки, где в столбце А есть слово «Тест», а в столбце B — число больше 100. Для этого в критерии используйте формулу вида:
=И(А1="Тест"; B1>100)
Способ 3: Удаление строк с помощью формул (для опытных пользователей)
Формулы позволяют автоматически помечать строки для удаления, не прибегая к фильтрам. Это удобно, если нужно предварительно проверить, какие данные будут удалены, или когда таблица связана с другими диапазонами.
Самый надёжный вариант — использовать вспомогательный столбец с функцией ЕСЛИ или ПОИСКПОЗ. Пример:
- Добавьте справа от таблицы новый столбец (например,
Удалить?). - В первую ячейку столбца введите формулу:
=ЕСЛИ(ЕЧИСЛО(ПОИСК("слово";A2));"Да";"Нет")Здесь
A2— ячейка, где искать слово, а"слово"— ваш поисковый запрос. - Растяните формулу на все строки таблицы.
- Отфильтруйте столбец
Удалить?по значению «Да» и удалите отмеченные строки.
⚠️ Внимание: Если в ячейках есть ошибки (например, #Н/Д), функция ПОИСК может давать сбой. В этом случае используйте ЕОШИБКА для проверки:
=ЕСЛИ(ЕОШИБКА(ПОИСК("слово";A2));"Нет";"Да")
| Формула | Когда использовать | Пример |
|---|---|---|
=ЕСЛИ(ЕЧИСЛО(ПОИСК("текст";A2));"Да";"") |
Поиск точного вхождения слова | Найдёт «Архив» в «Архив 2023» |
=ЕСЛИ(A2="текст";"Да";"") |
Только полное совпадение ячейки | Найдёт только «Архив», но не «Архив_старый» |
=ЕСЛИ(СЧЁТЕСЛИ(A2;"текст");"Да";"") |
Поиск с подстановочными знаками | Найдёт «Архив», «Архив_1», «Старый_архив» |
Стандартный фильтр|Расширенный фильтр|Формулы|Power Query|VBA|Не удаляю строки-->
Способ 4: Power Query — мощный инструмент для больших таблиц
Если вы работаете с данными объёмом более 50 000 строк или нужно регулярно очищать таблицы по одним и тем же критериям, Power Query (в Excel 2016 и новее) станет лучшим решением. Этот инструмент позволяет сохранять шаги обработки и повторять их одним кликом, что экономит часы времени.
Пошаговая инструкция:
- Выделите таблицу → перейдите на вкладку
Данные→Из таблицы/диапазона(в группеПолучить и преобразовать данные). - В открывшемся редакторе Power Query найдите столбец, где нужно искать слово.
- Кликните на стрелочку в заголовке столбца →
Текстовые фильтры→Не содержит. - Введите слово, которое не должно встречаться в строках (например, «Удалён»). Нажмите
ОК. - В меню
ГлавнаянажмитеЗакрыть и загрузить→ выберитеЗаменить данныеилиНовый лист.
🔄 Преимущество: Все действия сохраняются в виде запроса. Чтобы повторить очистку, достаточно обновить данные: правая кнопка по таблице → Обновить. Это идеально для ежемесячных отчётов или импорта данных из внешних источников.
Как вернуть оригинальные данные после Power Query?
Если вы загрузили данные в новый лист, оригинал останется нетронутым. Если заменили таблицу, откройте Power Query → найдите ваш запрос в панели Запросы → кликните правой кнопкой → Удалить. Оригинальные данные восстановятся после закрытия и повторного открытия файла (если не сохраняли изменения).
Способ 5: VBA-макрос для автоматизации (для продвинутых)
Если вам приходится удалять строки с определённым словом ежедневно, имеет смысл написать простой макрос. Это сэкономит время и исключит ручные ошибки. Ниже приведён код, который удаляет все строки, содержащие заданное слово в указанном столбце.
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - В меню выберите
Insert→Module. - Вставьте следующий код:
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
- Измените
searchWordна ваше слово иcolNumberна номер столбца (например, для столбцаDукажите 4). - Закройте редактор и запустите макрос:
Alt + F8→ выберитеDeleteRowsWithWord→Выполнить. - Сохраните копию файла.
- Проверьте код на небольшом фрагменте данных.
- Убедитесь, что в коде указан правильный номер столбца (например,
B— это 2, а не 1). - 🔄 Удаление не тех строк: Всегда проверяйте, какие строки выделились перед удалением. Например, если в ячейке есть формула, а не текст, фильтр может сработать некорректно. Решение: предварительно скопируйте данные на другой лист и работайте с копией.
- 📊 Нарушение структуры таблицы: Если в данных есть объединённые ячейки или скрытые строки, фильтры и макросы могут дать сбой. Решение: перед удалением разъедините ячейки (
Главная→Объединить и поместить в центре) и отмените скрытие строк. - 🔍 Поиск с учётом регистра: По умолчанию Excel ищет слова без учёта регистра («архив» = «Архив»). Если нужно точное совпадение, используйте формулу
=ЕСЛИ(A2="Архив";"Да";"")вместоПОИСК. - 🚫 Забыли снять фильтр: После удаления строк фильтр остаётся активным, и вы можете не заметить, что часть данных скрыта. Решение: всегда нажимайте
Данные→Фильтрпосле завершения работы. - Используйте расширенный фильтр с несколькими критериями в одном столбце (Excel воспримет их как «ИЛИ»).
- В Power Query добавьте несколько фильтров: кликните на стрелочку столбца →
Текстовые фильтры→Не содержит→ укажите первое слово → повторите для остальных слов. - В формуле используйте
ИЛИ:=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("слово1";A2)); ЕЧИСЛО(ПОИСК("слово2";A2))); "Да"; "") - Неправильно указанного номера столбца в коде (например, вы указали 2 для столбца
C, а нужно 3). - Скрытых символов в ячейках (пробелы, переносы строк). Решение: используйте
TRIMдля очистки данных перед поиском. - Ошибок в данных (ячейки с
#Н/Д). Решение: добавьте в код проверку на ошибки:If Not IsError(cell.Value) And InStr(1, cell.Value, searchWord) > 0 Then - Откройте предыдущую версию файла (если включено автосохранение в OneDrive/SharePoint).
- Восстановите из корзины (если файл не перезаписывался).
- Используйте специальные программы (например, OfficeRecovery), но они не всегда работают с Excel.
⚠️ Внимание: Макрос удаляет строки без возможности отмены (Ctrl+Z не сработает!). Перед запуском:
Типичные ошибки и как их избежать
Даже опытные пользователи иногда сталкиваются с проблемами при удалении строк. Вот самые распространённые ошибки и способы их предотвратить:
💡 Совет: Если вы часто работаете с одними и теми же данными, создайте шаблон файла с готовыми формулами или макросами. Так вы сэкономите время на настройку каждый раз.
FAQ: Ответы на частые вопросы
Можно ли удалить строки по нескольким словам одновременно?
Да. В стандартном фильтре это невозможно, но есть обходные пути:
Как удалить строки, где слово встречается в ЛЮБОМ из столбцов?
Для этого подойдёт вспомогательный столбец с формулой, которая проверяет все столбцы. Пример для диапазона A2:D2:
=ЕСЛИ(СУММ(ЕЧИСЛО(ПОИСК("слово";A2:D2)))>0; "Да"; "")
Затем отфильтруйте по «Да» и удалите строки. В Power Query это делается через Добавить столбец → Пользовательский столбец с аналогичной логикой.
Почему макрос удаляет не все нужные строки?
Чаще всего это происходит из-за:
Можно ли отменить удаление строк после сохранения файла?
Нет, если файл сохранён, Ctrl+Z не сработает. Но есть способы восстановления:
🔹 Вывод: Всегда делайте резервную копию перед массовым удалением!
Как удалить строки по слову в Google Таблицах?
В Google Sheets алгоритм похож на Excel, но есть нюансы:
- Выделите данные →
Данные→Создать фильтр. - В фильтре выберите
Текст содержит→ введите слово. - Выделите отфильтрованные строки → правая кнопка →
Удалить строки 1–X.
Для формул используйте =REGEXMATCH(A2; "слово") вместо ПОИСК. В Google Apps Script (аналог VBA) логика такая же, но синтаксис отличается.