Расширенный фильтр в MS EXCEL

Главный недостаток стандартного фильтра (Данные/ Сортировка и фильтр/ Фильтр) – это отсутствие визуальной информации о примененном в данный момент фильтре: необходимо каждый раз лезть в меню фильтра, чтобы вспомнить критерии отбора записей. Особенно это неудобно, когда применено несколько критериев. Расширенный фильтр лишен этого недостатка – все критерии помещаются в виде отдельной таблички над фильтруемыми записями.

Алгоритм создания Расширенного фильтра прост:

  • Создаем таблицу, к которой будет применяться фильтр (исходная таблица);
  • Создаем табличку с критериями (с условиями отбора);
  • Запускаем Расширенный фильтр.

Пусть в диапазоне A7:С83 имеется исходная таблица с перечнем товаров, содержащая поля (столбцы) Товар, Количество и Цена  (см. файл примера). Таблица не должна содержать пустых строк и столбцов, иначе Расширенный фильтр (да и обычный Автофильтр) не будет правильно работать.

Задача 1 (начинается...)

Настроим фильтр для отбора строк, которые содержат в наименовании Товара значения начинающиеся со слова Гвозди. Этому условию отбора удовлетворяют строки с товарами гвозди 20 мм, Гвозди 10 мм, Гвозди 10 мм и Гвозди.

Табличку с условием отбора разместим разместим в диапазоне А1:А2. Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке А2 укажем слово Гвозди.

Примечание: Структура критериев у Расширенного фильтра четко определена и она совпадает со структурой критериев для функций БДСУММ(), БСЧЁТ() и др.

 

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

ВНИМАНИЕ!
Убедитесь, что между табличкой со значениями условий отбора и исходной таблицей имеется, по крайней мере, одна пустая строка (это облегчит работу с Расширенным фильтром).

Теперь все подготовлено для работы с Расширенным фильтром:

  • выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
  • вызовите Расширенный фильтр (Данные/ Сортировка и фильтр/ Дополнительно);
  • в поле Исходный диапазон убедитесь, что указан диапазон ячеек таблицы вместе с заголовками (A7:С83);
  • в поле Диапазон условий укажите ячейки содержащие табличку с критерием, т.е. диапазон А1:А2.

При желании можно отобранные строки скопировать в другую таблицу, установив переключатель в позицию Скопировать результат в другое место. Но мы это здесь делать не будем.

Нажмите кнопку ОК и фильтр будет применен - в таблице останутся только строки содержащие в столбце Товар наименования гвозди 20 мм, Гвозди 10 мм, Гвозди 50 мм и Гвозди. Остальные строки будут скрыты.

Номера отобранных строк будут выделены синим шрифтом.

Чтобы отменить действие фильтра выделите любую ячейку таблицы и нажмите CTRL+SHIFT+L (к заголовку будет применен Автофильтр, а действие Расширенного фильтра будет отменено) или нажмите кнопку меню Очистить (Данные/ Сортировка и фильтр/ Очистить).

Задача 2 (точно совпадает)

Настроим фильтр для отбора строк, у которых в столбце Товар точно содержится слово Гвозди. Этому условию отбора удовлетворяют строки только с товарами гвозди и Гвозди (Регистр не учитывается). Значения гвозди 20 мм, Гвозди 10 мм, Гвозди 50 мм учтены не будут.

Табличку с условием отбора разместим разместим в диапазоне B1:В2. Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке B2 укажем формулу ="=Гвозди".

Теперь все подготовлено для работы с Расширенным фильтром:

  • выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
  • вызовите Расширенный фильтр (Данные/ Сортировка и фильтр/ Дополнительно);
  • в поле Исходный диапазон убедитесь, что указан диапазон ячеек таблицы вместе с заголовками (A7:С83);
  • в поле Диапазон условий укажите ячейки содержащие табличку с критерием, т.е. диапазон B1:B2.
  • Нажмите ОК


Применять Расширенный фильтр с такими простыми критериями особого смысла нет, т.к. с этими задачами легко справляется Автофильтр. Рассмотрим более сложные задачи по фильтрации.

Если в качестве критерия указать не ="=Гвозди", а просто Гвозди, то, будут выведены все записи содержащие наименования начинающиеся со слова Гвозди (Гвозди 80мм, Гвозди2). Чтобы вывести строки с товаром, содержащие на слово гвозди, например, Новые гвозди, необходимо в качестве критерия указать ="=*Гвозди" или просто *Гвозди, где * является подстановочным знаком и означает любую последовательность символов.

Задача 3 (условие ИЛИ для одного столбца)

Настроим фильтр для отбора строк, у которых в столбце Товар содержится значение начинающееся со слова Гвозди ИЛИ Обои.

Критерии отбора в этом случае должны размещаться под соответствующим заголовком столбца (Товар) и должны располагаться друг под другом в одном столбце (см. рисунок ниже). Табличку с критериями размести в диапазоне С1:С3.

Окно с параметрами Расширенного фильтра и таблица с отфильтрованными данными будет выглядеть так.

После нажатия ОК будут выведены все записи, содержащие в столбце Товар продукцию Гвозди ИЛИ Обои.

Задача 4 (условие И)

Произведем отбор только тех строк таблицы, которые точно содержат в столбце Товар продукцию Гвозди, а в столбце Количество значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться на одной строке. Условия отбора должны быть записаны в специальном формате: ="=Гвозди" и =">40". Табличку с условием отбора разместим разместим в диапазоне E1:F2.

