Фильтрация данных по ключевым словам в Microsoft Excel — одна из самых востребованных операций при работе с большими таблицами. Представьте: у вас список из 10 000 строк с описаниями товаров, и нужно быстро найти все записи, содержащие слова "премиум", "акция" или "распродажа". Вручную это заняло бы часы, а с правильными инструментами — минуты.
Многие пользователи ошибочно считают, что фильтр в Excel работает только с числами или точными совпадениями текста. На самом деле даже базовый автофильтр поддерживает поиск по фрагментам слов, а расширенные инструменты вроде Power Query или формул позволяют строить сложные условия с логическими операторами. В этой статье разберём все актуальные способы — от простейших до профессиональных, с учётом нюансов разных версий Excel (2016, 2019, 365 и Excel Online).
Важно: если вы работаете с кириллицей, проверьте кодировку файла — иногда фильтр не срабатывает из-за скрытых символов (например, неразрывного пробела). Об этом подробнее в разделе про типичные ошибки.
1. Базовый фильтр по словам через автофильтр
Самый быстрый способ отфильтровать данные по ключевому слову — использовать встроенный автофильтр. Он доступен во всех версиях Excel и не требует знания формул.
Чтобы включить его:
- Выделите любую ячейку в таблице (или весь диапазон данных).
- Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - Нажмите на стрелку фильтра в столбце, где нужно искать слово.
В открывшемся окне выберите Текстовые фильтры → Содержит.... В поле введите искомое слово (например, "кофе") и нажмите ОК. Excel покажет только строки, где это слово встречается в ячейке.
Ограничения метода:
- 🔍 Не поддерживает поиск по регистру (слова "Кофе" и "кофе" будут восприняты одинаково).
- 📌 Нельзя использовать логические операторы (
И,ИЛИ) для нескольких условий в одном столбце. - ⚡ Фильтр применяется только к одному столбцу за раз.
2. Расширенный фильтр: поиск по нескольким словам в разных столбцах
Если нужно отфильтровать данные по двум и более словам, причем в разных столбцах (например, найти все записи, где в столбце A есть "Москва", а в столбце B — "опт"), поможет расширенный фильтр.
Алгоритм действий:
- Создайте над таблицей диапазон условий (например, в строках 1–2). В ячейки
A1иB1скопируйте заголовки столбцов, по которым будете фильтровать. - В
A2введите первое слово (например, "Москва"), вB2— второе ("опт"). - Перейдите на вкладку
Данные→Расширенный фильтр. - В поле
Исходный диапазонукажите всю таблицу (включая заголовки). - В поле
Диапазон условийвыделите ячейкиA1:B2. - Выберите опцию
Скопировать результат в другое местои укажите ячейку для вывода (например,D1).
Результат: Excel создаст новую таблицу со строками, соответствующими обоим условиям.
Если нужно искать одно из нескольких слов в одном столбце (например, "кофе" ИЛИ "чай" ИЛИ "какао"), введите условия в отдельные строки:
A1: Название товара A2: кофе A3: чай A4: какао Расширенный фильтр воспримет это как условие Пример формулы для диапазона условий
ИЛИ
Ключевой нюанс: если в диапазоне условий указать значения в одной строке (например, A2: "Москва", B2: "опт"), фильтр применит логическое И. Если значения расположить в разных строках — сработает ИЛИ.
3. Фильтр по словам с помощью Power Query (для больших таблиц)
Power Query — это инструмент для обработки данных, встроенный в Excel 2016+ и Excel 365. Он позволяет фильтровать данные по словам даже в таблицах с миллионами строк, причем с сохранением истории преобразований.
Инструкция:
- Выделите таблицу и перейдите на вкладку
Данные→Из таблицы/диапазона(в группеПолучить и преобразовать данные). - В открывшемся окне Power Query выберите столбец, по которому нужно фильтровать.
- Нажмите на стрелку фильтра →
Текстовые фильтры→Содержит. - Введите слово (например, "премиум") и нажмите
ОК. - Чтобы добавить второе условие, повторите шаги 2–4 для другого столбца.
- Нажмите
Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.
Преимущества Power Query:
- 📊 Работает с данными объёмом до 10 млн строк (против 1 млн в стандартном Excel).
- 🔄 Сохраняет шаги фильтрации — можно обновить данные одним кликом.
- 🛠 Поддерживает регулярные выражения (например, искать слова, начинающиеся на "эко-").
Важно: если после фильтрации в Power Query данные не обновляются, проверьте подключение к источнику. Для этого кликните правой кнопкой по таблице → Обновить.
4. Фильтрация по словам с использованием формул
Формулы позволяют создавать динамические фильтры, которые автоматически обновляются при изменении исходных данных. Рассмотрим два варианта: с функцией ФИЛЬТР (для Excel 365) и с комбинацией ЕСЛИ + ПОИСК (для старых версий).
Способ 1. Функция ФИЛЬТР (Excel 365 и Excel Online)
=ФИЛЬТР(A2:B100; (ПОИСК("кофе"; A2:A100)>0) + (ПОИСК("чай"; A2:A100)>0); "Ничего не найдено")
Эта формула вернёт все строки из диапазона A2:B100, где в столбце A есть слово "кофе" или "чай". Третий аргумент — сообщение, если совпадений нет.
Способ 2. Комбинация ЕСЛИ + ПОИСК (для Excel 2016–2019)
Если у вас старая версия Excel, используйте вспомогательный столбец:
- Добавьте справа от таблицы новый столбец (например,
C). - В
C2введите формулу:=ЕСЛИ(ЕЧИСЛО(ПОИСК("кофе"; A2)); "Да"; "Нет")и растяните её на весь столбец.
- Примените автофильтр к столбцу
Cи отфильтруйте по значению "Да".
Для поиска нескольких слов в одной формуле:
=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("кофе"; A2)); ЕЧИСЛО(ПОИСК("чай"; A2))); "Да"; "Нет")
Убедитесь, что в ячейках нет скрытых символов (используйте функцию ПЕЧСИМВ)
Проверьте регистр (функция ПОИСК чувствительна к регистру, а НАЙТИ — нет)
Создайте резервную копию данных перед применением формул
-->
5. Фильтр по словам с учётом регистра
По умолчанию Excel игнорирует регистр при фильтрации (слова "Кофе" и "кофе" считаются одинаковыми). Если нужно различать заглавные и строчные буквы, используйте одну из этих техник:
Метод 1. Формула с НАЙТИ
Функция НАЙТИ (в отличие от ПОИСК) учитывает регистр. Пример:
=ЕСЛИ(ЕЧИСЛО(НАЙТИ("Кофе"; A2)); "Да"; "Нет")
Эта формула вернёт "Да" только если в ячейке A2 есть слово именно с большой буквы "К".
Метод 2. Power Query с параметром CompareOptions.Text
В Power Query можно явно указать чувствительность к регистру:
- Загрузите данные в Power Query (вкладка
Данные→Из таблицы/диапазона). - Выберите столбец →
Добавить столбец→Настраиваемый столбец. - Введите формулу:
if Text.Contains([Название], "Кофе", Comparer.Ordinal) then "Да" else "Нет"где
Comparer.Ordinal— параметр для учёта регистра. - Отфильтруйте новый столбец по значению "Да".
Метод 3. VBA-макрос
Для автоматизации фильтрации с учётом регистра можно написать простой макрос:
Sub FilterByCase()
Dim rng As Range, cell As Range
Set rng = Range("A2:A100") ' Диапазон для поиска
For Each cell In rng
If InStr(1, cell.Value, "Кофе", vbTextCompare) = 0 Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
Этот код скрывает все строки, где нет слова "Кофе" с большой буквы.
6. Типичные ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при фильтрации по словам. Вот самые распространённые ошибки и их решения:
Ошибка 1: Фильтр не находит слово, хотя оно есть в таблице
- 📌 Причина: В ячейках есть непечатаемые символы (пробелы, переносы строк).
- 🔧 Решение: Используйте функцию
ПЕЧСИМВдля очистки данных:=ПЕЧСИМВ(A2)или в Power Query примените преобразование
Очистить текст.
Ошибка 2: Фильтр игнорирует кириллицу
- 📌 Причина: Неправильная кодировка файла (например, данные импортированы из
CSVв кодировкеUTF-8, а Excel ожидаетWindows-1251). - 🔧 Решение: При импорте данных выберите правильную кодировку или конвертируйте файл через
Блокнот.
Ошибка 3: Расширенный фильтр не работает
- 📌 Причина: Диапазон условий не включает заголовки или содержит пустые ячейки.
- 🔧 Решение: Проверьте, что:
- Заголовки в диапазоне условий полностью совпадают с заголовками в исходной таблице.
- Нет пустых строк между условиями.
- Диапазон условий не пересекается с исходными данными.
Таблица: Частые ошибки и их исправление
| Ошибка | Возможная причина | Решение |
|---|---|---|
| Фильтр не находит слово | Скрытые символы или пробелы | Использовать ПЕЧСИМВ или СЖПРОБЕЛЫ |
| Расширенный фильтр выдаёт пустой результат | Несовпадение заголовков в диапазоне условий | Проверить названия столбцов в диапазоне условий |
| Фильтр работает медленно | Слишком большая таблица (>100 000 строк) | Использовать Power Query или разбить данные на части |
| Фильтр не различает регистр | По умолчанию Excel игнорирует регистр | Использовать функцию НАЙТИ или Power Query с Comparer.Ordinal |
7. Продвинутые техники: фильтрация с регулярными выражениями
Если нужно искать слова по шаблону (например, все слова, начинающиеся на "эко-"), в Excel нет встроенной поддержки регулярных выражений (regex). Однако есть обходные пути:
Способ 1. Power Query с функцией Text.Select
В Power Query можно использовать простые шаблоны:
Text.StartsWith([Название], "эко-") ' Начинается с "эко-"
Text.Contains([Название], "премиум") ' Содержит "премиум"
Text.EndsWith([Название], "-2026") ' Заканчивается на "-2026"
Способ 2. VBA с регулярными выражениями
Для сложных шаблонов напишите макрос с объектом RegExp:
Sub FilterByRegex()
Dim regex As Object, cell As Range
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "^эко-.*" ' Шаблон: начинается с "эко-"
For Each cell In Range("A2:A100")
If Not regex.Test(cell.Value) Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
Способ 3. Формулы с подстановочными знаками
Для простых шаблонов используйте подстановочные знаки в комбинации с ПОИСК:
- 🔹
=ПОИСК("эко-"; A2)— ищет слово, начинающееся на "эко-"*. - 🔹
=ПОИСК("премиум"; A2)— ищет слово, заканчивающееся на "премиум"*.
Пример сложного шаблона в VBA
Чтобы найти все ячейки, содержащие слова из 5 букв, начинающиеся на "а" и заканчивающиеся на "я" (например, "армия"), используйте шаблон:
regex.Pattern = "\bа\w{3}я\b"
Где:
- \b — граница слова,
- а — начинается на "а",
- \w{3} — любые 3 символа,
- я — заканчивается на "я".
FAQ: Ответы на частые вопросы
Можно ли в Excel сделать фильтр по нескольким словам одновременно (например, "кофе" И "молоко")?
Да, для этого используйте расширенный фильтр:
- Создайте диапазон условий с заголовками столбцов.
- В одной строке укажите оба слова (например, в
A2: "кофе", вB2: "молоко"). - Примените расширенный фильтр — он вернёт строки, где выполняются оба условия (логическое
И).
Для логического ИЛИ разместите слова в разных строках.
Почему фильтр не находит слово, если оно точно есть в таблице?
Вероятные причины:
- 📌 В ячейке есть неразрывный пробел (вставляется через
Ctrl+Shift+Пробел). Замените его на обычный пробел функцией=ЗАМЕНИТЬ(A2; СИМВОЛ(160); " "). - 📌 Слово содержит скрытые символы (табуляцию, перевод строки). Используйте
=ПЕЧСИМВ(A2). - 📌 Фильтр применён к не тому столбцу. Проверьте диапазон.
Как сохранить отфильтрованные данные в новый лист?
Есть два способа:
Способ 1. Расширенный фильтр:
- На вкладке
ДанныевыберитеРасширенный фильтр. - Укажите исходный диапазон и диапазон условий.
- Выберите опцию
Скопировать результат в другое местои укажите ячейку на новом листе (например,Лист2!A1).
Способ 2. Power Query:
- Загрузите данные в Power Query.
- Отфильтруйте нужные строки.
- В меню
Закрыть и загрузитьвыберитеВ новую таблицуи укажите другой лист.
Можно ли сделать фильтр по словам в Google Таблицах?
Да, в Google Sheets фильтрация по словам работает аналогично Excel:
- Выделите таблицу →
Данные→Создать фильтр. - Нажмите на иконку фильтра в столбце →
Текст содержит→ введите слово.
Для расширенной фильтрации используйте функцию FILTER:
=FILTER(A2:B100; REGEXMATCH(A2:A100; "кофе|чай"))
Отличие от Excel: в Google Sheets есть встроенная поддержка регулярных выражений через REGEXMATCH.
Как убрать фильтр по словам и вернуть все данные?
Чтобы сбросить фильтр:
- 📌 Для автофильтра: нажмите на стрелку фильтра в столбце →
Удалить фильтрили перейдите на вкладкуДанные→Очистить. - 📌 Для расширенного фильтра: удалите диапазон условий или нажмите
Данные→Очистить. - 📌 Для Power Query: обновите запрос или удалите шаг фильтрации в редакторе.
Если данные скрыты (а не отфильтрованы), выделите таблицу → правая кнопка → Показать строки.