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

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

Независимо от того, нужны ли вам строки с названием продукта, фамилией клиента или кодом заказа, решение существует. В этой статье разберём пошаговые методы — от базового фильтра до формул и VBA-скриптов, — которые сэкономят ваше время и нервы. А ещё расскажем, какие подводные камни ждут новичков и как их обойти.

Если вы никогда не работали с фильтрацией данных, начните с первого раздела — там объяснено всё максимально просто. Опытные пользователи могут сразу перейти к продвинутым техникам с формулами FILTER или макросами. Готовы? Тогда приступим.

1. Самый простой способ: стандартный фильтр

Метод подходит для любых версий Excel (включая Excel 2010 и новее) и не требует знания формул. Его главный плюс — скорость: вы сможете отфильтровать строки за 3 клика.

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

  1. Выделите заголовок столбца, по которому хотите искать (например, столбец B с названиями товаров).
  2. Нажмите на вкладку ДанныеФильтр (или используйте горячие клавиши Ctrl+Shift+L).
  3. Щёлкните по стрелке фильтра в заголовке столбца и выберите Текстовые фильтрыСодержит....
  4. Введите искомое слово (например, ноутбук) и нажмите ОК.

Excel мгновенно скроет все строки, не содержащие указанное слово. Чтобы вернуть исходный вид таблицы, снова нажмите на стрелку фильтра и выберите Удалить фильтр.

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

2. Условное форматирование: выделение строк цветом

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

Как настроить:

  1. Выделите диапазон ячеек, в котором хотите искать (например, A1:D100).
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    =ПОИСК("слово";A1)

    Замените "слово" на ваш запрос (например, "ургентно").

  5. Нажмите Формат, выберите цвет заливки (например, жёлтый) и сохраните правило.

Теперь все ячейки (и целые строки, если применить форматирование ко всей таблице), содержащие искомое слово, будут подсвечены. Чтобы удалить выделение, вернитесь в Условное форматированиеУдалить правила.

Почему формула не работает?

Если формула не находит совпадений, проверьте:

- Правильность написания слова (регистр важен для функции ПОИСК).

- Диапазон ячеек — правило должно применяться ко всем столбцам, где может быть слово.

- Наличие пробелов или скрытых символов (попробуйте использовать СЖПРОБЕЛЫ).

💡 Полезный лайфхак: Чтобы выделить всю строку, а не только ячейку, примените условное форматирование ко всему диапазону таблицы (например, A1:Z100) и используйте формулу с фиксированным столбцом:

=ПОИСК("слово";$A1)

Знак $ перед буквой столбца заставит Excel проверять только столбец A, но окрашивать всю строку.

3. Функция ПОИСК + фильтр: для сложных запросов

Если вам нужно не просто найти, а отфильтровать строки по нескольким условиям (например, где есть слово "срочно" и сумма больше 1000), комбинируйте функции ПОИСК и ФИЛЬТРExcel 365 и Excel 2021).

Пример формулы для фильтрации строк, где в столбце B есть слово "отчёт", а в столбце D сумма превышает 5000:

=ФИЛЬТР(A2:D100; (ПОИСК("отчёт";B2:B100)>0) * (D2:D100>5000); "Нет данных")

Разберём синтаксис:

- A2:D100 — диапазон исходной таблицы.

- ПОИСК("отчёт";B2:B100)>0 — проверяет наличие слова в столбце B.

- D2:D100>5000 — дополнительное условие по числовому значению.

- "Нет данных" — сообщение, если совпадений нет.

📊 Какой метод поиска строк вы используете чаще?
Стандартный фильтр
Условное форматирование
Функцию ПОИСК+ФИЛЬТР
Макросы/VBA
Другой способ

⚠️ Внимание: Функция ФИЛЬТР доступна только в Excel 365 и Excel 2021. Для старых версий используйте комбинацию ИНДЕКС + ПОИСКПОЗ (пример ниже).

4. Продвинутый уровень: формулы ИНДЕКС + ПОИСКПОЗ

Для пользователей Excel 2016 и старше, где нет функции ФИЛЬТР, подойдёт альтернатива — динамический массив на основе ИНДЕКС и ПОИСКПОЗ. Этот метод сложнее, но даёт аналогичный результат.

