Excel VBA: расширенный фильтр с несколькими критериями в диапазоне (5 методов) -...

  • Поделись Этим
Hugh West

При работе с большими объемами данных и необходимости установки нескольких фильтров одновременно, Расширенная фильтрация в Excel также может быть использован для очистки данных путем удаления копий. Во время применения функции Расширенный фильтр , the VBA Код намного легче выполнять. В этом учебнике мы покажем вам, как применять Расширенный фильтр VBA для диапазона нескольких критериев в Excel .

Скачать Рабочую тетрадь для практических занятий

Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.

VBA Расширенный фильтр.xlsm

5 эффективных методов расширенного фильтра VBA с несколькими критериями в диапазоне в Excel

В следующих разделах ниже мы обсудим 5 методы использования Расширенный фильтр VBA для нескольких критериев. Сначала вам может понадобиться знать синтаксис выражения Расширенный фильтр VBA .

Синтаксис расширенного фильтра VBA:

  • AdvancedFilter: относится к объекту диапазона. Вы можете задать свой диапазон, в котором вы хотите применить фильтр.
  • Действия: является обязательным аргументом, который имеет два варианта, xlFilterInPlace или xlFilterCopy . xlFilterInPlace используется для фильтрации значения в том месте, где находится набор данных. xlFilterCopy используется для получения значения фильтра в другом желаемом месте.
  • КритерииДиапазон: представляет собой критерий, по которому будет отфильтровано значение.
  • CopyToRange: это место, где вы будете сохранять результаты фильтрации.
  • Уникальный: является необязательным аргументом. Используйте Правда аргумент для фильтрации только уникальных значений. В противном случае, по умолчанию, он рассматривается как Ложь .

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

1. Применение расширенного фильтра VBA для критериев ИЛИ в диапазоне в Excel

В первом методе мы будем применять ИЛИ критерии, используя Расширенный фильтр VBA Допустим, мы хотим отфильтровать данные по названию продукта. Cookies и Шоколад . Для применения ИЛИ критерии, необходимо разместить значения в разных строках. Для выполнения задания выполните описанные ниже шаги.

Шаг 1:

  • Нажмите Альт + F11 чтобы открыть Макрос VBA .
  • Нажмите на Вставка.
  • Выберите Модуль.

Шаг 2:

  • Затем вставьте следующее VBA код для применения ИЛИ.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Шаг 3:

  • Затем сохраните программу и нажмите кнопку F5 бежать.
  • Таким образом, вы получите отфильтрованные результаты, как показано на рисунке ниже.

Примечания. Чтобы обратить процесс вспять или удалить всю фильтровальную пасту, выполните следующие действия VBA программа.

 Sub Remove_All_Filter() On Error Resume Next 'команда удаления всех фильтров для отображения предыдущего набора данных ActiveSheet.ShowAllData End Sub 

  • В результате вы получите предыдущую версию вашего набора данных.

Подробнее: Примеры расширенного фильтра с критериями (6 критериев) в Excel VBA

2. Выполните расширенный фильтр VBA для критериев AND в диапазоне в Excel

Аналогично предыдущему методу, теперь мы выполним процедуру VBA Расширенный фильтр для И критерии. Допустим, мы хотим узнать печенье с ценой $0.65 как показано на скриншоте ниже. Для применения ИЛИ критерии, вы должны поместить значение в разные столбцы. Чтобы применить критерий И критерии, следуйте приведенным ниже инструкциям.

Шаг 1:

  • Чтобы открыть Макрос VBA , нажмите Альт + F11
  • После открытия Макрос VBA , вставьте следующее VBA коды в новом Модуле.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Шаг 2:

  • Нажмите F5 чтобы запустить программу после ее сохранения.
  • Наконец, получите отфильтрованные результаты.

Читать далее: VBA для копирования данных на другой лист с расширенным фильтром в Excel

3. Использование расширенного фильтра VBA для критериев OR с AND в диапазоне в Excel

Вы также можете применить ИЛИ и И критерии в комбинации. Например, вы хотите получить значения для Cookies или Шоколадные конфеты , но для Печенье, есть еще один критерий цена $0.65 будут применены. Для этого выполните следующие действия.

Шаг 1:

  • Вставьте следующее VBA коды после открытия Макрос VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Применяем расширенный фильтр для фильтрации набора данных с использованием критериевDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Шаг 2:

  • Затем сохраните программу, сначала нажав кнопку F5 чтобы запустить его.
  • Следовательно, вы найдете значения с определенными И и ИЛИ.

Подробнее: Применение расширенного фильтра на основе нескольких критериев в одном столбце в Excel

Похожие чтения:

  • Расширенный фильтр с несколькими критериями в Excel (15 подходящих примеров)
  • Динамический расширенный фильтр Excel (VBA & Macro)
  • Как использовать расширенный фильтр в VBA (пошаговое руководство)
  • Расширенный фильтр с диапазоном критериев в Excel (18 приложений)
  • Расширенный фильтр Excel не работает (2 причины и решения)

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

Более того, если в вашем наборе данных есть дубликаты, вы можете удалить их при фильтрации. Мы добавим параметр Уникальный аргумент к Правда чтобы получить только уникальные значения и удалить дубликаты. Следуйте изложенным инструкциям.

Шаг 1:

  • Во-первых, откройте VBA Макрос, нажав кнопку Альт + F11.
  • Вставьте следующее VBA коды в новом Модуле.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Шаг 2:

  • Затем нажмите F5 чтобы запустить программу после сохранения.
  • Поэтому вы получите значения только для уникальных.

Подробнее: Как использовать расширенный фильтр только для уникальных записей в Excel

5. Выполните расширенный фильтр VBA для условного случая

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

Шаг 1:

  • Во-первых, чтобы открыть Макрос VBA , нажмите Альт + F11 .
  • Выберите новый Модуль и вставьте следующее Коды VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Шаг 2:

  • Во-вторых, сохраните программу и нажмите кнопку F5 чтобы увидеть результаты.

Примечания. Кроме того, вы можете получить результаты в благоприятном пространстве, будь то в новом диапазоне или на новом рабочем листе, применив функцию xlFilterCopy действие. Просто, вставьте VBA коды и запустите их, чтобы получить результаты в Лист6 в диапазоне B4:E11 .

 'Объявляем переменные для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Применяем расширенный фильтр для фильтрации набора данных по критериям Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Соответственно, посмотрите конечный результат в новом рабочем листе 'Sheet6' .

Подробнее: Как использовать расширенный фильтр, если диапазон критериев содержит текст в Excel

Заключение

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

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

Сайт Exceldemy сотрудники ответят на ваши запросы как можно быстрее.

Оставайтесь с нами и продолжайте учиться.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.