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

  • Поділитися Цим
Hugh West

При роботі з великими обсягами даних і необхідності установки відразу декількох фільтрів, Розширена фільтрація в Excel Він також може бути використаний для очищення даних шляхом видалення копій. Під час використання програми Розширений фільтр "Про те, що в Україні не існує жодного закону, який би VBA код набагато простіше виконувати. У цьому уроці ми покажемо вам, як застосувати Розширений фільтр VBA за кількома критеріями в діапазоні від Excel .

Завантажити Практичний посібник

Завантажте цей практичний посібник, щоб потренуватися, поки ви читаєте цю статтю.

VBA Advanced Filter.xlsm

5 Ефективні методи для розширеного фільтра VBA з декількома критеріями в діапазоні в Excel

У наступних розділах нижче ми обговоримо 5 способи використання Розширений фільтр VBA Для початку вам може знадобитися знати синтаксис Розширений фільтр VBA .

Розширений синтаксис фільтрів VBA:

  • AdvancedFilter: відноситься до об'єкта діапазону. Ви можете задати діапазон, до якого ви хочете застосувати фільтр.
  • Мотор: є обов'язковим аргументом, який має два варіанти, xlFilterInPlace або xlFilterCopy . xlFilterInPlace використовується для фільтрації значення в тому місці, де знаходиться набір даних. xlFilterCopy використовується для отримання значення фільтра в іншому потрібному місці.
  • КритеріїДіапазон: представляє собою критерії, за якими буде фільтруватися значення.
  • CopyToRange: місце, де ви збережете результати фільтрації.
  • Унікальний: необов'язковий аргумент. Використовуйте Правда для фільтрації тільки унікальних значень. В іншому випадку, за замовчуванням, він розцінюється як Неправда. .

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

1. Застосування розширеного фільтра VBA для критерію "АБО" в діапазоні в Excel

У першому методі ми застосуємо АБО критеріїв з використанням Розширений фільтр VBA Припустимо, ми хочемо відфільтрувати дані за назвою товару Печиво і Шоколад Для того, щоб застосувати АБО Для виконання завдання дотримуйтесь наведених нижче кроків.

Крок 1:

  • Преса Alt + 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 

  • В результаті Ви отримаєте попередню версію Вашого набору даних.

Читати далі: Приклади розширеного фільтра з критеріями в Excel VBA (6 критеріїв)

2. Виконати розширений фільтр VBA для критерію "І" в діапазоні в Excel

Аналогічно до попереднього методу, тепер виконаємо VBA Розширений фільтр для І Припустимо, ми хочемо знайти печиво з ціною $0.65 як показано на скріншоті нижче. Для нанесення АБО значення слід розміщувати в різних стовпчиках. Для того, щоб застосувати критерій І критеріїв, дотримуйтесь наведених нижче інструкцій.

Крок 1:

  • Відкрити Макрос VBA натисніть Alt + 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 для критеріїв АБО з І в діапазоні в Excel

Ви також можете застосувати АБО та І Наприклад, ви хочете отримати значення для Печиво або Шоколадні цукерки якби не Печиво, є ще один критерій - ціна $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 та макрос)
  • Як використовувати розширений фільтр у VBA (покрокова інструкція)
  • Розширений фільтр з діапазоном критеріїв в Excel (18 додатків)
  • Не працює розширений фільтр Excel (2 причини та шляхи вирішення)

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

Крім того, якщо у вашому наборі даних є дублікати, ви можете видалити їх під час фільтрації. Ми додамо Унікальний аргумент для Правда отримати тільки унікальні значення та видалити дублікати. Дотримуйтесь викладених інструкцій.

Крок 1:

  • По-перше, відкрийте VBA Макрос по натисканню Alt + 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 натисніть Alt + 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 

  • Відповідно, кінцевий результат дивіться на новому аркуші "Лист 6 .

Докладніше: Як використовувати розширений фільтр, якщо діапазон критеріїв містить текст в Excel

Висновок

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

Якщо у Вас виникли запитання, будь ласка, звертайтеся до нас. Будь ласка, повідомте нам, що Ви думаєте, у розділі коментарів нижче.

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

Залишайтеся з нами і продовжуйте вчитися.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.