Как в Excel искать сразу несколько значений: 7 работающих методов

Почему стандартный поиск в Excel не подходит для нескольких значений

Вы когда-нибудь пытались найти в таблице сразу несколько фамилий, артикулов или дат? Стандартный поиск по Ctrl+F в Microsoft Excel ищет только одно значение за раз — и это раздражает. Представьте: у вас список из 10 000 строк, а нужно выделить все записи с 50 разными кодами товаров. Перебирать их по одному? Это займёт часы.

Проблема в том, что Excel не оптимизирован для множественного поиска по умолчанию. Но есть обходные пути — от простых фильтров до сложных формул и надстроек. В этой статье разберём 7 методов, которые сэкономят вам время, нервы и избавят от рутинной работы. Некоторые из них работают даже в Excel Online и Google Таблицах.

Важно: не все способы одинаково эффективны для больших данных. Например, условное форматирование может тормозить на таблицах с 50 000+ строк, а Power Query потребует изучения. Мы отметим плюсы и минусы каждого метода, чтобы вы выбрали оптимальный.

Метод 1: Фильтр по нескольким значениям (самый простой способ)

Если вам нужно временно скрыть все строки, кроме тех, что содержат одно из искомых значений, используйте расширенный фильтр. Это работает в Excel 2010–2023 и не требует формул.

Алгоритм:

  • 📌 Создайте отдельный столбец (например, Z1:Z10) и впишите туда все искомые значения — каждое в отдельной ячейке.
  • 🔍 Выделите исходную таблицу (включая заголовки). Перейдите на вкладку Данные → Фильтр → Расширенный фильтр.
  • 📋 В поле Диапазон условий укажите адрес столбца со значениями (например, $Z$1:$Z$10). Отметьте Скопировать результат в другое место, если нужно сохранить отфильтрованные данные.

Преимущество метода: не требует знания формул и сохраняет исходные данные. Минус — фильтр приходится настраивать заново при изменении списка значений.

📊 Какой версии Excel вы пользуетесь?
Excel 2016 или старше
Excel 2019/2021
Excel 365 (подписка)
Google Таблицы
Другая
⚠️ Внимание: Если в диапазоне условий есть пустые ячейки, Excel проигнорирует их, но фильтр будет работать медленнее. Удаляйте лишние строки перед применением.

Метод 2: Условное форматирование для визуального поиска

Когда нужно подсветить все ячейки с несколькими значениями (например, выделить красным все строки с определёнными кодами ошибок), используйте условное форматирование с формулой. Этот способ нагляден и позволяет быстро сканировать большие таблицы.

Инструкция:

  1. Выделите диапазон, где будет применяться форматирование (например, A2:A1000).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    =ИЛИ($A2="Значение1"; $A2="Значение2"; $A2="Значение3")

    Замените Значение1, Значение2 на свои данные.

  5. Задайте цвет заполнения (например, жёлтый) и нажмите ОК.

Для динамического списка значений (если они хранятся в другом диапазоне, например D2:D10) используйте формулу массива:

=СЧЁТЕСЛИ($D$2:$D$10; $A2)>0

Это автоматически подсветит все ячейки, которые совпадают хотя бы с одним значением из списка.

СпособПлюсыМинусы
ФильтрПростота, не требует формулНужно настраивать заново при изменении данных
Условное форматированиеВизуально наглядно, работает автоматическиТормозит на больших таблицах (>50 000 строк)
Формулы (СЧЁТЕСЛИМН, ВПР)Гибкость, можно комбинировать с другими функциямиСложно для новичков

Метод 3: Формулы для поиска нескольких значений (СЧЁТЕСЛИМН, ЕСЛИ+ИЛИ)

Когда нужно не просто найти, а проанализировать данные (например, посчитать количество строк с несколькими критериями), используйте формулы. Рассмотрим два варианта:

Вариант 1: Простая проверка (ЕСЛИ + ИЛИ)

Если вам нужно проверить, содержится ли значение в списке, и вывести результат в соседнем столбце (например, "Да"/"Нет"), используйте:

=ЕСЛИ(ИЛИ(A2="Значение1"; A2="Значение2"); "Да"; "Нет")

Вариант 2: Подсчёт совпадений (СЧЁТЕСЛИМН)

