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

При работе с большими таблицами в Microsoft Excel часто требуется извлечь строки, содержащие конкретное слово или фразу. Например, вы можете искать все заказы с пометкой «срочно», клиентов из определенного города или товары с конкретной характеристикой. Если стандартный поиск (Ctrl+F) просто показывает местоположение слова, то выборка данных позволяет создать отдельный отфильтрованный список — без ручного копирования каждой строки.

В этой статье разберем 5 рабочих методов: от базовых фильтров до автоматизированных решений с Power Query и VBA. Вы узнаете, как сделать выборку по частичному или полному совпадению, учитывая регистр, а также как сохранить результаты в новую таблицу. Все инструкции адаптированы для Excel 2016–2023 и Microsoft 365.

1. Быстрая выборка с помощью стандартного фильтра

Самый простой способ отфильтровать данные по ключевому слову — использовать встроенный автофильтр. Он подходит для одноразовых задач и не требует знания формул. Рассмотрим пошагово:

1. Выделите заголовок столбца, по которому будет вестись поиск (например, столбец B с названиями товаров).

2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).

3. Кликните по стрелке фильтра в заголовке столбца и выберите Текстовые фильтрыСодержит....

4. В появившемся окне введите искомое слово (например, «ноутбук») и нажмите ОК.

Excel скрывает все строки, кроме тех, что содержат указанное слово. Чтобы скопировать отфильтрованные данные в новую таблицу:

  • 📋 Выделите видимые строки (исключая заголовки).
  • 🖱️ Кликните правой кнопкой → Копировать.
  • 📄 Вставьте на новый лист (Ctrl+N для создания).
⚠️ Внимание: Фильтр учитывает регистр только в Excel 365 с включенной настройкой Файл → Параметры → Дополнительно → Учитывать регистр при сортировке и поиске. В остальных версиях «Ноутбук» и «ноутбук» будут восприняты как одинаковые слова.

2. Формулы для динамической выборки (INDEX, FILTER, AGGREGATE)

Фильтры скрывают данные, но не создают новый список. Чтобы автоматически извлечь строки с искомым словом в отдельную таблицу, используйте формулы. Рассмотрим три варианта:

2.1. Функция FILTER (Excel 365 и 2021)

Самый современный способ — функция =FILTER(). Она возвращает динамический массив строк, соответствующих условию:

=FILTER(A2:D100; ISNUMBER(SEARCH("слово"; B2:B100)))

Где:

  • A2:D100 — диапазон исходных данных (включая заголовки).
  • B2:B100 — столбец, в котором ищем слово.
  • SEARCH — ищет слово без учета регистра (замените на FIND для учета регистра).

2.2. Комбинация INDEX + AGGREGATE (для старых версий)

Если у вас Excel 2016 или старше, используйте:

=INDEX($A$2:$D$100; AGGREGATE(15; 6; ROW($A$2:$A$100)-1/ISNUMBER(SEARCH("слово"; $B$2:$B$100)); ROW(A1)); COLUMN(A1))

Эта формула массива требует подтверждения Ctrl+Shift+Enter (в новых версиях вводится как обычная).

Метод Подходит для Учитывает регистр Динамический результат
FILTER Excel 365/2021 Нет (с SEARCH) Да
INDEX+AGGREGATE Excel 2010–2019 Нет Нет (требует Ctrl+Shift+Enter)
Автофильтр Все версии Опционально Нет
Как сделать выборку по нескольким словам одновременно?

Используйте формулу с SEARCH для каждого слова, объединив условия через * (умножение):

=FILTER(A2:D100; ISNUMBER(SEARCH("слово1"; B2:B100)) * ISNUMBER(SEARCH("слово2"; C2:C100)))

Эта формула вернет строки, где в столбце B есть «слово1», а в столбце C — «слово2».

3. Power Query: профессиональная выборка с сохранением

Power Query (или Get & Transform в Excel 2016+) — мощный инструмент для обработки данных, позволяющий создавать повторяемые выборки. Преимущества метода:

  • 🔄 Автоматическое обновление при изменении исходных данных.
  • 📊 Возможность объединять данные из нескольких источников.
  • 🛠️ Сохранение шагов обработки для повторного использования.

Инструкция по созданию выборки:

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

Теперь при обновлении исходных данных (Данные → Обновить все) выборка будет пересчитываться автоматически.

📊 Какой метод выборки вы используете чаще?
Автофильтр
Формулы (FILTER/INDEX)
Power Query
VBA-макросы

4. Макросы VBA для автоматизации выборки

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

Sub ВыборкаПоСлову()

Dim wsSource As Worksheet, wsResult As Worksheet

Dim rng As Range, cell As Range, i As Long

Dim searchWord As String, lastRow As Long

searchWord = InputBox("Введите слово для поиска:", "Выборка данных")

If searchWord = "" Then Exit Sub

Set wsSource = ActiveSheet

lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row

Set rng = wsSource.Range("A1:D" & lastRow) ' Диапазон данных

' Создаем новый лист для результатов

On Error Resume Next

Application.DisplayAlerts = False

Sheets("Результаты").Delete

Application.DisplayAlerts = True

On Error GoTo 0

Set wsResult = Sheets.Add(After:=Sheets(Sheets.Count))

wsResult.Name = "Результаты"

' Копируем заголовки

wsSource.Rows(1).Copy wsResult.Rows(1)

' Поиск и копирование строк

i = 2

For Each cell In wsSource.Range("B2:B" & lastRow) ' Столбец B

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

wsSource.Rows(cell.Row).Copy wsResult.Rows(i)

i = i + 1

End If

Next cell

MsgBox "Выборка завершена! Найдено " & i - 2 & " строк.", vbInformation

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Запустите макрос через F5 или кнопку на панели.
⚠️ Внимание: Макрос ищет слово без учета регистра (vbTextCompare). Чтобы учитывать регистр, замените InStr(1, cell.Value, searchWord, vbTextCompare) на InStr(1, cell.Value, searchWord, vbBinaryCompare).

🔹 Включите макросы в Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы (временное решение).

🔹 Сохраните файл как .xlsm (с поддержкой макросов).

🔹 Проверьте, что в столбце B нет объединенных ячеек — они могут вызвать ошибку.

🔹 Запускайте макрос на копии данных, если работаете с важной информацией.-->

5. Выборка с учетом регистра и специальных символов

По умолчанию SEARCH и автофильтр игнорируют регистр. Если нужно найти точное совпадение (например, «iPhone», но не «iphone»), используйте:

  • 🔍 Функцию FIND вместо SEARCH в формулах:
    =FILTER(A2:D100; NOT(ISERROR(FIND("iPhone"; B2:B100))))
  • 📝 В Power Query: выберите Трансформировать → Формат → Регистр → Как есть перед фильтрацией.
  • 🖥️ В макросах: замените vbTextCompare на vbBinaryCompare (см. раздел 4).

Для поиска строк с специальными символами (например, «#», «@») экранируйте их в формулах с помощью ~:

=FILTER(A2:D100; ISNUMBER(SEARCH("~#"; B2:B100)))

6. Ошибки и решения при выборке данных

Даже простые операции могут давать сбои. Рассмотрим типичные проблемы и способы их устранения:

Проблема Вероятная причина Решение
Фильтр не находит слово, хотя оно есть в данных Лишние пробелы или непечатаемые символы Используйте =TRIM(B2) для очистки данных
Формула FILTER возвращает #CALC! Нет совпадений или ошибка в диапазоне Проверьте синтаксис и добавьте обработку ошибок: =IFERROR(FILTER(...); "Нет данных")
Макрос копирует пустые строки Диапазон lastRow определен неверно Замените End(xlUp) на Cells(Rows.Count, 1).End(xlUp).Row

Если выборка работает неправильно, выполните диагностику:

  1. Проверьте формат ячеек: текстовые данные не должны быть в формате Общий или Числовой.
  2. Убедитесь, что в столбце нет скрытых символов (нажмите Ctrl+H и замените ^l или ^p на ничего).
  3. Для Power Query обновите предварительный просмотр после каждого шага (Главная → Обновить просмотр).

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

Можно ли сделать выборку по части слова (например, найти все строки, где есть "ноут")?

Да, все описанные методы поддерживают частичное совпадение. Например, формула =FILTER(A2:D100; ISNUMBER(SEARCH("ноут"; B2:B100))) найдет «ноутбук», «ноутбуки», «ультрабук» и т.д. Чтобы искать только целые слова, используйте регулярные выражения в Power Query или VBA.

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

1. Выполните выборку любым методом (например, через автофильтр или FILTER).

2. Скопируйте результаты на новый лист.

3. Нажмите Файл → Сохранить как и выберите формат .xlsx или .csv.

Для Power Query: после загрузки данных нажмите на таблицу → Дизайн → Экспорт → Экспортировать в файл.

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

Функция FILTER доступна только в Excel 365 и Excel 2021. Для старых версий используйте альтернативы:

  • Комбинацию INDEX + AGGREGATE (см. раздел 2.2).
  • Пользовательскую функцию на VBA (см. раздел 4).

Проверьте версию Excel в Файл → Учетная запись → О программе Excel.

Как сделать выборку по слову в гугл-таблицах?

В Google Sheets используйте аналогичные методы:

  • Фильтр: Данные → Создать фильтр.
  • Формула: =FILTER(A2:D100; REGEXMATCH(B2:B100; "слово")).
  • App Script (аналог VBA): Tools → Script Editor.

Отличия от Excel:

  • SEARCH заменяется на REGEXMATCH (поддерживает регулярные выражения).
  • Нет Power Query, но есть QUERY для SQL-подобных запросов.