Работа с большими массивами данных в Microsoft Excel часто требует поиска нескольких значений одновременно — будь то список товаров по артикулам, сотрудники по отделам или финансовые показатели за несколько периодов. Вручную искать каждое значение неэффективно, особенно когда речь идёт о тысячах строк. К счастью, в Excel есть как минимум 7 способов решить эту задачу — от базовых инструментов до продвинутых формул и надстроек.
В этой статье мы разберём каждый метод подробно: когда его применять, какие подводные камни ждут новичков, и как автоматизировать процесс для регулярного использования. Вы узнаете, как найти несколько значений в одном столбце, выделить их цветом, извлечь в отдельный список и даже сравнить данные из разных таблиц. Все примеры протестированы в Excel 2019–2023 и Microsoft 365, но большинство способов работают и в старых версиях.
Если вы торопитесь — воспользуйтесь FAQ в конце статьи, где мы собрали ответы на самые частые вопросы. Для глубокого погружения читайте далее: от простого к сложному.
1. Поиск через стандартный фильтр (самый простой способ)
Фильтр — это первый инструмент, к которому стоит обратиться, если нужно быстро найти несколько значений в столбце. Он не требует знания формул и работает даже в самых старых версиях Excel.
Как применить:
- Выделите заголовок столбца (или любую ячейку в таблице).
- Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелочку в заголовке столбца и выберите
Текстовые фильтры→Равно...(илиЧисловые фильтры, если ищете числа). - В выпадающем списке выберите
илии добавьте все нужные значения.
Преимущества метода:
- ⚡ Быстрота — подходит для разовых задач.
- 🔄 Гибкость — можно комбинировать условия (
И/ИЛИ). - 📊 Визуальность — отфильтрованные данные остаются в контексте таблицы.
⚠️ Внимание: Фильтр скрывает строки, но не удаляет их. Если вы скопируете отфильтрованные данные, в буфер обмена попадут только видимые ячейки. Чтобы избежать ошибок, всегда проверяйте количество строк после фильтрации.
Пример: вам нужно найти всех сотрудников из отделов "Маркетинг" и "Продажи". Фильтр справится с этой задачей за 3 клика, тогда как формулы потребуют дополнительных столбцов или массивов.
2. Условное форматирование для визуального поиска
Если цель — не столько извлечь данные, сколько выделить их цветом для быстрого визуального анализа, подойдёт условное форматирование. Этот метод идеален для отчётов, где важно сразу увидеть ключевые значения.
Алгоритм действий:
- Выделите диапазон данных (например,
A2:A100). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - В поле "Форматировать только ячейки с" укажите
Значение→равнои введите первое искомое значение. - Нажмите
Формат, выберите цвет заливки и нажмитеОК. - Повторите шаги 2–5 для каждого дополнительного значения.
Совет: чтобы не создавать правило для каждого значения отдельно, используйте формулу в условном форматировании. Например, для поиска значений "Да" и "Нет" в столбце B:
=ИЛИ(B2="Да"; B2="Нет")
Преимущества:
- 🎨 Наглядность — выделенные цвета сразу бросаются в глаза.
- 🔄 Динамичность — форматирование обновляется автоматически при изменении данных.
- 📌 Гибкость — можно комбинировать условия (например, выделить значения >100 и содержащие текст "Ургентно").
⚠️ Внимание: Условное форматирование не изменяет сами данные, а только их отображение. Если вы экспортируете таблицу в PDF или печатаете, цвета сохранятся, но в других форматах (например, CSV) — нет.
3. Формулы для поиска нескольких значений (VLOOKUP, XLOOKUP, INDEX+MATCH)
Когда нужно не просто найти, а извлечь данные в отдельный список (например, для дальнейшего анализа), на помощь приходят формулы. Рассмотрим три самых эффективных подхода.
3.1. VLOOKUP для поиска по одному критерию
VLOOKUP — классическая формула для вертикального поиска, но она имеет ограничение: ищет только одно значение за раз. Однако её можно обернуть в IFERROR или CHOOSEROWS (в новых версиях Excel), чтобы обработать несколько критериев.
Пример: найти цену для артикулов "A100" и "B200" из таблицы:
=ЕСЛИОШИБКА(ВПР("A100"; A2:B100; 2; ЛОЖЬ); ВПР("B200"; A2:B100; 2; ЛОЖЬ))
3.2. XLOOKUP — современная альтернатива
XLOOKUP (доступен с Excel 2019 и Microsoft 365) лишён многих недостатков VLOOKUP. Он умеет искать в любом направлении и возвращать несколько результатов через массив.
Пример: извлечь все цены для списка артикулов в диапазоне D2:D5:
=XLOOKUP(D2:D5; A2:A100; B2:B100; "Не найдено"; 0; 1)
3.3. INDEX+MATCH для сложных условий
Комбинация INDEX+MATCH — самая гибкая. Она позволяет искать по нескольким критериям одновременно (например, найти цену товара "A100" в регионе "Москва").
Пример: найти значение на пересечении строки с "A100" и столбца "Цена":
=ИНДЕКС(B2:D100; ПОИСКПОЗ("A100"; A2:A100; 0); ПОИСКПОЗ("Цена"; B1:D1; 0))
Сравнение формул:
| Формула | Поддержка нескольких критериев | Направление поиска | Обработка ошибок | Совместимость |
|---|---|---|---|---|
VLOOKUP | ❌ Нет | Только влево→вправо | Требует IFERROR | Все версии |
XLOOKUP | ✅ Да (через массивы) | Любое | Встроенная | Excel 2019+ |
INDEX+MATCH | ✅ Да | Любое | Требует IFERROR | Все версии |
⚠️ Внимание: Формулы массива (например,XLOOKUPс диапазоном) в старых версиях Excel требуют подтверждения клавишамиCtrl+Shift+Enter. В новых версиях это не нужно.
☑️ Подготовка к использованию формул
4. Функция FILTER (динамический поиск в Excel 365)
Функция FILTER — революционное novelty для пользователей Excel 365, которое позволяет извлекать несколько значений по критериям без вспомогательных столбцов. Она возвращает динамический массив, который автоматически обновляется при изменении исходных данных.
Синтаксис:
=FILTER(диапазон_для_фильтрации; (условие1) * (условие2); "Сообщение_если_ничего_не_найдено")
Примеры использования:
- 📋 Извлечь все строки, где в столбце
Aзначение "Да", а в столбцеB> 100:=FILTER(A2:C100; (A2:A100="Да") * (B2:B100>100); "Нет данных") - 🔍 Найти сотрудников из отдела "IT" с зарплатой > 50 000:
=FILTER(Table1; (Table1[Отдел]="IT") * (Table1[Зарплата]>50000); "")
Преимущества FILTER:
- 🔄 Динамичность — результат обновляется в реальном времени.
- 📊 Совместимость с другими функциями массива (например,
SORT,UNIQUE). - 🚀 Производительность — работает быстрее, чем
VLOOKUPв больших таблицах.
Ограничения:
- ❌ Доступна только в Excel 365 и Excel 2021.
- ❌ Не работает с закрытыми книгами (требуется открытый файл).
Как обойти ограничение FILTER в старых версиях Excel?
В Excel 2016 и ранее можно эмулировать FILTER с помощью комбинации INDEX + AGGREGATE. Например:
=ИНДЕКС($A$2:$C$100; НАИМЕНЬШИЙ(ЕСЛИ(($A$2:$A$100="Да")*($B$2:$B$100>100); СТРОКА($A$2:$A$100)-1); СТРОКА(A1)); )
Важно: это формула массива — подтверждайте её Ctrl+Shift+Enter.5. Power Query для сложного поиска и трансформации данных
Если вам нужно не только найти несколько значений, но и преобразовать их (например, объединить данные из разных файлов, очистить дубликаты или изменить формат), Power Query — идеальный инструмент. Он встроен в Excel с 2016 года и доступен через вкладку Данные → Получить данные.
Пошаговая инструкция:
- Выделите исходную таблицу и нажмите
Данные→Из таблицы/диапазона(илиПолучить данные→Из файла, если данные внешние). - В открывшемся редакторе Power Query выберите столбец, по которому нужно фильтровать.
- Нажмите на стрелочку в заголовке столбца и снимите галочки со всех значений, кроме нужных (или используйте
Текстовые фильтры→Равно). - При необходимости добавьте дополнительные шаги трансформации (например, удаление столбцов, замена значений).
- Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Преимущества Power Query:
- 🔄 Автоматизация — запрос можно обновлять одним кликом (
Данные→Обновить все). - 📂 Работа с большими данными — обрабатывает миллионы строк без тормозов.
- 🔗 Объединение источников — можно связать данные из Excel, CSV, баз данных или API.
Пример: вам нужно найти все заказы клиента "Иванов" за 2023 год из таблицы в 50 000 строк. В Power Query это займёт 2–3 минуты, тогда как формулы или фильтры могут зависнуть.
⚠️ Внимание: После загрузки данных через Power Query они становятся статичными. Чтобы обновить результаты при изменении исходной таблицы, используйте кнопкуОбновить всеили настройте автоматическое обновление (Свойства связи→Обновлять каждые N минут).
6. Поиск с помощью сводных таблиц
Сводные таблицы часто ассоциируются с агрегацией данных (суммы, средние), но они также отлично подходят для поиска нескольких значений с группировкой. Например, можно быстро увидеть все продажи по выбранным регионам или категориям товаров.
Как настроить:
- Выделите исходную таблицу (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица. - В открывшемся окне выберите, куда поместить сводную таблицу (на новый лист или в текущий).
- В панели
Поля сводной таблицыперетащите нужный столбец в областьСтроки(например, "Категория"). - Нажмите на стрелочку рядом с названием поля и выберите только те значения, которые нужно отобразить (например, "Электроника" и "Одежда").
- При необходимости добавьте другие поля в
Значения(например, сумму продаж).
Преимущества:
- 📊 Интерактивность — можно разворачивать/сворачивать группы данных.
- 🔍 Фильтрация на лету — достаточно снять/поставить галочки в списке значений.
- 📈 Визуализация — данные можно сразу преобразовать в диаграмму.
Пример: у вас есть таблица продаж с колонками "Регион", "Товар", "Сумма". С помощью сводной таблицы за 30 секунд можно увидеть суммарные продажи по товарам "Ноутбук" и "Смартфон" в регионах "Москва" и "Санкт-Петербург".
Совет: чтобы сохранить фильтрацию для будущего использования, настройте Срезы (Анализ сводной таблицы → Вставить срез). Они позволяют быстро переключаться между наборами значений.
7. Макросы и VBA для автоматизации поиска
Если вам регулярно приходится искать несколько значений по сложным критериям, имеет смысл автоматизировать процесс с помощью VBA. Например, можно написать макрос, который:
- Ищет значения из списка в другом листе.
- Копирует найденные строки в новую таблицу.
- Отправляет результаты по email.
Пример кода для поиска нескольких значений в столбце A и копирования соответствующих строк в лист Результаты:
Sub FindMultipleValues()
Dim wsSource As Worksheet, wsResult As Worksheet
Dim searchRange As Range, cell As Range
Dim searchValues As Variant, i As Long
Dim lastRow As Long, pasteRow As Long
' Настройте здесь
Set wsSource = ThisWorkbook.Sheets("Данные") ' Лист с исходными данными
Set wsResult = ThisWorkbook.Sheets("Результаты") ' Лист для результатов
searchValues = Array("Значение1", "Значение2", "Значение3") ' Что искать
' Очистка листа с результатами
wsResult.Cells.ClearContents
' Поиск и копирование
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
Set searchRange = wsSource.Range("A2:A" & lastRow)
pasteRow = 1
For Each cell In searchRange
For i = LBound(searchValues) To UBound(searchValues)
If cell.Value = searchValues(i) Then
cell.EntireRow.Copy wsResult.Cells(pasteRow, 1)
pasteRow = pasteRow + 1
Exit For
End If
Next i
Next cell
MsgBox "Поиск завершён! Найдено " & pasteRow - 1 & " строк.", vbInformation
End Sub
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Настройте имена листов и искомые значения в массиве
searchValues. - Запустите макрос нажатием
F5.
Преимущества VBA:
- ⚡ Скорость — обрабатывает большие данные быстрее, чем формулы.
- 🤖 Автоматизация — можно запускать по расписанию или по событию (например, при открытии файла).
- 📂 Гибкость — можно интегрировать с другими офисными приложениями (например, отправлять результаты в Outlook).
⚠️ Внимание: Перед запуском макроса сохраните файл в формате.xlsm(с поддержкой макросов) и убедитесь, что в настройках безопасности разрешено выполнение макросов (Файл→Параметры→Центр управления безопасностью→Параметры центра...→Настройки макросов).
FAQ: Частые вопросы о поиске нескольких значений в Excel
Можно ли искать несколько значений в Google Таблицах?
Да, все описанные методы (кроме Power Query и VBA) работают и в Google Sheets. Вместо FILTER в Excel 365 там используется =FILTER(A2:B100; REGEXMATCH(A2:A100; "Значение1|Значение2")). Также в Google Таблицах есть аналог XLOOKUP — =XLOOKUP (с 2020 года).
Как найти несколько значений в Excel Online?
В веб-версии Excel доступны фильтры, условное форматирование и базовые формулы (VLOOKUP, INDEX+MATCH). Функции FILTER и XLOOKUP работают только в Excel 365 на настольных ПК. Power Query и VBA в онлайн-версии недоступны.
Почему VLOOKUP не находит несколько значений?
VLOOKUP возвращает только первое найденное значение. Чтобы извлечь все совпадения, используйте:
- Формулу массива с
INDEX+SMALL(для старых версий Excel). - Функцию
FILTER(Excel 365). - Сводную таблицу или Power Query.
Как искать значения с учётом регистра?
Excel по умолчанию игнорирует регистр при поиске. Чтобы учитывать регистр:
- Используйте формулу
=EXACT(A2; "Текст")в условном форматировании. - В Power Query добавьте столбец с функцией
Text.LowerилиText.Upperдля нормализации данных. - В VBA используйте
StrComp(cell.Value, "Текст", vbBinaryCompare) = 0.
Можно ли искать значения по частичному совпадению?
Да, для этого используйте подстановочные знаки:
- В фильтрах: введите
часть_текста(например,овнайдёт "Иванов", "Петров"). - В формулах:
=XLOOKUP("" & D2 & ""; A2:A100; B2:B100). - В Power Query:
Text.Contains([Столбец], "часть_текста").