Excel VBA: Pokročilý filtr s více kritérii v rozsahu (5 metod) -

  • Sdílet Toto
Hugh West

Při práci s velkým množstvím dat a při potřebě nastavit více filtrů najednou, Pokročilé filtrování na adrese Excel Může být také použita k vyčištění dat odstraněním kopií. Při použití funkce Rozšířený filtr ... VBA V tomto tutoriálu vám ukážeme, jak aplikovat Pokročilý filtr VBA pro více kritérií v rozsahu Excel .

Stáhnout cvičebnici

Stáhněte si tento cvičební sešit a procvičujte si při čtení tohoto článku.

Pokročilý filtr VBA.xlsm

5 efektivních metod pro pokročilý filtr VBA s více kritérii v rozsahu v aplikaci Excel

V následujících kapitolách se budeme zabývat 5 metody, které lze použít Pokročilý filtr VBA pro více kritérií. Zpočátku budete možná potřebovat znát syntaxi příkazu Pokročilý filtr VBA .

Syntaxe pokročilého filtru VBA:

  • AdvancedFilter: odkazuje na objekt rozsahu. Můžete nastavit rozsah, na který chcete filtr použít.
  • Akce: je povinný argument, který má dvě možnosti, xlFilterInPlace nebo xlFilterCopy . xlFilterInPlace se používá k filtrování hodnoty v místě, kde se nachází datová sada. xlFilterCopy slouží k získání hodnoty filtru na jiném požadovaném místě.
  • KritériaRange: představuje kritérium, podle kterého bude hodnota filtrována.
  • CopyToRange: je místo, kam se ukládají výsledky filtrování.
  • Unikátní: je nepovinný argument. Pravda aby se filtrovaly pouze jedinečné hodnoty. V opačném případě se ve výchozím nastavení považuje za. False .

Na obrázku níže je uvedena ukázková sada dat, na kterou lze použít všechny filtry, které chceme provést.

1. Použití pokročilého filtru VBA pro kritéria OR v rozsahu v aplikaci Excel

V první metodě použijeme NEBO kritéria pomocí Pokročilý filtr VBA . Řekněme, že chceme filtrovat data podle názvu produktu. Soubory cookie a Čokoláda . Chcete-li použít NEBO kritéria, měli byste hodnotu umístit do různých řádků. Při provádění úkolu postupujte podle níže uvedených kroků.

Krok 1:

  • Tisk Alt + F11 otevřít Makro VBA .
  • Klikněte na Vložit.
  • Vyberte si Modul.

Krok 2:

  • Pak vložte následující VBA kód pro použití NEBO.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Deklarujte proměnnou pro rozsah datasetu a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datasetu a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Použijte pokročilý filtr pro filtrování datasetu pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 3:

  • Poté program uložte a stiskněte tlačítko F5 spustit.
  • Proto se zobrazí filtrované výsledky, jak je znázorněno na obrázku níže.

Poznámky. Chcete-li proces zvrátit nebo odstranit veškerou filtrační pastu a spustit funkci VBA program.

 Sub Remove_All_Filter() On Error Resume Next 'příkaz k odstranění všech filtrů pro zobrazení předchozího souboru dat ActiveSheet.ShowAllData End Sub 

  • Výsledkem bude předchozí verze sady dat.

Další informace: Příklady pokročilého filtru Excel VBA s kritérii (6 kritérií)

2. Proveďte pokročilý filtr VBA pro kritéria AND v rozsahu v aplikaci Excel

Podobně jako u předchozí metody provedeme nyní VBA Rozšířený filtr pro A Řekněme, že chceme znát cookies s cenou $0.65 jak je znázorněno na obrázku níže. Pro použití funkce NEBO kritéria, měli byste hodnotu umístit do různých sloupců. Chcete-li použít kritérium A postupujte podle níže uvedených pokynů.

Krok 1:

  • Otevření Makro VBA , stiskněte tlačítko Alt + F11
  • Po otevření Makro VBA , vložte následující VBA kódy v novém modulu.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Tisk F5 spustit program po jeho uložení.
  • Nakonec získáte filtrované výsledky.