После нажатия кнопки ОК будут выведены все записи содержащие в столбце Товар продукцию Гвозди с количеством >40.

СОВЕТ: При изменении критериев отбора лучше каждый раз создавать табличку с критериями и после вызова фильтра лишь менять ссылку на них.

Примечание: Если пришлось очистить параметры Расширенного фильтра (Данные/ Сортировка и фильтр/ Очистить), то перед вызовом фильтра выделите любую ячейку таблицы – EXCEL автоматически вставит ссылку на диапазон занимаемый таблицей (при наличии пустых строк в таблице вставится ссылка не на всю таблицу, а лишь до первой пустой строки).

Задача 5 (условие ИЛИ для разных столбцов)

Предыдущие задачи можно было при желании решить обычным автофильтром. Эту же задачу обычным фильтром не решить.

Произведем отбор только тех строк таблицы, которые точно содержат в столбце Товар продукцию Гвозди, ИЛИ которые в столбце Количество содержат значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться на разных строках. Условия отбора должны быть записаны в специальном формате: =">40" и ="=Гвозди". Табличку с условием отбора разместим разместим в диапазоне E4:F6.

После нажатия кнопки ОК будут выведены записи содержащие в столбце Товар продукцию Гвозди ИЛИ значение  >40 (у любого товара).

Задача 6 (Условия отбора, созданные в результате применения формулы)

Настоящая мощь Расширенного фильтра проявляется при использовании в качестве условий отбора формул.

Существует две возможности задания условий отбора строк:

  • непосредственно вводить значения для критерия (см. задачи выше);
  • сформировать критерий на основе результатов выполнения формулы.

Рассмотрим критерии задаваемые формулой. Формула, указанная в качестве критерия отбора, должна возвращать результат ИСТИНА или ЛОЖЬ.

Например, отобразим строки, содержащие Товар, который встречается в таблице только 1 раз. Для этого введем в ячейку H2 формулу =СЧЁТЕСЛИ(Лист1!$A$8:$A$83;A8)=1, а в Н1 вместо заголовка введем поясняющий текст, например, Неповторяющиеся значения. Применим Расширенный фильтр, указав в качестве диапазона условий ячейки Н1:Н2.

Обратите внимание на то, что диапазон поиска значений введен с использованием абсолютных ссылок, а критерий в функции СЧЁТЕСЛИ() – с относительной ссылкой. Это необходимо, поскольку при применении Расширенного фильтра EXCEL увидит, что А8 — это относительная ссылка и будет перемещаться вниз по столбцу Товар по одной записи за раз и возвращать значение либо ИСТИНА, либо ЛОЖЬ. Если будет возвращено значение ИСТИНА, то соответствующая строка таблицы будет отображена. Если возвращено значение ЛОЖЬ, то строка после применения фильтра отображена не будет.

Примеры других формул из файла примера:

  • Вывод строк с ценами больше, чем 3-я по величине цена в таблице. =C8>НАИБОЛЬШИЙ($С$8:$С$83;5) В этом примере четко проявляется коварство функции НАИБОЛЬШИЙ(). Если отсортировать столбец С (цены), то получим: 750; 700; 700; 700; 620, 620, 160, … В человеческом понимании «3-ей по величине цене» соответствует 620, а в понимании функции НАИБОЛЬШИЙ()700. В итоге, будет выведено не 4 строки, а только одна (750);
  • Вывод строк с учетом РЕгиСТра =СОВПАД("гвозди";А8). Будут выведены только те строки, в которых товар гвозди введен с использованием строчных букв;
  • Вывод строк, у которых цена выше среднего =С8>СРЗНАЧ($С$8:$С$83);

ВНИМАНИЕ!
Применение Расширенного фильтра отменяет примененный к таблице фильтр (Данные/ Сортировка и фильтр/ Фильтр).

Задача 7 (Условия отбора содержат формулы и обычные критерии)

Рассмотрим теперь другую таблицу из файла примера на листе Задача 7.

В столбце Товар приведено название товара, а в столбце Тип товара - его тип. 

Задача состоит в том, чтобы для заданного типа товара вывести товары, у которых цена ниже средней. То есть у нас 3 критерия: первый критерий задает Товар, 2-й - его Тип, а 3-й критерий (в виде формулы) задает цену ниже средней.

Критерии разместим в строках 6 и 7. Введем нужные Товар и Тип товара. Для заданного Тип товара вычислим среднее и выведем ее для наглядности в отдельную ячейку F7. В принципе, формулу можно ввести прямо в формулу-критерий в ячейку С7.

Далее действуем как обычно: выделяем любую ячейку таблицы, вызываем Расширенный фильтр (Advanced Filter) и указываем диапазон с критериями.

Будут выведены 2 товара из 4-х (заданного типа товара).

В файле примера для удобства использовано Условное форматирование: выделяются строки удовлетворяющие первым 2-м критериям (подробнее см. статью Выделение строк таблицы в MS EXCEL в зависимости от условия в ячейке).

Вывод уникальных строк

О выводе уникальных строк с помощью Расширенного фильтра можно прочитать в этой статье.

Связанные статьи

Похожие задачи
Прочитайте другие статьи, решающие похожие задачи в MS Excel. Это позволит Вам решать широкий класс подобных задач.
Средняя: 4.2 (11 оценок)

Комментарии

saliz (не проверено)

Спасибо

алишер (не проверено)

Все четка и понятно! Большое спасибо за объяснение:)!

Василий (не проверено)

Всё понятно! Спасибо за статью!