Чтобы посчитать, сколько раз встречаются одновременно несколько значений в разных столбцах (например, "Мужчины старше 30 лет из Москвы"), используйте:

=СЧЁТЕСЛИМН(B2:B100; "Муж"; C2:C100; ">30"; D2:D100; "Москва")

Для поиска любого из нескольких значений в одном столбце комбинируйте СЧЁТЕСЛИ с суммированием:

=СУММ(СЧЁТЕСЛИ(A2:A100; {"Значение1"; "Значение2"; "Значение3"}))
⚠️ Внимание: Формулы массива (как в последнем примере) в старых версиях Excel (до 2019) требуют подтверждения клавишами Ctrl+Shift+Enter. В Excel 365 это не нужно.

Метод 4: Power Query для сложных поисков (продвинутый уровень)

Если вы работаете с большими данными (100 000+ строк) или нужно искать значения по частичному совпадению (например, все email с доменом @gmail.com), Power Query станет вашим спасением. Этот инструмент встроен в Excel 2016+ и позволяет:

  • 🔄 Фильтровать данные по нескольким критериям одновременно.
  • 🔍 Искать по регулярным выражениям (например, все артикулы, начинающиеся на ART-).
  • 📊 Объединять данные из разных источников (Excel, CSV, базы данных).

Пример: как отфильтровать таблицу по 10 кодам товаров:

  1. Выделите исходную таблицу → Данные → Из таблицы/диапазонаExcel 2016–2019 или Данные → Получить данные → Из таблицы/диапазона в Excel 365).
  2. В открывшемся редакторе Power Query выберите столбец для фильтрации → Фильтр по условию → Равно.
  3. В поле фильтра введите первое значение, затем нажмите Добавить в фильтр и выберите Или, чтобы добавить остальные.
  4. Нажмите Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.

Power Query — единственный метод, который не тормозит на таблицах с миллионами строк и позволяет сохранять шаги фильтрации для повторного использования.

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

В Power Query перейдите в Добавить столбец → Пользовательский столбец и используйте функцию Text.Select или Text.Contains с регулярными выражениями. Например, чтобы найти все ячейки с буквами "АБ" в любом регистре, используйте формулу:

