Функция расширенного фильтра в Microsoft Excel

Содержание

Расширенный фильтр Excel – великолепная альтернатива регулярным выражениям

Функция расширенного фильтра в Microsoft Excel
≡  5 September 2016   ·  Рубрика: Excel   

Текст представляет собой адаптированный перевод статьи Annie Cushing (Энни Кашинг), оригинал — Advanced Filters: Excel’s Amazing Alternative To Regex. Курсивом выделяются названия пунктов меню для Excel 2013 и Mac 2011 или термины.

Всегда казалось странным, что Excel не поддерживает регулярные выражения (кои в среде программистов зовут регулярками или регэкспами). С их помощью делают сложную сортировку и фильтрацию.

Инструмент SeoTools plugin for Excel поддерживает регулярки, но, как и большинство дополнительных ресурсов для Excel, работает только на платформе ПК.

Эта статья предназначена, в основном, для пользователей Mac (мы не рекламируем SeoTools).

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

Немного теории

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

Сразу уточним: если отформатировать данные как таблицу, мы уже получим стандартный набор фильтров. Но иногда этого недостаточно. Excel предоставляет только два типа подстановочных знаков и набор их сочетаний весьма ограничен (в скобках приводится эквивалент для регулярных выражений):

    • (звездочка) — 0 или больше знаков (равнозначно .*)
  • ? любой единственный знак (равнозначно .)
  • ?* 1 или больше знаков (равнозначно .+)

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

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

Подготовка к работе с расширенным фильтром

Для дальнейшего нам нужен «подопытный» — база данных, над которой будем ставить эксперименты. Мы её оставили отформатированной под таблицу. Но это лишь для «красоты», поскольку применение расширенного фильтра удалит стандартные табличные фильтры. Последние можно включить повторно по окончании получения наборов данных.

Расширенный фильтр находится:

Для ПК: Данные > Сортировка и фильтр >Дополнительно.

Для Мак: Данные > Сортировка и фильтр > Фильтр > Расширенный фильтр

Пользователи Mac могут щёлкнуть ПКМ по таблице и выбрать нужный пункт из контекстного меню. На ПК такой возможности нет.

Ещё один момент — база данных должна иметь заголовки столбцов, как показано ниже.

Небольшой совет

Подробная информация о фильтрах приведена ниже в пунктах Операторы, Заголовки и Множественные условия.

Базовые операторы

