Excel VBA: Napredni filter z več merili v območju (5 metod) -

  • Deliti To
Hugh West

Ko delate z velikimi količinami podatkov in morate hkrati nastaviti več filtrov, Napredno filtriranje na spletnem mestu Excel Uporabite ga lahko tudi za čiščenje podatkov z odstranjevanjem kopij. Napredni filter , je VBA kodo je veliko lažje izvesti. V tem učbeniku vam bomo pokazali, kako uporabiti Napredni filter VBA za več meril v Excel .

Prenesi delovni zvezek za prakso

Prenesite ta delovni zvezek za vadbo, ki ga lahko uporabljate med branjem tega članka.

Napredni filter VBA.xlsm

5 učinkovitih metod za napredni filter VBA z več merili v območju v Excelu

V naslednjih razdelkih bomo obravnavali 5 metode za uporabo Napredni filter VBA za več meril. Najprej boste morda morali poznati sintakso Napredni filter VBA .

Sintaksa naprednega filtra VBA:

  • AdvancedFilter: se nanaša na objekt območja. Določite lahko območje, v katerem želite uporabiti filter.
  • Ukrepanje: je obvezen argument, ki ima dve možnosti, xlFilterInPlace ali xlFilterCopy . xlFilterInPlace se uporablja za filtriranje vrednosti na mestu, kjer je podatkovni niz. xlFilterCopy se uporablja za pridobitev vrednosti filtra na drugem želenem mestu.
  • CriteriaRange: predstavlja merila, na podlagi katerih bo vrednost filtrirana.
  • CopyToRange: je mesto, kamor boste shranili rezultate filtriranja.
  • Edinstveno: je neobvezen argument. Uporabite Resnično da filtrira samo edinstvene vrednosti. V nasprotnem primeru se privzeto šteje kot Lažno .

Na spodnji sliki je na voljo vzorčni nabor podatkov za uporabo vseh filtrov, ki jih želimo izvesti.

1. Uporabite napredni filter VBA za merila OR v območju v Excelu

Pri prvi metodi bomo uporabili ALI merila z uporabo Napredni filter VBA . Recimo, da želimo filtrirati podatke za ime izdelka Piškotki in . Čokolada . Če želite uporabiti ALI merila, morate vrednost umestiti v različne vrstice. Za izvedbo naloge sledite opisanim korakom v nadaljevanju.

Korak 1:

  • Pritisnite Alt + F11 da odprete Makro VBA .
  • Kliknite na Vstavljanje.
  • Izberite Modul.

Korak 2:

  • Nato prilepite naslednje VBA kodo za uporabo ALI.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Deklaracija spremenljivke za območje podatkovne zbirke in za območje meril Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavitev lokacije in območja podatkovne zbirke in območja meril Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Uporaba naprednega filtra za filtriranje zbirke podatkov z uporabo merilDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Korak 3:

  • Nato shranite program in pritisnite F5 za zagon.
  • Tako boste dobili filtrirane rezultate, kot je prikazano na spodnji sliki.

Opombe. Če želite obrniti postopek ali odstraniti vso filtrirno pasto in zagnati VBA program.

 Sub Remove_All_Filter() On Error Resume Next 'ukaz za odstranitev vseh filtrov za prikaz prejšnjega podatkovnega niza ActiveSheet.ShowAllData End Sub 

  • Tako boste dobili prejšnjo različico podatkovnega niza.

Preberi več: Excelovi primeri VBA naprednega filtra s kriteriji (6 kriterijev)

2. Izvedite napredni filter VBA za merila AND v območju v programu Excel

Podobno kot pri prejšnji metodi bomo tudi zdaj izvedli VBA Napredni filter za IN recimo, da želimo poznati piškotke s ceno $0.65 kot je prikazano na spodnji sliki zaslona. Za uporabo ALI merila, je treba vrednost postaviti v različne stolpce. Če želite uporabiti IN sledite spodnjim navodilom.

Korak 1:

  • Odpiranje Makro VBA , pritisnite Alt + F11
  • Po odprtju Makro VBA , prilepite naslednje VBA kode v novem modulu.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Deklaracija spremenljivke za območje podatkovnega niza in za območje meril Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavitev lokacije in območja območja podatkovnega niza in območja meril Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Uporaba naprednega filtra za filtriranje niza podatkov z uporabo merilDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Korak 2:

  • Pritisnite F5 za zagon programa po tem, ko ste ga shranili.
  • Na koncu pridobite filtrirane rezultate.