= Table.SelectRows(#"Предыдущий шаг", each Text.Contains(Text.Upper([Столбец]), "АБ"))

Метод 5: Поиск с помощью сводных таблиц

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

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

  1. Выделите исходные данные → Вставка → Сводная таблица.
  2. В поле Строки перетащите столбец, по которому нужно искать (например, "Категория товара").
  3. В поле Фильтры перетащите тот же столбец, затем нажмите на стрелочку фильтра и выберите нужные значения (можно несколько, удерживая Ctrl).
  4. В поле Значения добавьте столбец для анализа (например, "Сумма продаж").

Преимущество: сводные таблицы автоматически обновляются при изменении исходных данных. Минус: не подходит, если нужно выделить или скопировать найденные строки в отдельную таблицу.

Убедитесь, что в таблице нет пустых строк или столбцов

Преобразуйте данные в "умную таблицу" (Ctrl+T)

Проверьте, что заголовки столбцов уникальны

Удалите объединённые ячейки (они мешают сводным таблицам)

-->

Метод 6: Поиск по частичному совпадению (подстановочные знаки)

Что делать, если нужно найти все ячейки, которые содержат определённую подстроку (например, все email с доменом @company.com или артикулы, начинающиеся на PR-)? Здесь помогут подстановочные знаки:

  • (звёздочка) — заменяет любое количество символов. Например, @gmail.com найдёт все email с этим доменом.
  • ? (вопросительный знак) — заменяет один символ. Например, А??1 найдёт АБВ1, А121 и т.д.
  • ~ (тильда) — экранирует подстановочные знаки. Например, чтобы найти именно , используйте ~.

Как применить:

  1. Нажмите Ctrl+F (поиск) или Ctrl+H (замена).
  2. В поле Найти введите шаблон, например отчёт (найдёт все ячейки со словом "отчёт").
  3. Для фильтрации используйте формулу:
    =ЕСЛИ(ЕЧИСЛО(ПОИСК("gmail"; A2)); "Да"; "Нет")

    Она вернёт "Да", если в ячейке A2 есть подстрока gmail.

⚠️ Внимание: Функция ПОИСК чувствительна к регистру. Чтобы игнорировать регистр, используйте НАЙТИ или преобразуйте текст в верхний регистр: =ПОИСК("GMAIL"; ВЕРХНИЙРЕГ(A2)).

Метод 7: Надстройки и макросы для автоматизации

Если вам регулярно приходится искать сотни значений, ручные методы станут тормозом. В этом случае помогут:

  • 🤖 Макросы VBA: напишите скрипт, который будет автоматически фильтровать данные по списку значений из другого листа.
  • 📦 Надстройки: например, Kutools for Excel имеет инструмент Select Specific Cells, который умеет искать по нескольким критериям.
  • 🔧 Google Apps Script: если работаете в Google Таблицах, можно написать скрипт для поиска по массиву значений.

Пример макроса для поиска и выделения ячеек:

Sub FindMultipleValues()

Dim SearchRange As Range, Cell As Range, i As Long

Dim SearchValues As Variant

' Укажите диапазон поиска и значения для поиска

Set SearchRange = Sheets("Лист1").Range("A1:A1000")

SearchValues = Array("Значение1", "Значение2", "Значение3")

' Очистка предыдущего выделения

Cells.Interior.ColorIndex = 0

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

For Each Cell In SearchRange

For i = LBound(SearchValues) To UBound(SearchValues)

If InStr(1, Cell.Value, SearchValues(i), vbTextCompare) > 0 Then

Cell.Interior.Color = RGB(255, 255, 0) ' Жёлтый цвет

Exit For

End If

Next i

Next Cell

End Sub

Чтобы использовать этот макрос:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Измените Sheets("Лист1").Range("A1:A1000") на ваш диапазон и список значений в SearchValues.
  4. Запустите макрос клавишей F5.

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

Можно ли искать несколько значений в Google Таблицах?

Да, все методы, кроме Power Query и макросов VBA, работают в Google Таблицах. Для условного форматирования используйте ту же формулу =OR(A2="Значение1", A2="Значение2"). Для фильтрации — Данные → Фильтр → Фильтр по условию → Пользовательский формула и введите:

=REGEXMATCH(A2; "Значение1|Значение2")

Это аналог ИЛИ с поддержкой регулярных выражений.

Как искать значения в разных листах или книгах?

Используйте трёхмерные ссылки или ВПР/ИНДЕКС. Например, чтобы проверить, есть ли значение из Лист2!A1:A10 в Лист1!B2:B100, используйте:

=СУММПРОИЗВ(--(СЧЁТЕСЛИ(Лист2!$A$1:$A$10; Лист1!B2:B100)>0))

Для поиска в другой книге укажите её имя в ссылке: [Книга1.xlsx]Лист1!$A$1.

Почему Excel не находит значения, которые точно есть в таблице?

Причины могут быть следующими:

  • 🔍 В ячейках есть непечатаемые символы (пробелы, переносы строк). Используйте =ПЕЧСИМВ(A2), чтобы их убрать.
  • 📏 Данные хранятся как текст, а ищете как числа (или наоборот). Проверьте формат ячеек.
  • 🔠 Включён режим подстановки (например, в сводных таблицах). Отключите его в настройках.
Как сохранить результаты поиска в отдельный файл?

Способы:

  1. Используйте расширенный фильтр с опцией Скопировать результат в другое место (см. Метод 1), затем скопируйте данные в новую книгу.
  2. В Power Query после фильтрации нажмите Закрыть и загрузить в... и выберите Новая книга.
  3. Напишите макрос, который создаст новую книгу и скопирует туда отфильтрованные данные:
    Workbooks.Add
    

    ActiveSheet.Range("A1").CurrentRegion.Value = _

    Sheets("Лист1").Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Value

Какой метод самый быстрый для таблиц с 100 000+ строк?

По скорости работы методы ранжируются так:

  1. Power Query — оптимизирован для больших данных, работает почти мгновенно.
  2. Сводные таблицы — быстрые, но не гибкие для сложных критериев.
  3. Формулы массива (например, СЧЁТЕСЛИМН) — тормозят при 50 000+ строк.
  4. Условное форматирование — самое медленное для больших диапазонов.

Для максимальной производительности комбинируйте Power Query с фильтрацией на уровне источника данных (например, импортируйте только нужные столбцы).