В дополнение к вышеупомянутым подстановочным знакам приведём некоторые операторы, необходимые при работе с фильтром:

  • = равенство, т.е. левая и правая часть должна совпасть: =билет [включит все ячейки, содержащие билет]
  • не равно, левая и правая часть не должны совпасть: //www.aviasales.ru/mag* [исключаем данный адрес (блог)]
  • ‘ апостроф преобразует формулу в текст, если поставить его первым в ячейке: ‘=купить авиабилет
  • > больше чем: >500
  • >= больше или равно: B4-C4>=3
  • < меньше чем: C6 Сортировка и фильтр > Фильтр > Расширенный фильтр.Откроется меню. Здесь приведён скриншот Excel 2013, но все пункты совпадают с Mac.Шаг 2: Выберите, где будут размещаться отобранные данные. В большинстве случаев разумнее определить «другое место», это оставит неизменным исходный массив данных. Но выбор за вами.Шаг 3: Для исходного диапазона Excel по умолчанию отбирает всю «таблицу». Это можно изменить, исключив ненужные столбцы. Но Excel позволит выбрать только прямоугольный диапазон. Чтобы отобрать столбцы с пропусками, введите названия целевых столбцов в свободных ячейках и укажите их адрес для диапазона вывода. В Дополнительных примерах приводится подробное пояснение.Шаг 4: Для установки диапазона условий щёлкните внутри поля и выделите соответствующий диапазон на листе. Если нужно свернуть меню, нажмите на значок выбора диапазона справа от поля.Шаг 5: Если выбран пункт Cкопировать результат в другое место, укажите адрес в поле Поместить результат в диапазон. Можно указать единичную ячейку, тогда она станет верхней левой выводимого диапазона, или выбрать ячейки с введёнными названиями нужных столбцов.Шаг 6: Если нужны только уникальные записи поставьте флажок. К сожалению, большинство людей используют исключительно эту функцию.Шаг 7: Жмём OK, смотрим на результат.Шаг 8: Если список фильтровался на месте, можно сбросить фильтр, нажав Очистить, но это верно для ПК. Данный пункт расположен выше пункта Дополнительно. На Маке присутствует аналог — Очистить фильтр, но он недоступен. Ещё один довод в пользу фильтрации на новое место. Чтобы сбросить фильтр нужно отменить действие — нажать Command-Z, или подключить стандартный фильтр.

    Дополнительные примеры

    1. Исключить словаВ данном контексте значит не содержит2. Получить ключевые слова первой десяткиЗаголовки двух столбцов скопированы для диапазона вывода3. Вывести ключевые слова, для которых Cреднемесячное количество лежит в промежутке [5000, 10000]Для получения промежутка копируем дважды заголовок столбца и вводим ограничения на одной строке.4. Содержит хотя бы одно из слов: “купить”, “аэрофлот”. Не содержит слово “туту”, и значение в столбце Среднемесячное количество больше 500В ячейках с условиями первый знак — апостроф, увидеть его можно в строке формул.5. Ключевые слова содержат “аэрофлот” и Среднемесячное количество больше 500Как и в предыдущем примере, первый знак в ячейке — апостроф.6. Ключевые слова, для которых Позиция меньше 3, или Среднемесячное количество больше 1000Для диапазона условий ИЛИ наличие пустого столбца — не помеха.7. Ключевые слова содержат, по крайней мере, 1 знак перед словом “аэрофлот”Сочетание ?* требует наличия хотя бы 1 знака, но может содержать больше (эквивалент .+ в регулярках)8. Ключевые слова, для которых Среднемесячное количество больше 8000Сделано формулой, не забываем включить пустую ячейку над ней в диапазон условий.9. Ключевые слова, для которых Среднемесячное количество больше 10000, а Конкурентность меньше 0,75Используем функцию И в формуле.10. Ключевые слова первой десятки по критерию Среднемесячное количествоФормула отбирает ячейки, значение которых больше или равно 10-му по величине числу. Само число получаем функцией НАИБОЛЬШИЙ. Обратите внимание, сравниваемая ячейка получена относительной ссылкой, а диапазон поиска для функции — абсолютной.

    Заключительные рекомендации

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

    • Если случайно включить в диапазон условий пустые ячейки, расположенные под заполненными строками, то Excel воспримет их как условия, включающие всё.
    • Если вывод результатов идёт на другой лист, то запускать фильтр нужно с этого листа. Excel разрешает вывод результатов только на тот лист, с которого запущен фильтр.
    • Если фильтрации идёт на месте, то не получится последовательно применить несколько фильтров. Применение нового аннулирует предыдущие результаты.
    • Как уже писалось выше, пункт Очистить фильтр не работает в Excel 2011. Для сброса фильтра используйте отмену действия (Command-Z) или подключите обычный фильтр. В 2016 это исправили (прим. пер).
    • При выводе результатов в другое место полезно совместное применение оператора . Кроме того, можно транспонировать полученные данные: выделить, Копировать > Специальная вставка > флажок транспонировать.

    Совет для продвинутых пользователей Excel

    Для создания динамического фильтра можно сделать выпадающий список через пункт Проверка данных. Это позволит применять предопределённые значения для генерации фильтров. Но придётся каждый раз запускать расширенный фильтр вручную.

    Однако существует хороший выход — макрос. Достаточно подключить несложный макрос и назначить его запуск по сочетанию клавиш или по щелчку на кнопке. Вместо кнопки можно использовать картинку. Например, такую:

    Если вы затратите немного времени на изучение расширенного фильтра, то поймёте простоту и мощь данного инструмента.

    Источник: //needfordata.ru/blog/rasshirennyj-filtr-excel-velikolepnaya-alternativa-regulyarnym-vyrazheniyam-2

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

    Функция расширенного фильтра в Microsoft 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 в зависимости от условия в ячейке).

    Задача 7.1. (Совпадают ли 2 значения в одной строке?)

    Есть таблица, в которой указаны Год выпуска и Год покупки автомобиля.

    Требуется вывести только те строки, в которых Год выпуска совпадает с Годом покупки. Это можно сделать с помощью элементарной формулы =В10=С10.

    Задача 8 (Является ли символ числом?)

    Пусть у нас есть таблица с перечнем различных типов гвоздей.

    Требуется отфильтровать только те строки, у которых в столбце Товар содержится Гвозди 1 дюйм, Гвозди 2 дюйма и т.д. товары Гвозди нержавеющие, Гвозди хромированные и т.д. не должны быть отфильтрованы.

    Проще всего это сделать если в качестве фильтра задать условие, что после слова Гвозди должно идти цифра. Это можно сделать с помощью формулы =ЕЧИСЛО(–ПСТР(A11;ДЛСТР($A$8)+2;1))

    Формула вырезает из наименования товара 1 символ после слова Гвозди (с учетом пробела). Если этот символ число (цифра), то формула возвращает ИСТИНА и строка выводится, в противном случае строка не выводится. В столбце F показано как работает формула, т.е. ее можно протестировать до запуска Расширенного фильтра.

    Задача 9 (Вывести строки, в которых НЕ СОДЕРЖАТСЯ заданные Товары)

    Требуется отфильтровать только те строки, у которых в столбце Товар НЕ содержатся: Гвозди, Доска, Клей, Обои.

    Для этого придется использовать простую формулу =ЕНД(ВПР(A15;$A$8:$A$11;1;0))

    Функция ВПР() ищет в столбце Товар каждой строки наименования товаров, указанных в диапазоне А8:А11. Если эти товары НЕ найдены, ВПР() возвращает ошибку #Н/Д, которая обрабатывается функцией ЕНД() – в итоге, формула возвращает ИСТИНА и строка выводится.

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

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

    Источник: //excel2.ru/articles/rasshirennyy-filtr-v-ms-excel

    Расширенный фильтр и немного магии

    Функция расширенного фильтра в Microsoft Excel
    11741 26.04.2014 Скачать пример

    У подавляющего большинства пользователей Excel при слове “фильтрация данных” в голове всплывает только обычный классический фильтр с вкладки Данные – Фильтр (Data – Filter):

    Такой фильтр – штука привычная, спору нет, и для большинства случаев вполне сойдет.

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

    Таким инструментом может стать расширенный фильтр (advanced filter), особенно с небольшой “доработкой напильником” (по традиции).

    Основа

    Для начала вставьте над вашей таблицей с данными несколько пустых строк и скопируйте туда шапку таблицы – это будет диапазон с условиями (выделен для наглядности желтым):

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

    Именно в желтые ячейки нужно ввести критерии (условия), по которым потом будет произведена фильтрация. Например, если нужно отобрать бананы в московский “Ашан” в III квартале, то условия будут выглядеть так:

    Чтобы выполнить фильтрацию выделите любую ячейку диапазона с исходными данными, откройте вкладку Данные и нажмите кнопку Дополнительно (Data – Advanced). В открывшемся окне должен быть уже автоматически введен диапазон с данными и нам останется только указать диапазон условий, т.е. A1:I2:

    Обратите внимание, что диапазон условий нельзя выделять “с запасом”, т.е. нельзя выделять лишние пустые желтые строки, т.к. пустая ячейка в диапазоне условий воспринимается Excel как отсутствие критерия, а целая пустая строка – как просьба вывести все данные без разбора.

    Переключатель Скопировать результат в другое место позволит фильтровать список не прямо тут же, на этом листе (как обычным фильтром), а выгрузить отобранные строки в другой диапазон, который тогда нужно будет указать в поле Поместить результат в диапазон. В данном случае мы эту функцию не используем, оставляем Фильтровать список на месте и жмем ОК. Отобранные строки отобразятся на листе:

    Добавляем макрос

    “Ну и где же тут удобство?” – спросите вы и будете правы. Мало того, что нужно руками вводить условия в желтые ячейки, так еще и открывать диалоговое окно, вводить туда диапазоны, жать ОК. Грустно, согласен! Но “все меняется, когда приходят они ©” – макросы!

    Работу с расширенным фильтром можно в разы ускорить и упростить с помощью простого макроса, который будет автоматически запускать расширенный фильтр при вводе условий, т.е. изменении любой желтой ячейки. Щелкните правой кнопкой мыши по ярлычку текущего листа и выберите команду Исходный текст (Source Code). В открывшееся окно скопируйте и вставьте вот такой код:

    Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range(“A2:I5”)) Is Nothing Then On Error Resume Next ActiveSheet.ShowAllData Range(“A7”).CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(“A1”).CurrentRegion End If End Sub

    Эта процедура будет автоматически запускаться при изменении любой ячейки на текущем листе. Если адрес измененной ячейки попадает в желтый диапазон (A2:I5), то данный макрос снимает все фильтры (если они были) и заново применяет расширенный фильтр к таблице исходных данных, начинающейся с А7, т.е. все будет фильтроваться мгновенно, сразу после ввода очередного условия:

    Так все гораздо лучше, правда? 🙂

    Реализация сложных запросов

    Теперь, когда все фильтруется “на лету”, можно немного углубиться в нюансы и разобрать механизмы более сложных запросов в расширенном фильтре.

    Помимо ввода точных совпадений, в диапазоне условий можно использовать различные символы подстановки (* и ?) и знаки математических неравенств для реализации приблизительного поиска.

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

    КритерийРезультат
    гр* или гр все ячейки начинающиеся с Гр, т.е. Груша, Грейпфрут, Гранат и т.д.
    =лук все ячейки именно и только со словом Лук, т.е. точное совпадение
    *лив* или *лив ячейки содержащие лив как подстроку, т.е. Оливки, Ливер, Залив и т.д.
    =п*в слова начинающиеся с П и заканчивающиеся на В т.е.Павлов, Петров и т.д.
    а*с слова начинающиеся с А и содержащие далее С, т.е. Апельсин, Ананас, Асаи и т.д.
    =*с слова оканчивающиеся на С
    =????все ячейки с текстом из 4 символов (букв или цифр, включая пробелы)
    =м??????н все ячейки с текстом из 8 символов, начинающиеся на М и заканчивающиеся на Н, т.е. Мандарин, Мангостин  и т.д.
    =*н??а все слова оканчивающиеся на А, где 4-я с конца буква Н, т.е. Брусника, Заноза и т.д.
    >=э все слова, начинающиеся с Э, Ю или Я
    *о* все слова, не содержащие букву О
    *вич все слова, кроме заканчивающихся на вич (например, фильтр женщин по отчеству)
    = все пустые ячейки
    все непустые ячейки
    >=5000 все ячейки со значением больше или равно 5000
    5 или =5 все ячейки со значением 5
    >=3/18/2013 все ячейки с датой позже 18 марта 2013 (включительно)

    Тонкие моменты:

    • Знак * подразумевает под собой любое количество любых символов, а ? – один любой символ.
    • Логика в обработке текстовых и числовых запросов немного разная. Так, например, ячейка условия с числом 5 не означает поиск всех чисел, начинающихся с пяти, но ячейка условия с буквой Б равносильна Б*, т.е. будет искать любой текст, начинающийся с буквы Б.
    • Если текстовый запрос не начинается со знака =, то в конце можно мысленно ставить *.
    • Даты надо вводить в штатовском формате месяц-день-год и через дробь (даже если у вас русский Excel и региональные настройки).

    Логические связки И-ИЛИ

    Условия записанные в разных ячейках, но в одной строке – считаются связанными между собой логическим оператором И (AND):

    Т.е. фильтруй мне бананы именно в третьем квартале, именно по Москве и при этом из “Ашана”.

    Если нужно связать условия логическим оператором ИЛИ (OR), то их надо просто вводить в разные строки. Например, если нам нужно найти все заказы менеджера Волиной по московским персикам и все заказы по луку в третьем квартале по Самаре, то это можно задать в диапазоне условий следующим образом:

    Если же нужно наложить два или более условий на один столбец, то можно просто продублировать заголовок столбца в диапазоне критериев и вписать под него второе, третье и т.д. условия. Вот так, например, можно отобрать все сделки с марта по май:

    В общем и целом, после “доработки напильником” из расширенного фильтра выходит вполне себе приличный инструмент, местами не хуже классического автофильтра.

    Ссылки по теме

    Источник: //www.planetaexcel.ru/techniques/2/197/

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

    Функция расширенного фильтра в Microsoft Excel

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

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

    Рассмотрим его применение для следующей таблицы. Расположена она в диапазоне ячеек А6:Е31. В ней представлена информация об учениках школы.

    Например, нужно выбрать всех девочек, рост которых меньше 160 см. Это можно сделать, применив обычный фильтр для столбцов.

    Но если мы захотим отобрать и мальчиков с ростом больше 180 см, то с его помощью ничего сделать у нас не получится. Будут выданы результаты с мальчиками и девочками, рост которых находится в приделах от 160 до 180 см.

    Здесь нам и пригодиться использование расширенного фильтра. Надеюсь, разница Вам понятна.

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

    Теперь давайте рассмотрим, как использовать расширенный фильтр в Excel. Для начала, нужно создать диапазон условий – делается это путем копирования всех заголовков столбцов, в другое место листа.

    Лучше всего скопировать их над таблицей, иначе они тоже могут попасть под фильтр, например, если расположить их рядом с ней. Также учтите, что между условиями и основной информацией, должна быть как минимум одна пустая строка.

    Условия задаем следующим образом. Оставим, для примера, всех девочек, которые учатся в 9 классе. Заполняем нужные ячейки в диапазоне условий. Затем выделяем любую ячейку в основной таблице, переходим на вкладку «Данные» и нажимаем в группе «Сортировка и фильтр» на кнопку «Дополнительно».

    Откроется диалоговое окно «Расширенный фильтр». В нем выберите маркером, где отобразить результат, в этой же таблице или сделать ее в другом месте. В качестве «Исходного диапазона» выбираем наши ячейки А6:Е31. «Диапазон условий» – это наши заголовки с условиями А1:Е2. Нажмите «ОК».

    Очень важно правильно задать диапазон условий. В примере это А1:Е2. Если нужно будет добавить еще одно условие, он станет А1:Е3, и так далее. В противном случае ничего работать не будет.

    В диапазоне условий, данные для столбцов, которые введены в одну строку, воспринимаются как логическое «И». Данные на разных строках воспринимаются как логическое «ИЛИ».

    В примере, мы оставили всех девочек, и из них выбрали тех, кто учится в 9 классе. Если во второй строке записать «девочка» – «>170», то будут отобраны из таблицы еще и девочки, рост которых больше 170 см.

    При этом они могут учиться в других классах – это логическое «ИЛИ».

    Как удалить

    Чтобы удалить его для данных в таблице на вкладке «Данные» в группе «Сортировка и фильтр» нажмите «Очистить».

    Поместим отфильтрованные данные в другую таблицу

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

    В диапазон условий записываем данные. Выделяем любую ячейку основной таблицы и переходим на вкладку «Данные» – «Дополнительно».

    Маркером отмечаем «Скопировать результат в другое место», выбираем ячейки для «Исходного диапазона» А6:Е31, в поле «Диапазон условий» вписываем адрес А1:Е3. В поле «Поместить результат в диапазон» нажимаем на кнопочку выбора ячеек и выделяем нужные на листе, можно выбрать и другой лист открытой книги. Нажмите «ОК».

    Чтобы поместить результат расширенного фильтра в другой диапазон, сначала скопируйте шапку таблицы и вставьте ее туда. Когда будете выбирать ячейки для отфильтрованных данных, выделите эту шапку и необходимое количество строк под ней. Если выделенных строк не хватит, программа предупредит об этом.

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

    Теперь, для дополнительной таблицы с отфильтрованными данными, можно применить, например, сортировку в Excel. Подробно о том, как отсортировать данные в Эксель, Вы можете прочесть, перейдя по ссылке.

    Уверенна, Вы поняли, как использовать расширенный фильтр в Эксель, для выбора нужной информации из таблицы.

    (2 5,00 из 5)
    Загрузка…

    Источник: //comp-profi.com/rasshirennyj-filtr-v-excel/

    Как использовать расширенный фильтр в Excel

    Функция расширенного фильтра в Microsoft Excel

         Здравствуйте друзья!

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

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

    Вы скажете, что для этого есть и простой фильтр, да вы будете правы, есть и он фильтрует, но, увы, только по 1 критерию, а вот если вам нужно произвести отбор по двум и более критериев, тут уже без расширенного фильтра, ну никак.

         Использовать расширенный фильтр в Excel можно двумя способами:

    • с помощью диалогового окна «Расширенный фильтр»;
    • с помощью макроса.

    С помощью диалогового окна «Расширенный фильтр»

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

    Теперь можем применить фильтр, согласно заданных условий.

         Для начала выделяем любую из ячеек диапазона хранения ваших данных, на вкладке «Данные», нужно найти пункт «Дополнительно» и в открывшемся диалоговом окне «Расширенный фильтр» мы видим переключатель «Скопировать результат, в другое место» который позволяет вам перенести полученные данные в указанное место, но нам это пока не нужно. «Исходный диапазон» в диалоговом окне проставляется по умолчанию, а вот «Диапазон условий» вам нужно проставить вручную. Советую не спешить и указывать только заполненные строки с условием, так как пустая строка в диапазоне — это условие — «отобрать всё что есть». При подтверждении введенных условий в диалоговом окне «Расширенный фильтр» мы получаем указанный результат.

    С помощью макроса

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

    Выходом из создавшегося положения можно найти, используя в работе возможности макроса.

         Для улучшения эффективности работы вам нужно клацнуть на ярлыке вашего текущего листа правой кнопкой мышки и в контекстном окне выбрать пункт «Исходный текст» и в появившееся диалоговое окно ввести код:

    Private Sub Worksheet_Change(ByVal Target As Range)     If Not Intersect(Target, Range(“C2:I2”)) Is Nothing Then         On Error Resume Next         ActiveSheet.ShowAllData         Range(“C5”).CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(“C1”).CurrentRegion     End If End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)    If Not Intersect(Target, Range(“C2:I2”)) Is Nothing Then        On Error Resume Next        ActiveSheet.ShowAllData        Range(“C5”).CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(“C1”).CurrentRegion    End IfEnd Sub

         Этот код будет автоматически, применятся при любом изменении полей и накладывать фильтр на ваши данные. Он просматривает диапазон (C2:I2) на наличие введенных данных и мгновенно применяет условия, к диапазону ваших данных, которые начинаются с ячейки (C5).

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

         Вот предоставлены варианты:

    УсловиеПолученный результат
    =?????=в??а=*ф?яОтбор всех ячеек, где есть пять символов. (Например, Прага)Отбор текста на 4 знака, который начинается с «в» и заканчивается на «а» (Например, Вена)Отбор значений с тремя буквами в конце, одна из которых неизвестна (Например, София)
    =пр=п*р=*н=римОтбор всех значений, которые начинаются с букв «пр» (Например, Прага)Отбор значений, которые начинаются с «п», содержат или заканчиваются на «р» (Например, Париж)Отбор значений, которые заканчиваются на «н» (Например, Берлин)Отбор точного совпадения (Например, Рим)
    =>=40=20>=рмонарх*

    Источник: //topexcel.ru/kak-ispolzovat-rasshirennyj-filtr-v-excel/

    Фильтр №2 – расширенный фильтр!

    Для начала работы необходимо создать над базой данных еще одну таблицу, в которой будем указывать данные, являющиеся критериями отбора расширенного фильтра. (Иногда удобнее такую таблицу разместить на новом листе.)

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

    1. Открываем в MS Excel файл database.xls.

    2. Создавая таблицу критериев отбора расширенного фильтра, рекомендую вначале действовать шаблонно, не задумываясь о задачах, которые предстоит решать. Копируем все заголовки столбцов-полей из ячеек A7…F7 в ячейки A1…F1 – заготовка для таблицы критериев готова! Можно приступать к основной работе.

    Для стабильной и безошибочной работы фильтра между таблицей критериев отбора и таблицей базы данных обязательно должна быть хотя бы одна пустая строка!

    Продолжим изучать расширенный фильтр в Excel, решая практические задачи на примере работы с базой данных БД2 «Выпуск металлоконструкций участком №2».

    Показать информацию о выпуске балок по всем заказам за весь период

    1. Записываем параметр фильтрации – слово «балка» в столбце «Изделие» верхней таблицы критериев отбора.

    2. Активируем («встаем мышью») любую ячейку внутри таблицы базы данных – это обеспечит автоматическое заполнение окошка «Исходный диапазон» в выпадающем диалоговом окне «Расширенный фильтр».

    3. Включаем расширенный фильтр в Excel 2003 через главное меню программы. Выбираем: «Данные» — «Фильтр» — «Расширенный фильтр».

    4. В выпавшем окне «Расширенный фильтр» заполняем окна так, как показано на снимке экрана, расположенном ниже этого текста.

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

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

    Регистр букв не влияет на результаты фильтрации!

    Правила совместной «работы» нескольких условий отбора

    Расширенный фильтр в Excel позволяет выполнить отбор по различным весьма сложным сочетаниям условий фильтрации. Можно задать несколько разных условий для нескольких столбцов, можно задать несколько условий для одного столбца или задать параметры отбора формулой  – вариантов очень много!

    Но главных правил — всего два! Все остальные случаи — различные сочетания этих двух правил.

    1. Условия отбора, размещенные на одной строке в одном или нескольких разных столбцах таблицы критериев, предписывают расширенному фильтру показывать строки, для которых выполняются одновременно все без исключения эти условия. (Параметры отбора соединены логическими операторами «И».)

    2. Условия отбора, размещенные на разных строках в одном или нескольких столбцах таблицы критериев, предписывают расширенному фильтру показывать все строки, для которых выполняется хотя бы одно из этих условий. (Параметры отбора соединены логическими операторами «ИЛИ».)

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

    //www.youtube.com/watch?v=zA6eLjntd7Y

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

    Отфильтровать информацию о пластинах массой менее 0,1 тонны по всей базе

    В результате работы расширенного фильтра показаны все пластины базы данных, имеющие массу менее 0,1 тонны (иллюстрация правила №1).

    Вывести информацию обо всех имеющихся в базе пластинах, а так же о прочих любых изделиях массой более 1 тонны

    Задача решена – показаны записи обо всех пластинах базы данных и обо всех изделиях тяжелее 1 тонны (иллюстрация правила №2).

    Для отмены действия расширенного фильтра необходимо выполнить команду главного меню программы Excel «Данные» — «Фильтр» — «Отобразить все».

    Обращаю внимание на необходимость внимательного контроля корректности указания исходного диапазона базы данных и диапазона таблицы условий в выпадающем диалоговом окне «Расширенный фильтр»!

    В частности, в последнем примере необходимо указать: «Диапазон условий: $A$1:$F$3»!

    Если в диапазоне условий или в вашей базе окажутся полностью  пустые строки, то расширенный фильтр работать не будет!

    Итоги

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

    • * — любое количество любых символов
    • ? – один любой символ
    • = — равно
    •  — больше
    • = — больше или равно
    •  — не равно

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

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

    «Поковыряйтесь» самостоятельно в возможностях этого инструмента — он стоит того, чтобы в нем разобраться! Возросшая эффективность вашей работы многократно перекроет затраты времени потраченного на изучение!

    Источник: //msk.edu.ua/ivk/Informatika/1_kurs/Z31/Rasshirenniy_filtr_v_Excel.php

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.