Preberite več: VBA za kopiranje podatkov v drug list z naprednim filtrom v Excelu

3. Uporaba naprednega filtra VBA za kriterije OR z AND v območju v programu Excel

Uporabite lahko tudi ALI in IN merila v kombinaciji. Na primer, želite pridobiti vrednosti za Piškotki ali Čokolade , vendar za Piškotki, obstaja še eno merilo cena $0.65 Uporabite spodnje postopke, da to storite.

Korak 1:

  • Prilepite naslednje VBA kode po odprtju Makro VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Deklaracija spremenljivke za območje podatkovnega niza in za območje meril Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavitev lokacije in območja območja podatkovnega niza in območja meril Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Uporaba naprednega filtra za filtriranje podatkovnega niza z uporabo merilDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Korak 2:

  • Nato program najprej shranite in pritisnite F5 da ga zaženete.
  • Posledično boste našli vrednosti z določenimi IN in . ALI.

Preberite več: Uporabite napredni filter na podlagi več meril v enem stolpcu v Excelu

Podobna branja:

  • Napredno filtriranje z več merili v Excelu (15 primernih primerov)
  • Dinamični napredni filter Excel (VBA & amp; Makro)
  • Kako uporabljati napredni filter v programu VBA (korak za korakom)
  • Napredno filtriranje z obsegom meril v Excelu (18 aplikacij)
  • Excelov napredni filter ne deluje (2 razloga in rešitve)

4. Uporaba naprednega filtra VBA za edinstvene vrednosti z več merili v programu Excel

Poleg tega lahko med filtriranjem odstranite podvojene podatke, če jih imate v naboru podatkov. Edinstvene argument za Resnično da bi dobili samo edinstvene vrednosti in izbrisali podvojene. Sledite opisanim navodilom.

Korak 1:

  • Najprej odprite VBA Makro tako, da pritisnete Alt + F11.
  • Prilepite naslednje VBA kode v novem modulu.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Deklaracija spremenljivke za območje podatkovnega niza in za območje meril Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavitev lokacije in območja območja podatkovnega niza in območja meril Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Uporaba naprednega filtra za filtriranje podatkovnega niza z uporabo merilDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Korak 2:

  • Nato pritisnite F5 za zagon programa po shranjevanju.
  • Zato boste dobili vrednosti samo za edinstvene.

Preberite več: Kako uporabiti napredni filter samo za edinstvene zapise v Excelu

5. Izvedite napredni filter VBA za pogojni primer

Poleg prejšnjih metod lahko uporabite tudi pogoje s formulami. Skupne cene ki so večje od $100 . Če želite to doseči, sledite naslednjim korakom.

Korak 1:

  • Najprej odprite Makro VBA , pritisnite Alt + F11 .
  • Izberite nov Modul in prilepite naslednje Kode VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Deklaracija spremenljivke za območje podatkovnega niza in za območje meril Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavitev lokacije in območja območja podatkovnega niza in območja meril Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Uporaba naprednega filtra za filtriranje niza podatkov z uporabo merilDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Korak 2:

  • Drugič, shranite program in pritisnite tipko F5 za ogled rezultatov.

Opombe. Poleg tega lahko rezultate dobite v ugodnem prostoru, bodisi v novem območju bodisi v novem delovnem listu, tako da uporabite xlFilterCopy preprosto prilepite VBA kode in jih zaženite, da dobite rezultate v List6 v območju B4:E11 .

 'Deklaracija spremenljivke za območje nabora podatkov in za območje meril Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavite lokacijo in območje območja nabora podatkov in območja meril Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Uporabite napredni filter, da filtrirate nabor podatkov z uporabo meril Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Posledično si oglejte končni rezultat v novem delovnem listu 'Sheet6' .

Preberite več: Kako uporabiti napredni filter, če območje meril vsebuje besedilo v Excelu

Zaključek

Če povzamem, upam, da zdaj razumete, kako uporabljati VBA napredni filter v Excel za filtriranje več razponov meril. Vse te metode uporabite za učenje in vadbo s podatki. Preglejte vadnico in uporabite, kar ste se naučili. Zaradi vaše pomembne podpore smo navdihnjeni, da lahko še naprej predstavljamo seminarje, kot je ta.

Če imate kakršna koli vprašanja, se obrnite na nas. V spodnjem razdelku s komentarji nam sporočite svoje mnenje.

Spletna stran Odlično osebje bo na vaša vprašanja odgovorilo v najkrajšem možnem času.

Bodite z nami in se še naprej učite.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.