Přečtěte si více: Kopírování dat do jiného listu pomocí pokročilého filtru v aplikaci Excel pomocí VBA

3. Využití pokročilého filtru VBA pro kritéria OR s AND v rozsahu v aplikaci Excel

Můžete také použít NEBO a A kritéria v kombinaci. Například chcete získat hodnoty pro Soubory cookie nebo Čokolády , ale pro Soubory cookie, existuje další kritérium cena $0.65 Bude použito. Postupujte podle níže uvedených postupů.

Krok 1:

  • Vložte následující VBA kódy po otevření Makro VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Poté program nejprve uložte stisknutím tlačítka F5 k jeho spuštění.
  • V důsledku toho najdete hodnoty s určitými A a NEBO.

Další informace: Použití pokročilého filtru na základě více kritérií v jednom sloupci v aplikaci Excel

Podobné čtení:

  • Pokročilý filtr s více kritérii v aplikaci Excel (15 vhodných příkladů)
  • Dynamický pokročilý filtr Excelu (VBA & Makro)
  • Jak používat pokročilý filtr ve VBA (návod krok za krokem)
  • Pokročilý filtr s rozsahem kritérií v aplikaci Excel (18 aplikací)
  • Nefungující pokročilý filtr aplikace Excel (2 důvody & řešení)

4. Použití pokročilého filtru VBA pro jedinečné hodnoty s více kritérii v aplikaci Excel

Navíc, pokud máte v souboru dat duplikáty, můžete je při filtrování odstranit. Přidáme Unikátní argument na Pravda získat pouze jedinečné hodnoty a odstranit duplikáty. Postupujte podle uvedených pokynů.

Krok 1:

  • Nejprve otevřete VBA Makro stisknutím tlačítka Alt + F11.
  • Vložte následující VBA kódy v novém modulu.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Krok 2:

  • Pak stiskněte tlačítko F5 spustit program po uložení.
  • Proto získáte hodnoty pouze pro jedinečné.

Další informace: Jak používat pokročilý filtr pouze pro jedinečné záznamy v aplikaci Excel

5. Proveďte pokročilý filtr VBA pro podmíněný případ

Kromě předchozích metod můžete také použít podmínky pomocí vzorců. Například chceme zjistit. Celkové ceny které jsou větší než $100 . Chcete-li toho dosáhnout, postupujte podle následujících kroků.

Krok 1:

  • Za prvé, otevřít Makro VBA , stiskněte tlačítko Alt + F11 .
  • Vyberte nový Modul a vložte následující Kódy VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Za druhé uložte program a stiskněte tlačítko F5 zobrazit výsledky.

Poznámky. Kromě toho můžete získat výsledky v příznivém prostoru, ať už v novém rozsahu nebo v novém pracovním listu, použitím příkazu xlFilterCopy jednoduše vložte VBA a spustit je, abyste získali výsledky v List6 v dosahu B4:E11 .

 'Deklarovat proměnnou pro rozsah datasetu a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavit umístění a rozsah rozsahu datasetu a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Použít pokročilý filtr pro filtrování datasetu pomocí kritérií Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Následně si prohlédněte konečný výsledek v novém pracovním listu. 'Sheet6' .

Další informace: Jak používat pokročilý filtr, pokud rozsah kritérií obsahuje text v aplikaci Excel

Závěr

Doufám, že jste nyní pochopili, jak používat funkci VBA pokročilý filtr v Excel k filtrování více rozsahů kritérií. Všechny tyto metody by měly být použity k výuce a procvičení práce s daty. Projděte si cvičebnici a využijte to, co jste se naučili. Díky vaší zásadní podpoře jsme inspirováni k tomu, abychom mohli v pořádání podobných seminářů pokračovat.

Pokud máte jakékoli dotazy, neváhejte se na nás obrátit. Dejte nám prosím vědět, co si o tom myslíte, v komentářích níže.

Na stránkách Exceldemy na vaše dotazy odpoví co nejrychleji.

Zůstaňte s námi a učte se dál.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.