Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще…Меньше
Функция ФИЛЬТР позволяет выполнять фильтрацию диапазона данных на основе условий, которые вы определяете.
В следующем примере мы использовали формулу =FILTER(A5:D20,C5:C20=H2,»») для возврата всех записей Для Apple, как указано в ячейке H2, и если яблок нет, возвращается пустая строка («»).
Функция ФИЛЬТР фильтрует массив с учетом массива логических значений (ИСТИНА/ЛОЖЬ).
=ФИЛЬТР(массив;включить;[если_пусто])
Аргумент |
Описание |
массив Обязательный элемент |
Массив или диапазон для фильтрации |
включить Обязательный элемент |
Массив логических переменных с аналогичной высотой или шириной, что и массив. |
[если_пусто] Необязательный элемент |
Значение, возвращаемое, если все значения во включенном массиве пустые (фильтр не возвращает ничего) |
Примечания:
-
Массив может рассматриваться как ряд значений, столбец со значениями или комбинация строк и столбцов значений. В приведенном выше примере массив для нашей формулы ФИЛЬТР представляет собой диапазон A5:D20.
-
Функция ФИЛЬТР возвращает массив, который будет переноситься на другие ячейки, если является конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши ВВОД. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете структурированные ссылки. Дополнительные сведения см. в статье о переносе массива.
-
Если набор данных потенциально может возвращать пустое значение, используйте третий аргумент ([если_пусто]). В противном случае возникнет ошибка #ВЫЧИС! , так как Excel в настоящее время не поддерживает пустые массивы.
-
Если какое-либо значение аргумента include является ошибкой (#N/A, #VALUE и т. д.) или не может быть преобразовано в логическое значение, функция FILTER вернет ошибку.
-
Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.
Примеры
Функция ФИЛЬТР, используемая для возврата нескольких условий
В данном случае мы используем оператор умножения (*) для возврата всех значений в диапазоне массива (A5:D20), содержащих текст «Яблоко» И находящихся в восточном регионе: =ФИЛЬТР(A5:D20;(C5:C20=H1)*(A5:A20=H2);»»).
Функция ФИЛЬТР, используемая для возврата нескольких условий и сортировки
В данном случае мы используем предыдущую функцию ФИЛЬТР с функцией СОРТ для возврата всех значений в диапазоне массива (A5:D20), содержащих текст «Яблоко» И находящихся в восточном регионе, а затем для сортировки единиц в порядке убывания: =СОРТ(ФИЛЬТР(A5:D20;(C5:C20=H1)*(A5:A20=H2);»»);4;-1)
В данном случае мы используем функцию ФИЛЬТР с оператором сложения (+) для возврата всех значений в диапазоне массива (A5:D20), содержащих текст «Яблоко» ИЛИ находящихся в восточном регионе, а затем для сортировки единиц в порядке убывания: =СОРТ(ФИЛЬТР(A5:D20;(C5:C20=H1)+(A5:A20=H2);»»),4;-1).
Обратите внимание на то, что ни одна из функций не требует абсолютных ссылок, так как они находятся только в одной ячейке, а их результаты переносятся в соседние ячейки.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Функция СЛМАССИВ
Функция ПОСЛЕДОВ
Функция СОРТ
Функция СОРТПО
Функция УНИК
Ошибки #ПЕРЕНОС! в Excel
Динамические массивы и поведение массива с переносом
Оператор неявного пересечения: @
Нужна дополнительная помощь?
С помощью автофилеров или встроенных операторов сравнения, таких как «больше» и «10 лучших» в Excel вы можете показать нужные данные и скрыть остальные. После фильтрации данных в диапазоне ячеек или таблице вы можете повторно использовать фильтр, чтобы получить последние результаты, или очистить фильтр, чтобы повторно отфильтровать все данные.
Используйте фильтры, чтобы временно скрывать некоторые данные в таблице и видеть только те, которые вы хотите.
Фильтрация диапазона данных
-
Выберите любую ячейку в диапазоне данных.
-
Выберите Фильтр> данных.
-
Выберите стрелку в столбце
.
-
Выберите Текстовые фильтры или Числовое фильтры, а затем выберите сравнение, например Между.
-
Введите условия фильтрации и нажмите кнопку ОК.
Фильтрация данных в таблице
При вводе данных в таблицу в заголовки ее столбцов автоматически добавляются элементы управления фильтрацией.
-
Выберите стрелку в
столбца, который вы хотите отфильтровать.
-
Сберем (Выберите все) и выберем поля, которые вы хотите отобрать.
-
Нажмите кнопку ОК.
Стрелка загона столбца
меняется на
фильтра. Щелкните этот значок, чтобы изменить или очистить фильтр.
Статьи по теме
Excel Учебный курс. Фильтрация данных в таблице
Рекомендации и примеры для сортировки и фильтрации данных по цвету
Фильтрация данных в сводной таблице
Использование расширенных условий фильтрации
Удаление фильтра
Отфильтрованные данные отображают только строки, которые соответствуют условия и скрывают строки, которые отображать не нужно. Фильтруя данные, вы можете копировать, находить, изменять, форматирование, диаграммы и печатать подмножество отфильтрованных данных, не меняя их оголовье и не перемещая.
Вы также можете отфильтровать несколько столбцов. Фильтры являются аддитивно, то есть каждый дополнительный фильтр основан на текущем фильтре и дополнительно уменьшает подмножество данных.
Примечание: При использовании диалогового окна Найти для поиска отфильтрованных данных поиск ведется только по отображаемой информации. данные, которые не отображаются, не поиск не ведется. Чтобы найти все данные, очистка всех фильтров.
Два типа фильтров
С помощью автофильтра можно создать два типа фильтров: по значению списка или по условиям. Каждый из этих типов фильтров является взаимоисключающими для каждого диапазона ячеек или таблицы столбцов. Например, можно отфильтровать значения по списку чисел или по критерию, но не по обоим критериям. можно фильтровать по значкам или по настраиваемой фильтрации, но не по обоим.
Повторное присвоение фильтра
Чтобы определить, применяется ли фильтр, обратите внимание на значок в заголовке столбца:
-
Стрелка вниз
означает, что фильтрация включена, но не применена.
Если наведите курсор на заголовок столбца с включенной фильтрацией, но не примененной, на экране появляется подсказка «(Отображает все)».
-
Кнопка Фильтр
означает, что применяется фильтр.
Когда вы наводите курсор на заголовок отфильтрованного столбца, на подсказке отображается примененный к этому столбец фильтр, например «Равно красному цвету ячейки» или «Больше 150».
При повторном его повторном анализе отображаются разные результаты по следующим причинам:
-
Данные были добавлены, изменены или удалены в диапазон ячеек или столбец таблицы.
-
значения, возвращаемые формулой, изменились, и лист был пересчитан.
Не смешивать типы данных
Для лучших результатов не смешивайте типы данных, такие как текст и число, число и дата в одном столбце, так как для каждого столбца доступна только одна команда фильтра. Если имеется сочетание типов данных, отображаемая команда является самым распространенным типом данных. Например, если столбец содержит три значения, сохраненные как число, и четыре значения как текст, отображается команда Текстовые фильтры.
Фильтрация данных в таблице
При вводе данных в таблицу в заголовки ее столбцов автоматически добавляются элементы управления фильтрацией.
-
Выделите данные, которые нужно отфильтровать. На вкладке Главная нажмите кнопку Форматировать как таблицу и выберите команду Форматировать как таблицу.
-
В диалоговом окне Создание таблицы можно выбрать, есть ли в таблице заглавные таблицы.
-
Выберите Таблица с заголовками, чтобы преобразовать верхнюю строку в заголовки таблицы. Данные в этой строке не будут фильтроваться.
-
Не выбирайте этот пункт, если вы хотите Excel в Интернете в таблицу под данными таблицы, которые можно переименовать.
-
-
Нажмите кнопку ОК.
-
Чтобы применить фильтр, щелкните стрелку в заголовке столбца и выберите параметр фильтрации.
Фильтрация диапазона данных
Если вы не хотите форматирование данных в виде таблицы, вы также можете применить фильтры к диапазону данных.
-
Выделите данные, которые нужно отфильтровать. Для лучшего результата столбцы должны иметь заголовки.
-
На вкладке Данные выберите фильтр.
Параметры фильтрации для таблиц или диапазонов
Можно применить общий фильтр, выбрав пункт Фильтр, или настраиваемый фильтр, зависящий от типа данных. Например, при фильтрации чисел отображается пункт Числовые фильтры, для дат отображается пункт Фильтры по дате, а для текста — Текстовые фильтры. Применяя общий фильтр, вы можете выбрать для отображения нужные данные из списка существующих, как показано на рисунке:
Выбрав параметр Числовые фильтры вы можете применить один из перечисленных ниже настраиваемых фильтров.
В этом примере, чтобы отобрать регионы, в которых сумма продаж за март была меньше 6000, можно применить настраиваемый фильтр:
Вот как это сделать.
-
Щелкните стрелку фильтра в ячейке со словом «Март», выберите пункт Числовые фильтры и условие Меньше и введите значение 6000.
-
Нажмите кнопку ОК.
Excel в Интернете применяет фильтр и отображает только регионы с продажами ниже 6000 рублей.
Аналогичным образом можно применить фильтры по дате и текстовые фильтры.
Очистка фильтра из столбца
-
Нажмите кнопку Фильтр
рядом с заголовком столбца и выберите очистить фильтр <«Имя столбца»>.
Удаление всех фильтров из таблицы или диапазона
-
Выберите любую ячейку в таблице или диапазоне и на вкладке Данные нажмите кнопку Фильтр.
При этом фильтры будут удаляться из всех столбцов таблицы или диапазона и вывести все данные.
-
Щелкните ячейку в диапазоне или таблице, которую хотите отфильтровать.
-
На вкладке Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В разделе Фильтр щелкните Выберите один из вариантов и введите условия фильтра.
Примечания:
-
Фильтры можно применить только к одному диапазону ячеек на листе за раз.
-
Когда фильтр применяется к столбцу, в других столбцах в качестве фильтров можно использовать только значения, видимые в текущем отфильтрованном диапазоне.
-
В окне фильтра отображаются только первые 10 000 уникальных записей списка.
-
Щелкните ячейку в диапазоне или таблице, которую хотите отфильтровать.
-
На вкладке Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В разделе Фильтр щелкните Выберите один из вариантов и введите условия фильтра.
-
В поле рядом с всплывающим меню введите число, которое хотите использовать.
-
В зависимости от сделанного выбора вам может быть предложено выбрать дополнительные условия.
Примечания:
-
Фильтры можно применить только к одному диапазону ячеек на листе за раз.
-
Когда фильтр применяется к столбцу, в других столбцах в качестве фильтров можно использовать только значения, видимые в текущем отфильтрованном диапазоне.
-
В окне фильтра отображаются только первые 10 000 уникальных записей списка.
-
Вместо фильтрации можно использовать условное форматирование, которое позволяет четко выделить верхние или нижние числовые значения среди данных.
Данные можно быстро фильтровать на основании визуальных условий, таких как цвет шрифта, цвет ячейки или наборы значков. Можно также фильтровать ячейки по наличию в них формата, примененных стилей или условного форматирования.
-
В диапазоне ячеек или столбце таблицы щелкните ячейку с определенным цветом, цветом шрифта или значком, по которому вы хотите выполнить фильтрацию.
-
На вкладке Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В разделе Фильтр во всплывающем меню По цвету щелкните Цвет ячейки, Цвет шрифта или Значок ячейки и выберите цвет.
Это возможно только в случае, если фильтруемый столбец содержит пустую ячейку.
-
Щелкните ячейку в диапазоне или таблице, которую хотите отфильтровать.
-
На панели инструментов Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В области (Выделить все) прокрутите список вниз и установите флажок (Пустые).
Примечания:
-
Фильтры можно применить только к одному диапазону ячеек на листе за раз.
-
Когда фильтр применяется к столбцу, в других столбцах в качестве фильтров можно использовать только значения, видимые в текущем отфильтрованном диапазоне.
-
В окне фильтра отображаются только первые 10 000 уникальных записей списка.
-
-
Щелкните ячейку в диапазоне или таблице, которую хотите отфильтровать.
-
На вкладке Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В разделе Фильтр щелкните Выберите один из вариантов и во всплывающем меню выполните одно из указанных ниже действий.
Цель фильтрации диапазона
Операция
Строки с определенным текстом
Содержит или Равно.
Строки, не содержащие определенный текст
Не содержит или Не равно.
-
В поле рядом с всплывающим меню введите текст, которое хотите использовать.
-
В зависимости от сделанного выбора вам может быть предложено выбрать дополнительные условия.
Задача
Операция
Фильтрация столбца или выделенного фрагмента таблицы при истинности обоих условий
И.
Фильтрация столбца или выделенного фрагмента таблицы при истинности одного из двух или обоих условий
Или.
-
Щелкните ячейку в диапазоне или таблице, которую хотите отфильтровать.
-
На панели инструментов Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В разделе Фильтр щелкните Выберите один из вариантов и во всплывающем меню выполните одно из указанных ниже действий.
Условие фильтрации
Операция
Начало строки текста
Начинается с.
Окончание строки текста
Заканчивается на.
Ячейки, которые содержат текст, но не начинаются с букв
Не начинаются с.
Ячейки, которые содержат текст, но не оканчиваются буквами
Не заканчиваются.
-
В поле рядом с всплывающим меню введите текст, которое хотите использовать.
-
В зависимости от сделанного выбора вам может быть предложено выбрать дополнительные условия.
Задача
Операция
Фильтрация столбца или выделенного фрагмента таблицы при истинности обоих условий
И.
Фильтрация столбца или выделенного фрагмента таблицы при истинности одного из двух или обоих условий
Или.
При создании условий можно использовать подстановочные знаки.
-
Щелкните ячейку в диапазоне или таблице, которую хотите отфильтровать.
-
На панели инструментов Данные щелкните Фильтр.
-
Щелкните стрелку
в столбце с содержимым, которое вы хотите отфильтровать.
-
В разделе Фильтр щелкните Выберите один из вариантов и выберите вариант.
-
В текстовом поле введите свои условия, используя подстановочные знаки.
Например, чтобы в результате фильтрации найти оба слова «год» и «гид», введите г?д.
-
Выполните одно из указанных ниже действий.
Используемый знак
Чтобы найти
? (вопросительный знак)
Любой символ
Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»
Звездочка (*)
Любое количество символов
Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»
Тильда (~)
Вопросительный знак или звездочка
Например, там~? находит «там?»
Выполните одно из указанных ниже действий.
Задача |
Действие |
---|---|
Удаление определенных условий фильтрации |
Щелкните стрелку |
Удаление всех фильтров, примененных к диапазону или таблице |
Выделите столбцы диапазона или таблицы, к которым применяются фильтры, а затем на вкладке Данные щелкните Фильтр. |
Удаление или повторное применение стрелок фильтра в диапазоне или таблице |
Выделите столбцы диапазона или таблицы, к которым применяются фильтры, а затем на вкладке Данные щелкните Фильтр. |
При фильтрации данных появляются только данные, которые соответствуют вашим условиям. Данные, которые не соответствуют этому критерию, скрыты. После фильтрации данных можно копировать, находить, изменять, форматирование, диаграммы и печатать подмножество отфильтрованных данных.
Таблица с примененным фильтром «4 самых верхних элементов»
Фильтры забавляются. Это означает, что каждый дополнительный фильтр основан на текущем фильтре и дополнительно уменьшает подмножество данных. Сложные фильтры можно отфильтровать по одному значению, по одному формату или по одному критерию. Например, можно отфильтровать все числа больше 5, которые также ниже среднего. Но некоторые фильтры (десять верхних и нижних, выше и ниже среднего) основаны на исходном диапазоне ячеек. Например, при фильтрации десяти лучших значений вы увидите десять лучших значений всего списка, а не десять лучших значений подмножество последнего фильтра.
В Excel можно создавать фильтры трех типов: по значениям, по формату или по условиям. Но каждый из этих типов фильтров является взаимоисключающими. Например, можно отфильтровать значения по цвету ячейки или по списку чисел, но не по обоим. Вы можете фильтровать по значкам или по настраиваемой фильтрации, но не по обоим.
Фильтры скрывают лишние данные. Таким образом можно сосредоточиться на том, что вы хотите видеть. С другой стороны, при сортировке данных их порядок будет меняться. Дополнительные сведения о сортировке см. в списке сортировки данных.
При фильтрации рассмотрите следующие рекомендации:
-
В окне фильтра отображаются только первые 10 000 уникальных записей списка.
-
Можно отфильтровать несколько столбцов. Когда фильтр применяется к столбцу, в других столбцах в качестве фильтров можно использовать только значения, видимые в текущем отфильтрованном диапазоне.
-
Фильтры можно применить только к одному диапазону ячеек на листе за раз.
Примечание: При использовании поиска найти для поиска отфильтрованных данных поиск ведется только по отображаемой информации; данные, которые не отображаются, не поиск не ведется. Чтобы найти все данные, очистка всех фильтров.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
#Руководства
- 5 авг 2022
-
0
Как из сотен строк отобразить только необходимые? Как отфильтровать таблицу сразу по нескольким условиям и столбцам? Разбираемся на примерах.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Фильтры в Excel — инструмент, с помощью которого из большого объёма информации выбирают и показывают только нужную в данный момент. После фильтрации в таблице отображаются данные, которые соответствуют условиям пользователя. Данные, которые им не соответствуют, скрыты.
В статье разберёмся:
- как установить фильтр по одному критерию;
- как установить несколько фильтров одновременно и отфильтровать таблицу по заданному условию;
- для чего нужен расширенный фильтр и как им пользоваться;
- как очистить фильтры.
Фильтрация данных хорошо знакома пользователям интернет-магазинов. В них не обязательно листать весь ассортимент, чтобы найти нужный товар. Можно заполнить критерии фильтра, и платформа скроет неподходящие позиции.
Фильтры в Excel работают по тому же принципу. Пользователь выбирает параметры данных, которые ему нужно отобразить, — и Excel убирает из таблицы всё лишнее.
Разберёмся, как это сделать.
Для примера воспользуемся отчётностью небольшого автосалона. В таблице собрана информация о продажах: характеристики авто, цены, даты продажи и ответственные менеджеры.
Скриншот: Excel / Skillbox Media
Допустим, нужно показать продажи только одного менеджера — Соколова П. Воспользуемся фильтрацией.
Шаг 1. Выделяем ячейку внутри таблицы — не обязательно ячейку столбца «Менеджер», любую.
Скриншот: Excel / Skillbox Media
Шаг 2. На вкладке «Главная» нажимаем кнопку «Сортировка и фильтр».
Скриншот: Excel / Skillbox Media
Шаг 3. В появившемся меню выбираем пункт «Фильтр».
Скриншот: Excel / Skillbox Media
То же самое можно сделать через кнопку «Фильтр» на вкладке «Данные».
Скриншот: Excel / Skillbox Media
Шаг 4. В каждой ячейке шапки таблицы появились кнопки со стрелками — нажимаем на кнопку столбца, который нужно отфильтровать. В нашем случае это столбец «Менеджер».
Скриншот: Excel / Skillbox Media
Шаг 5. В появившемся меню флажком выбираем данные, которые нужно оставить в таблице, — в нашем случае данные менеджера Соколова П., — и нажимаем кнопку «Применить фильтр».
Скриншот: Excel / Skillbox Media
Готово — таблица показывает данные о продажах только одного менеджера. На кнопке со стрелкой появился дополнительный значок. Он означает, что в этом столбце настроена фильтрация.
Скриншот: Excel / Skillbox Media
Чтобы ещё уменьшить количество отображаемых в таблице данных, можно применять несколько фильтров одновременно. При этом как фильтр можно задавать не только точное значение ячеек, но и условие, которому отфильтрованные ячейки должны соответствовать.
Разберём на примере.
Выше мы уже отфильтровали таблицу по одному параметру — оставили в ней продажи только менеджера Соколова П. Добавим второй параметр — среди продаж Соколова П. покажем автомобили дороже 1,5 млн рублей.
Шаг 1. Открываем меню фильтра для столбца «Цена, руб.» и нажимаем на параметр «Выберите».
Скриншот: Excel / Skillbox Media
Шаг 2. Выбираем критерий, которому должны соответствовать отфильтрованные ячейки.
В нашем случае нужно показать автомобили дороже 1,5 млн рублей — выбираем критерий «Больше».
Скриншот: Excel / Skillbox Media
Шаг 3. Дополняем условие фильтрации — в нашем случае «Больше 1500000» — и нажимаем «Применить фильтр».
Скриншот: Excel / Skillbox Media
Готово — фильтрация сработала по двум параметрам. Теперь таблица показывает только те проданные менеджером авто, цена которых была выше 1,5 млн рублей.
Скриншот: Excel / Skillbox Media
Расширенный фильтр позволяет фильтровать таблицу по сложным критериям сразу в нескольких столбцах.
Это можно сделать способом, который мы описали выше: поочерёдно установить несколько стандартных фильтров или фильтров с условиями пользователя. Но в случае с объёмными таблицами этот способ может быть неудобным и трудозатратным. Для экономии времени применяют расширенный фильтр.
Принцип работы расширенного фильтра следующий:
- Копируют шапку исходной таблицы и создают отдельную таблицу для условий фильтрации.
- Вводят условия.
- Запускают фильтрацию.
Разберём на примере. Отфильтруем отчётность автосалона по трём критериям:
- менеджер — Шолохов Г.;
- год выпуска автомобиля — 2019-й или раньше;
- цена — до 2 млн рублей.
Шаг 1. Создаём таблицу для условий фильтрации — для этого копируем шапку исходной таблицы и вставляем её выше.
Важное условие — между таблицей с условиями и исходной таблицей обязательно должна быть пустая строка.
Скриншот: Excel / Skillbox Media
Шаг 2. В созданной таблице вводим критерии фильтрации:
- «Год выпуска» → <=2019.
- «Цена, руб.» → <2000000.
- «Менеджер» → Шолохов Г.
Скриншот: Excel / Skillbox Media
Шаг 3. Выделяем любую ячейку исходной таблицы и на вкладке «Данные» нажимаем кнопку «Дополнительно».
Скриншот: Excel / Skillbox Media
Шаг 4. В появившемся окне заполняем параметры расширенного фильтра:
- Выбираем, где отобразятся результаты фильтрации: в исходной таблице или в другом месте. В нашем случае выберем первый вариант — «Фильтровать список на месте».
- Диапазон списка — диапазон таблицы, для которой нужно применить фильтр. Он заполнен автоматически, для этого мы выделяли ячейку исходной таблицы перед тем, как вызвать меню.
Скриншот: Excel / Skillbox Media
- Диапазон условий — диапазон таблицы с условиями фильтрации. Ставим курсор в пустое окно параметра и выделяем диапазон: шапку таблицы и строку с критериями. Данные диапазона автоматически появляются в окне параметров расширенного фильтра.
Скриншот: Excel / Skillbox Media
Шаг 5. Нажимаем «ОК» в меню расширенного фильтра.
Готово — исходная таблица отфильтрована по трём заданным параметрам.
Скриншот: Excel / Skillbox Media
Отменить фильтрацию можно тремя способами:
1. Вызвать меню отфильтрованного столбца и нажать на кнопку «Очистить фильтр».
Скриншот: Excel / Skillbox Media
2. Нажать на кнопку «Сортировка и фильтр» на вкладке «Главная». Затем — либо снять галочку напротив пункта «Фильтр», либо нажать «Очистить фильтр».
Скриншот: Excel / Skillbox Media
3. Нажать на кнопку «Очистить» на вкладке «Данные».
Скриншот: Excel / Skillbox Media
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Filtering data helps focusing on certain aspects of a data set. Excel has built-in features for this, an Excel formula for filtering data was not in the software’s scope until the introduction of dynamic array functions. In this guide, we’re going to show you how you can use Excel formula for filtering data.
Syntax
=IFERROR(INDEX(list range,SMALL(IF(criteria=criteria range,ROW(criteria range),»»),ROW()-ROW(return title cell))),»»)
Steps
- Select the range of cells that will be populated with filtered values
- Start the formula with = IFERROR( function to return empty string when an error occurs)
- Continue with INDEX(
- Select or type in the range reference that contains your original list B:B,
- Continue with the SMALL( function which provides the row indexes of cells
- Next, use IF( to return an array that contains the numbers and empty strings
- Use an equation to filter $E$3=C:C, the criteria cell should be an absolute reference
- Continue with ,ROW(C:C),»»), which will provide TRUE/FALSE conditions for the IF function
- Type in ROW()-ROW(E5) to generate an incremental number for array from the IF function
- Type in )),»») and press Ctrl + Shift + Enter to complete the array formula
How
To filter out values from a range, we need to pinpoint the cells that meet a certain condition, and retrieve them from the original list. Keep mind that we’re going to need to create an array formula to avoid to creating several helper columns, and use a single Excel formula for filtering data. As a result, the formulas will return array values.
Our example returns values from column B by searching the value of cell E3 in column C. This condition leads to the logical test,
This test returns an array of Boolean values (TRUE and FALSE). For example, if the value of cell E3 is «I», the logical test returns an array like below,
{FALSE;FALSE;TRUE;TRUE;TRUE;…….;FALSE}
These Boolean values become the logical test values for the IF function. The IF function provides the row numbers of cells that meet the criteria, and returns empty strings for others.
The IF function here returns an array. This time an array of row numbers and empty strings.
{«»;»»;3;4;5;…….;»»}
The next step is sorting the row numbers in our new array. The SMALL function can return the nth smallest number from an array. Also note that Excel evaluates string values as almost infinitely large numbers, making any other number small in comparison. This is the reason why the SMALL function is used instead of the LARGE function. To assign an ‘n’ value to the SMALL function, we use the ROW function again with a single cell that should be one cell above the first row to return numbers from 1, and use a relative reference to increase its row number. As a result; SMALL(IF($E$3=C:C,ROW(C:C),»»),ROW()-ROW(E5)) formula returns a row index value which will be used by the INDEX function to return a value from a non-empty cell.
{1}
The INDEX function selects the reference to return values, and the IFERROR envelops the nested formula to avoid errors.
=IFERROR(INDEX(B:B,SMALL(IF($E$3=C:C,ROW(C:C),»»),ROW()-ROW(E5))),»»)
Finally, press the Ctrl + Shift + Enter combination instead of just pressing the Enter key to enter your formula as an array formula, and you’re done!
Расширенный фильтр и немного магии
У подавляющего большинства пользователей 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), то их надо просто вводить в разные строки. Например, если нам нужно найти все заказы менеджера Волиной по московским персикам и все заказы по луку в третьем квартале по Самаре, то это можно задать в диапазоне условий следующим образом:
Если же нужно наложить два или более условий на один столбец, то можно просто продублировать заголовок столбца в диапазоне критериев и вписать под него второе, третье и т.д. условия. Вот так, например, можно отобрать все сделки с марта по май:
В общем и целом, после «доработки напильником» из расширенного фильтра выходит вполне себе приличный инструмент, местами не хуже классического автофильтра.
Ссылки по теме
- Суперфильтр на макросах
- Что такое макросы, куда и как вставлять код макросов на Visual Basic
- Умные таблицы в Microsoft Excel