Фильтрация по фамилии в Excel: от простого к сложному

Работа с большими списками сотрудников, клиентов или студентов в Microsoft Excel часто требует быстрого поиска конкретных фамилий. Без правильной фильтрации вы тратите часы на ручное прокручивание тысяч строк или рискуете пропустить важные записи. Эта статья раскроет все способы фильтрации по фамилии — от элементарного автофильтра до продвинутых формул с частичным совпадением, включая обработку ошибок и работу с русскими фамилиями.

Мы разберём не только стандартные инструменты Excel 2019-2023 и Microsoft 365, но и малоизвестные приёмы: как фильтровать по первым буквам фамилии, исключать определённые фамилии или комбинировать фильтры с другими критериями (например, должностью или датой). Особое внимание уделим проблеме "невидимых символов" в фамилиях после импорта из 1С или баз данных — это частая причина, почему фильтр "не находит" очевидные совпадения.

1. Базовый автофильтр: быстрый поиск точных фамилий

Самый простой способ — использовать встроенный автофильтр. Он подходит для поиска точных совпадений фамилий (например, "Иванов" найдёт только "Иванов", но не "Иванова" или "Иванов-Смирнов").

Как включить:

  • 📌 Выделите любую ячейку в таблице с данными (например, в столбце A с фамилиями).
  • 🔧 Перейдите на вкладку Данные → нажмите Фильтр (или используйте горячие клавиши Ctrl+Shift+L).
  • 🔍 Нажмите на стрелку фильтра в заголовке столбца с фамилиями → выберите Текстовые фильтрыРавно....
  • ✏️ Введите нужную фамилию (регистр не важен) → ОК.

Если фамилия встречается многократно, Excel предложит выбрать её из выпадающего списка уже существующих значений. Это удобно для проверки правильности написания (например, "Петров" vs "Петровъ").

📊 Как часто вы фильтруете данные по фамилиям в Excel?
Ежедневно
Несколько раз в неделю
Редико
Никогда не пользовался
⚠️ Внимание: Автофильтр не учитывает пробелы в начале/конце ячейки. Если фильтр "не видит" фамилию, проверьте лишние символы с помощью функции =ПРОБЕЛЫ(A2).

2. Расширенный фильтр: поиск по части фамилии

Когда нужно найти все фамилии, начинающиеся на "Куз-" (например, "Кузнецов", "Кузьмин"), или содержащие "-ова" (например, "Петрова", "Сидорова"), используйте расширенный фильтр с подстановочными знаками:

  • 🔎 В строке поиска автофильтра выберите Текстовые фильтрыСодержит....
  • 📝 Введите фрагмент фамилии (например, ов* для поиска фамилий на "-ов").
  • 💡 Используйте * (любое количество символов) и ? (один символ). Пример: Ив?*в найдёт "Иванов" и "Ивлиев".

Для сложных условий (например, "фамилии на 'А' ИЛИ на 'Я'"):

  1. Скопируйте заголовки столбцов в отдельную область (например, в D1:E1).
  2. Под заголовком "Фамилия" введите критерии:
    =А*
    =Я*
  3. Перейдите в ДанныеРасширенный фильтр → укажите исходный диапазон и диапазон критериев.
Подстановочный знак Пример Что найдёт
* *ов Иванов, Петров, Сидоров
? Ив?нов Иванов, Игнов (но не Ивановский)
~ ~? Фамилии с знаком вопроса (например, "Д?мин")

3. Фильтрация с учётом регистра (чувствительность к заглавным буквам)

По умолчанию Excel игнорирует регистр при фильтрации ("иванов" = "Иванов"). Если нужно различать "Смирнов" и "смирнов" (актуально для импортированных данных), используйте формулу в расширенном фильтре:

Создайте столбец с формулой:

=ТОЧНО(A2;"Иванов")

где A2 — ячейка с фамилией, а "Иванов" — искомое значение с точным регистром.

Затем примените расширенный фильтр с критерием ИСТИНА в этом столбце. Альтернатива — Power QueryExcel 2016+), где можно настроить чувствительность к регистру при импорте данных.

⚠️ Внимание: Функция ТОЧНО вернёт ЛОЖЬ, если в ячейке есть невидимые символы (например, неразрывный пробел). Очистите данные функцией =ПЕЧСИМВ(A2).

4. Фильтрация по нескольким фамилиям одновременно

Чтобы отобразить записи только для фамилий "Иванов", "Петров" и "Сидоров", используйте один из методов:

Выделить нужные фамилии в выпадающем списке автофильтра (удерживая Ctrl)

Создать столбец с формулой =ИЛИ(A2="Иванов";A2="Петров";A2="Сидоров") и фильтровать по ИСТИНА

Использовать Power Query с фильтром Text.Filters.In

Применить условное форматирование для выделения нужных фамилий-->

Для больших списков (50+ фамилий) удобнее создать отдельный список фамилий в другом месте листа (например, в Z1:Z50) и использовать формулу:

=СЧЁТЕСЛИ($Z$1:$Z$50;A2)>0

Затем отфильтруйте по ИСТИНА.

Если фамилии хранятся в другой книге, используйте ДВССЫЛ:

=СЧЁТЕСЛИ(ДВССЫЛ("[Книга2.xlsx]Лист1!$A$1:$A$100");A2)>0

5. Продвинутые приёмы: фильтрация с ошибками и невидимыми символами

Частая проблема — фильтр "не видит" фамилию, хотя она есть в списке. Причины:

  • 🧹 Неразрывные пробелы (вставляются при копировании из Word или веб-страниц). Проверьте функцией =КОДСИМВ(ЛЕВСИМВ(A2;1)) — если результат 160, а не 32, замените на обычный пробел.
  • 🔤 Скрытые символы (табуляции, переводы строк). Используйте =ПЕЧСИМВ(A2) для очистки.
  • 📏 Лишние пробелы в начале/конце. Удалите функцией =СЖПРОБЕЛЫ(A2).

Автоматизируйте очистку с помощью Power Query:

  1. Выделите таблицу → ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query выберите столбец с фамилиями → ПреобразоватьОчиститьОбрезать.
  3. Добавьте пользовательский столбец с формулой =Text.Clean([Фамилия]) для удаления непечатаемых символов.
Как найти все "проблемные" фамилии в списке?

Создайте столбец с формулой:

=ЕСЛИ(ДЛСТР(СЖПРОБЕЛЫ(A2))<>ДЛСТР(A2);"Есть лишние пробелы";"ОК")

Отфильтруйте по "Есть лишние пробелы" и исправьте ошибки.

6. Фильтрация по фамилии с учётом дополнительных условий

Часто нужно фильтровать не только по фамилии, но и по другим критериям (например, "все Петровы из отдела маркетинга" или "Ивановы, принятые после 2020 года"). Для этого:

Способ 1. Последовательная фильтрация:

  1. Примените автофильтр по фамилии (например, "Иванов").
  2. Затем добавьте фильтр по второму столбцу (например, "Отдел" = "Маркетинг").

Способ 2. Расширенный фильтр с несколькими критериями:

Создайте область критериев:

Фамилия Отдел
Иванов Маркетинг
Петров Продажи

Затем в ДанныеРасширенный фильтр укажите эту область как диапазон критериев.

Способ 3. Формула массива (для Excel 365):

=ФИЛЬТР(A2:D100;(A2:A100="Иванов")*(B2:B100="Маркетинг");"Нет данных")

7. Автоматизация: макросы для частых фильтров

Если вы регулярно фильтруете одни и те же фамилии, запишите макрос:

  1. Включите запись макроса: ВидМакросыЗаписать макрос.
  2. Выполните ручную фильтрацию (например, по фамилии "Кузнецов").
  3. Остановите запись. Теперь макрос можно назначить на кнопку или горячую клавишу.

Пример кода VBA для фильтрации по фамилии из ячейки F1:

Sub FilterBySurname()

Dim ws As Worksheet

Dim filterValue As String

Set ws = ActiveSheet

filterValue = ws.Range("F1").Value

ws.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=filterValue

End Sub

Для фильтрации по нескольким фамилиям из списка в F1:F10:

Sub FilterByMultipleSurnames()

Dim ws As Worksheet, rng As Range, cell As Range

Dim filterArray() As String, i As Integer

Set ws = ActiveSheet

Set rng = ws.Range("F1:F10")

ReDim filterArray(1 To rng.Rows.Count)

i = 1

For Each cell In rng

If cell.Value <> "" Then

filterArray(i) = cell.Value

i = i + 1

End If

Next cell

ReDim Preserve filterArray(1 To i - 1)

ws.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=filterArray, Operator:=xlFilterValues

End Sub

⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов) и включите их выполнение в ФайлПараметрыЦентр управления безопасностью.

FAQ: Частые вопросы по фильтрации фамилий в Excel

Как отфильтровать фамилии с ударениями (например, "Зайцев" и "За́йцев")?

Используйте функцию =НАЙТИ("Зайцев";A2) — она найдёт оба варианта. Для точного поиска с учётом ударений применяйте =ПОИСКПОЗ с параметром 0 (точное совпадение).

Почему фильтр не работает с русскими фамилиями после экспорта из 1С?

Проблема в кодировке. Перед фильтрацией примените =ПОДСТАВИТЬ(A2;CHAR(160);" ") для замены неразрывных пробелов и =ПЕЧСИМВ(A2) для удаления непечатаемых символов.

Как фильтровать фамилии по алфавиту (например, только на букву "М")?

Используйте критерий =М* в автофильтре или формулу =ЛЕВСИМВ(A2;1)="М" в расширенном фильтре. Для диапазона букв (например, "А-В") применяйте =И(ЛЕВСИМВ(A2)>= "А";ЛЕВСИМВ(A2)<="В").

Можно ли фильтровать фамилии по количеству символов (например, только 6-буквенные)?

Да, добавьте столбец с формулой =ДЛСТР(СЖПРОБЕЛЫ(A2)) и отфильтруйте по нужному значению (например, 6). Для диапазона: =И(ДЛСТР(A2)>=6;ДЛСТР(A2)<=10).

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

Выделите видимые строки (после фильтрации нажмите Alt+;), скопируйте их (Ctrl+C) и вставьте на новый лист (Ctrl+V). Альтернатива — использовать Power Query с последующим экспортом в новую таблицу.