Главный недостаток стандартного фильтра ( Данные/ Сортировка и фильтр/ Фильтр ) – это отсутствие визуальной информации о примененном в данный момент фильтре: необходимо каждый раз лезть в меню фильтра, чтобы вспомнить критерии отбора записей. Особенно это неудобно, когда применено несколько критериев. Расширенный фильтр лишен этого недостатка – все критерии помещаются в виде отдельной таблички над фильтруемыми записями.
Алгоритм создания Расширенного фильтра прост:
Пусть в диапазоне A 7:С 83 имеется исходная таблица с перечнем товаров, содержащая поля (столбцы) Товар , Количество и Цена (см. файл примера ). Таблица не должна содержать пустых строк и столбцов, иначе Расширенный фильтр (да и обычный Автофильтр ) не будет правильно работать.
Настроим фильтр для отбора строк, которые содержат в наименовании Товара значения начинающиеся со слова Гвозди . Этому условию отбора удовлетворяют строки с товарами гвозди 20 мм , Гвозди 10 мм , Гвозди 10 мм и Гвозди .
Табличку с условием отбора разместим разместим в диапазоне А 1 :А2 . Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке А2 укажем слово Гвозди .
Примечание : Структура критериев у Расширенного фильтра четко определена и она совпадает со структурой критериев для функций БДСУММ() , БСЧЁТ() и др.
Обычно критерии Расширенного фильтра размещают над таблицей, к которой применяют фильтр, но можно их разместить и сбоку таблицы. Избегайте размещения таблички с критериями под исходной таблицей, хотя это не запрещено, но не всегда удобно, т.к. в исходную таблицу могут добавляться новые строки.
ВНИМАНИЕ! Убедитесь, что между табличкой со значениями условий отбора и исходной таблицей имеется, по крайней мере, одна пустая строка (это облегчит работу с Расширенным фильтром ).
Теперь все подготовлено для работы с Расширенным фильтром:
При желании можно отобранные строки скопировать в другую таблицу, установив переключатель в позицию Скопировать результат в другое место . Но мы это здесь делать не будем.
Нажмите кнопку ОК и фильтр будет применен - в таблице останутся только строки содержащие в столбце Товар наименования гвозди 20 мм , Гвозди 10 мм , Гвозди 50 мм и Гвозди . Остальные строки будут скрыты.
Номера отобранных строк будут выделены синим шрифтом.
Чтобы отменить действие фильтра выделите любую ячейку таблицы и нажмите CTRL+SHIFT+L (к заголовку будет применен Автофильтр , а действие Расширенного фильтра будет отменено) или нажмите кнопку меню Очистить ( Данные/ Сортировка и фильтр/ Очистить ).
Настроим фильтр для отбора строк, у которых в столбце Товар точно содержится слово Гвозди . Этому условию отбора удовлетворяют строки только с товарами гвозди и Гвозди ( Регистр не учитывается). Значения гвозди 20 мм , Гвозди 10 мм , Гвозди 50 мм учтены не будут.
Табличку с условием отбора разместим разместим в диапазоне B1:В2 . Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке B2 укажем формулу ="= Гвозди" .
Теперь все подготовлено для работы с Расширенным фильтром:
Применять Расширенный фильтр с такими простыми критериями особого смысла нет, т.к. с этими задачами легко справляется Автофильтр . Рассмотрим более сложные задачи по фильтрации.
Если в качестве критерия указать не ="=Гвозди" , а просто Гвозди , то, будут выведены все записи содержащие наименования начинающиеся со слова Гвозди ( Гвозди 80мм , Гвозди2 ). Чтобы вывести строки с товаром, содержащие на слово гвозди , например, Новые гвозди , необходимо в качестве критерия указать ="=*Гвозди" или просто * Гвозди, где * является подстановочным знаком и означает любую последовательность символов.
Настроим фильтр для отбора строк, у которых в столбце Товар содержится значение начинающееся со слова Гвозди ИЛИ Обои .
Критерии отбора в этом случае должны размещаться под соответствующим заголовком столбца ( Товар ) и должны располагаться друг под другом в одном столбце (см. рисунок ниже). Табличку с критериями размести в диапазоне С1:С3 .
Окно с параметрами Расширенного фильтра и таблица с отфильтрованными данными будет выглядеть так.
После нажатия ОК будут выведены все записи, содержащие в столбце Товар продукцию Гвозди ИЛИ Обои .
Произведем отбор только тех строк таблицы, которые точно содержат в столбце Товар продукцию Гвозди , а в столбце Количество значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться на одной строке . Условия отбора должны быть записаны в специальном формате: ="= Гвозди" и =">40" . Табличку с условием отбора разместим разместим в диапазоне E1:F2 .
После нажатия кнопки ОК будут выведены все записи содержащие в столбце Товар продукцию Гвозди с количеством >40.
СОВЕТ: При изменении критериев отбора лучше каждый раз создавать табличку с критериями и после вызова фильтра лишь менять ссылку на них.
Примечание : Если пришлось очистить параметры Расширенного фильтра ( Данные/ Сортировка и фильтр/ Очистить ), то перед вызовом фильтра выделите любую ячейку таблицы – EXCEL автоматически вставит ссылку на диапазон занимаемый таблицей (при наличии пустых строк в таблице вставится ссылка не на всю таблицу, а лишь до первой пустой строки).
Предыдущие задачи можно было при желании решить обычным автофильтром . Эту же задачу обычным фильтром не решить.
Произведем отбор только тех строк таблицы, которые точно содержат в столбце Товар продукцию Гвозди , ИЛИ которые в столбце Количество содержат значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться на разных строках . Условия отбора должны быть записаны в специальном формате: =">40" и ="= Гвозди" . Табличку с условием отбора разместим разместим в диапазоне E4:F6 .
После нажатия кнопки ОК будут выведены записи содержащие в столбце Товар продукцию Гвозди ИЛИ значение >40 (у любого товара).
Настоящая мощь Расширенного фильтра проявляется при использовании в качестве условий отбора формул.
Существует две возможности задания условий отбора строк:
Рассмотрим критерии задаваемые формулой. Формула, указанная в качестве критерия отбора, должна возвращать результат ИСТИНА или ЛОЖЬ.
Например, отобразим строки, содержащие Товар, который встречается в таблице только 1 раз. Для этого:
Применим Расширенный фильтр , указав в качестве диапазона условий ячейки Н1:Н2 .
Обратите внимание на то, что диапазон поиска значений введен с использованием абсолютных ссылок , а критерий в функции СЧЁТЕСЛИ() – с относительной ссылкой. Это необходимо, поскольку при применении Расширенного фильтра EXCEL увидит, что А8 — это относительная ссылка и будет перемещаться вниз по столбцу Товар по одной записи за раз и возвращать значение либо ИСТИНА, либо ЛОЖЬ. Если будет возвращено значение ИСТИНА, то соответствующая строка таблицы будет отображена. Если возвращено значение ЛОЖЬ, то строка после применения фильтра отображена не будет.
СОВЕТ: Для проверки работоспособности формулы можно создать дополнительный столбец рядом с таблицей (например в F) и ввести указанную выше формулу в ячейку F8, а затем скопировать ее вниз. Будет сформирован столбец со значениями ИСТИНА/ЛОЖЬ, который поможет определить как работает ваша формула.
Примеры других формул из файла примера :
ВНИМАНИЕ! Применение Расширенного фильтра отменяет примененный к таблице фильтр ( Данные/ Сортировка и фильтр/ Фильтр ).
Рассмотрим теперь другую таблицу из файла примера на листе Задача 7 .
В столбце Товар приведено название товара, а в столбце Тип товара - его тип.
Задача состоит в том, чтобы для заданного типа товара вывести товары, у которых цена ниже средней. То есть у нас 3 критерия: первый критерий задает Товар, 2-й - его Тип, а 3-й критерий (в виде формулы) задает цену ниже средней.
Критерии разместим в строках 6 и 7. Введем нужные Товар и Тип товара. Для заданного Тип товара вычислим среднее и выведем ее для наглядности в отдельную ячейку F7. В принципе, формулу можно ввести прямо в формулу-критерий в ячейку С7. Поясняющий текст в ячейке над формулой (С6) НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.
Далее действуем как обычно: выделяем любую ячейку таблицы, вызываем Расширенный фильтр (Advanced Filter) и указываем диапазон с критериями.
Будут выведены 2 товара из 4-х (заданного типа товара).
В файле примера для удобства использовано Условное форматирование : выделяются строки удовлетворяющие первым 2-м критериям (подробнее см. статью Выделение строк таблицы в MS EXCEL в зависимости от условия в ячейке ).
Есть таблица, в которой указаны Год выпуска и Год покупки автомобиля.
Требуется вывести только те строки, в которых Год выпуска совпадает с Годом покупки. Это можно сделать с помощью элементарной формулы =В10=С10 .
Поясняющий текст в ячейке С6 НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.
Пусть у нас есть таблица с перечнем различных типов гвоздей.
Требуется отфильтровать только те строки, у которых в столбце Товар содержится Гвозди 1 дюйм , Гвозди 2 дюйма и т.д. товары Гвозди нержавеющие, Гвозди хромированные и т.д. не должны быть отфильтрованы.
Проще всего это сделать если в качестве фильтра задать условие, что после слова Гвозди должно идти цифра. Это можно сделать с помощью формулы =ЕЧИСЛО(--ПСТР(A11;ДЛСТР($A$8)+2;1))
Формула вырезает из наименования товара 1 символ после слова Гвозди (с учетом пробела). Если этот символ число (цифра), то формула возвращает ИСТИНА и строка выводится, в противном случае строка не выводится. В столбце F показано как работает формула, т.е. ее можно протестировать до запуска Расширенного фильтра .
Требуется отфильтровать только те строки, у которых в столбце Товар НЕ содержатся: Гвозди, Доска, Клей, Обои .
Для этого придется использовать простую формулу =ЕНД(ВПР(A15;$A$8:$A$11;1;0))
Функция ВПР() ищет в столбце Товар каждой строки наименования товаров, указанных в диапазоне А8:А11 . Если эти товары НЕ найдены, ВПР() возвращает ошибку #Н/Д, которая обрабатывается функцией ЕНД() - в итоге, формула возвращает ИСТИНА и строка выводится.
О выводе уникальных строк с помощью Расширенного фильтра можно прочитать в этой статье .
© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved
Комментарии