Допустим, у вас таблица с заголовками в строке 1, и вы ищете строки, где в столбце C есть слово "брак". Формула для вывода отфильтрованных данных в другой диапазон:

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$D$100; НАЙТИ(ЕСЛИ(ПОИСК("брак";$C$2:$C$100); СТРОКА($C$2:$C$100)-1); 0); ); "")

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

1. ПОИСК("брак";$C$2:$C$100) — ищет слово в столбце C.

2. ЕСЛИ(...; СТРОКА(...)-1) — возвращает номера строк с совпадениями (минус 1 для корректировки).

3. ИНДЕКС — извлекает данные из исходного диапазона по найденным номерам строк.

📌 Ключевой момент: Эта формула массива — после ввода нажмите Ctrl+Shift+Enter (в старых версиях Excel). В Excel 365 она будет работать и без этого.

✓ Убедитесь, что диапазоны в формуле охватывают все нужные столбцы

✓ Проверьте регистр искомого слова (функция ПОИСК чувствительна к нему)

✓ Зарезервируйте достаточно строк для вывода результата (формула может вернуть несколько строк)

✓ В Excel 2016 и старше не забывайте нажимать Ctrl+Shift+Enter

-->

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

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

- Ищет слово в указанном столбце.

- Выделяет целые строки с совпадениями.

- Копирует их в новый лист.

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль: ВставкаМодуль.
  3. Скопируйте туда этот код:
    Sub FindAndHighlightRows()
    

    Dim ws As Worksheet

    Dim searchRange As Range, cell As Range

    Dim searchWord As String

    Dim i As Long, lastRow As Long

    ' Укажите здесь ваше слово для поиска

    searchWord = "срочно"

    ' Укажите лист и столбец для поиска (например, столбец B)

    Set ws = ActiveSheet

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

    Set searchRange = ws.Range("B1:B" & lastRow)

    ' Поиск и выделение строк

    For Each cell In searchRange

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

    ws.Rows(cell.Row).EntireRow.Interior.Color = RGB(255, 255, 0) ' Жёлтый цвет

    End If

    Next cell

    ' Копирование выделенных строк в новый лист

    Dim newWs As Worksheet

    Set newWs = Worksheets.Add(After:=Worksheets(Worksheets.Count))

    newWs.Name = "Результаты поиска"

    Dim resultRow As Long

    resultRow = 1

    For i = 1 To lastRow

    If ws.Rows(i).EntireRow.Interior.Color = RGB(255, 255, 0) Then

    ws.Rows(i).Copy Destination:=newWs.Rows(resultRow)

    resultRow = resultRow + 1

    End If

    Next i

    MsgBox "Поиск завершён! Результаты на листе '" & newWs.Name & "'", vbInformation

    End Sub

  4. Запустите макрос клавишей F5 или через ВыполнитьMacros.

⚠️ Внимание: Перед запуском макроса сохраните книгу в формате .xlsm (с поддержкой макросов), иначе код не сработает. Также проверьте, что в searchWord указано правильное слово, а в searchRange — нужный столбец.

- Всегда тестируйте код на копии данных.

- Отключите макросы в файлах из ненадёжных источников (они могут содержать вирусы).

- Для частых задач сохраняйте макросы в Персональную книгу макросов (Personal.xlsb).-->

6. Поиск с учётом регистра и частичных совпадений

По умолчанию функция ПОИСК не учитывает регистр, а НАЙТИ — учитывает. Это важно, если вам нужно различать, например, "Иванов" и "иванов". Также полезно искать частичные совпадения (например, все слова, начинающиеся на "проект-").

Примеры формул для разных сценариев:

| Задача | Формула |

|---------------------------------|-------------------------------------------------------------------------|

| Поиск с учётом регистра | =НАЙТИ("Слово";A1) (вернёт ошибку, если не найдёт) |

| Поиск без учёта регистра | =ПОИСК("слово";A1) (регистр не важен) |

| Начинается с... | =ЕСЛИ(ЛЕВБ(A1;6)="проект";"Да";"Нет") |

| Заканчивается на... | =ЕСЛИ(ПРАВСИМВ(A1;4)="2026";"Да";"Нет") |

| Содержит одно из нескольких слов| =ИЛИ(ПОИСК("слово1";A1); ПОИСК("слово2";A1)) |

📌 Пример применения: Чтобы найти все строки, где в столбце E есть слово "Принято" с большой буквы, используйте:

=ФИЛЬТР(A2:F100; НАЙТИ("Принято";E2:E100); "Нет данных")

А если нужно найти любое упоминание "принято" (в любом регистре), замените НАЙТИ на ПОИСК.

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

В зависимости от задачи и версии Excel оптимальные способы поиска строк разнятся. В таблице ниже — сравнение по ключевым критериям:

| Метод | Скорость | Гибкость | Версии Excel | Автоматизация |

|---------------------------|----------|----------|--------------------|---------------|

| Стандартный фильтр | ⭐⭐⭐⭐⭐ | ⭐⭐ | Все | Нет |

| Условное форматирование | ⭐⭐⭐⭐ | ⭐⭐⭐ | Все | Частично |

| Функция ФИЛЬТР | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 365, 2021 | Да |

| ИНДЕКС+ПОИСКПОЗ | ⭐⭐⭐ | ⭐⭐⭐⭐ | 2016 и старше | Да |

| Макрос VBA | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Все | Полная |

🔹 Вывод: Для разовых задач хватит фильтра или условного форматирования. Если нужно автоматизировать поиск по сложным критериям — осваивайте ФИЛЬТР или VBA.

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

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

  1. Фильтр не находит слово:

    - Проверьте регистр (функция ПОИСК нечувствительна к нему, а НАЙТИ — наоборот).

    - Убедитесь, что в ячейках нет лишних пробелов (используйте =СЖПРОБЕЛЫ(A1) для очистки).

  2. Формула возвращает #ЗНАЧ!:

    - Ошибка возникает, если НАЙТИ не нашла совпадений. Оберните её в ЕСЛИОШИБКА.

  3. Макрос не работает:

    - Проверьте, сохранён ли файл как .xlsm.

    - Включите макросы в настройках Excel: Файл → Параметры → Центр управления безопасностью → Параметры центра... → Включить все макросы.

  4. Условное форматирование применяется не ко всей строке:

    - Убедитесь, что правило применяется ко всему диапазону (например, A1:Z100, а не только A1:A100).

  5. Функция ФИЛЬТР выдаёт #ИМЯ?:

    - Эта функция доступна только в Excel 365 и Excel 2021. Для старых версий используйте ИНДЕКС+ПОИСКПОЗ.

Критическая деталь: Если вы работаете с данными, импортированными из внешних источников (например, CSV), предварительно очистите их от скрытых символов с помощью функции =ПЕЧСИМВ(A1). Это устранит 90% ошибок поиска.

FAQ: Ответы на популярные вопросы

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

Да. Используйте функцию ИЛИ для поиска любого из слов или И — для поиска всех слов в одной строке. Пример:

=ФИЛЬТР(A2:D100; (ПОИСК("слово1";B2:B100) + ПОИСК("слово2";B2:B100)) > 0; "Нет данных")

Здесь строка будет включена в результат, если содержит хотя бы одно из слов.

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

Скомбинируйте несколько условий с помощью ИЛИ:

=ФИЛЬТР(A2:D100;

(ПОИСК("ключ";A2:A100) + ПОИСК("ключ";B2:B100) + ПОИСК("ключ";C2:C100)) > 0;

"Нет данных")

Или используйте СУММПРОИЗВ для более компактной записи.

Почему фильтр не работает с кириллицей?

Проблема может быть в кодировке файла. Попробуйте:

  1. Сохраните файл в формате .xlsx (не .csv).
  2. Используйте функцию =ПЕЧСИМВ(A1), чтобы удалить непечатаемые символы.
  3. Проверьте шрифт — иногда символы кириллицы отображаются неправильно из-за шрифта Arial Unicode MS.

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

Способы:

  • 📋 Выделите видимые строки (после фильтра), нажмите Ctrl+C, затем вставьте в новый файл.
  • 🖥️ Используйте макрос из раздела VBA — он автоматически создаст новый лист с результатами.
  • 📊 В Excel 365 функция ФИЛЬТР вернёт динамический массив, который можно скопировать как значения (Вставить → Значения).

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

В стандартном Excel нет встроенной поддержки регулярок, но есть обходные пути:

  • 🔧 Используйте Power Query (вкладка Данные → Получить данные) — там есть фильтрация по шаблонам.
  • 📜 Напишите VBA-функцию с поддержкой регулярок (требуются знания программирования).
  • 🌐 Экспортируйте данные в Google Sheets — там есть функция REGEXMATCH.