"Excel VBA": išplėstinis filtras su keliais kriterijais diapazone (5 metodai) -

  • Pasidalinti
Hugh West

Dirbant su dideliais duomenų kiekiais ir norint vienu metu nustatyti kelis filtrus, Išplėstinis filtravimas svetainėje "Excel" taip pat gali būti taikoma siekiant išvalyti duomenis pašalinant kopijas. Taikant Išplėstinis filtras . VBA kodą daug lengviau vykdyti. Šioje pamokoje parodysime, kaip taikyti VBA išplėstinis filtras keliems kriterijams, esantiems "Excel" .

Atsisiųsti praktikos sąsiuvinį

Atsisiųskite šį pratybų sąsiuvinį, kad galėtumėte atlikti pratimus skaitydami šį straipsnį.

VBA išplėstinis filtras.xlsm

5 veiksmingi VBA išplėstinio filtro su keliais kriterijais diapazone "Excel" metodai

Tolesniuose skirsniuose aptarsime 5 naudojami metodai VBA išplėstinis filtras keliems kriterijams. Iš pradžių jums gali prireikti žinoti sintaksę VBA išplėstinis filtras .

VBA išplėstinio filtro sintaksė:

  • Išplėstinis filtras: nurodo diapazono objektą. Galite nustatyti diapazoną, kuriame norite taikyti filtrą.
  • Veiksmai: yra privalomas argumentas, kuris turi dvi parinktis, xlFilterInPlace arba xlFilterCopy . xlFilterInPlace naudojamas filtruoti vertę toje vietoje, kurioje yra duomenų rinkinys. xlFilterCopy naudojama norint gauti filtro vertę kitoje norimoje vietoje.
  • KriterijusRange: nurodo kriterijus, pagal kuriuos reikšmė bus filtruojama.
  • CopyToRange: yra vieta, kurioje išsaugosite filtro rezultatus.
  • Unikalus: yra neprivalomas argumentas. Tiesa argumentas, kad būtų filtruojamos tik unikalios reikšmės. Klaidingas .

Toliau pateiktame paveikslėlyje pateiktas pavyzdinis duomenų rinkinys, kuriame galima taikyti visus norimus filtrus.

1. Taikykite VBA išplėstinį filtrą OR kriterijams "Excel" diapazone

Pirmuoju metodu taikysime ARBA kriterijai naudojant VBA išplėstinis filtras Tarkime, norime filtruoti duomenis pagal gaminio pavadinimą Slapukai ir Šokoladas . Norėdami taikyti ARBA kriterijų, reikšmę turėtumėte įrašyti į skirtingas eilutes. Atlikdami šią užduotį atlikite toliau nurodytus veiksmus.

1 žingsnis:

  • Paspauskite Alt + F11 atidaryti VBA makrokomandos .
  • Spustelėkite Įdėkite.
  • Pasirinkite Modulis.

2 žingsnis:

  • Tada įklijuokite šiuos įrašus VBA kodą, kad būtų galima taikyti ARBA.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Deklaruokite kintamąjį duomenų rinkinio diapazonui ir kriterijų diapazonui Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nustatykite duomenų rinkinio ir kriterijų diapazono vietą ir diapazoną Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Taikykite išplėstinį filtrą duomenų rinkiniui filtruoti pagal kriterijus.Dataset_Rng.AdvancedFilter Veiksmas:=xlFilterInPlace, CriteriaRange:=Criteria_Rng Pabaiga Sub 

3 veiksmas:

  • Tada išsaugokite programą ir paspauskite F5 paleisti.
  • Todėl gausite filtruotus rezultatus, kaip parodyta toliau pateiktame paveikslėlyje.

Pastabos. Norėdami pakeisti procesą arba pašalinti visą filtro pastą ir paleisti VBA programa.

 Sub Remove_All_Filter() On Error Resume Next 'komanda pašalinti visus filtrus, kad būtų rodomas ankstesnis duomenų rinkinys ActiveSheet.ShowAllData End Sub 

  • Todėl gausite ankstesnę duomenų rinkinio versiją.

Skaitykite daugiau: "Excel" VBA išplėstinio filtro su kriterijais pavyzdžiai (6 kriterijai)

2. Atlikite VBA išplėstinį filtrą, skirtą AND kriterijams diapazone "Excel" programoje

Panašiai kaip ir ankstesniame metode, dabar atliksime VBA Išplėstinis filtras IR kriterijai. Tarkime, kad norime sužinoti slapukus, kurių kaina $0.65 kaip parodyta toliau pateiktoje ekrano kopijoje. ARBA kriterijų, reikšmę turėtumėte įrašyti į skirtingus stulpelius. IR kriterijus, vadovaukitės toliau pateiktais nurodymais.

1 žingsnis:

  • Atidaryti VBA makrokomandos , paspauskite Alt + F11
  • Atidarius VBA makrokomandos , įklijuokite šiuos įrašus VBA kodai naujame modulyje.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Deklaruokite kintamąjį duomenų rinkinio diapazonui ir kriterijų diapazonui Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nustatykite duomenų rinkinio ir kriterijų diapazono vietą ir diapazoną Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Taikykite išplėstinį filtrą duomenų rinkiniui filtruoti pagal kriterijus.Dataset_Rng.AdvancedFilter Veiksmas:=xlFilterInPlace, CriteriaRange:=Criteria_Rng Pabaiga Sub 

2 žingsnis:

  • Paspauskite F5 paleisti programą, kai ją išsaugojote.
  • Galiausiai gaukite filtruotus rezultatus.

Skaityti daugiau: VBA duomenų kopijavimas į kitą lapą naudojant išplėstinį "Excel" filtrą

3. Naudokite VBA išplėstinį filtrą OR su AND kriterijais diapazone "Excel" programoje

Taip pat galite taikyti ARBA ir IR kriterijų derinį. Pavyzdžiui, norite gauti Slapukai arba Šokoladiniai saldainiai , bet Slapukai, yra dar vienas kriterijus kaina $0.65 bus taikoma. Atlikite toliau nurodytas procedūras, kad tai padarytumėte.

1 žingsnis:

  • Įklijuokite šiuos VBA kodus atidarius VBA makrokomandos .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Deklaruokite kintamąjį duomenų rinkinio diapazonui ir kriterijų diapazonui Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nustatykite duomenų rinkinio ir kriterijų diapazono vietą ir diapazoną Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Taikykite išplėstinį filtrą duomenų rinkiniui filtruoti pagal kriterijus.Dataset_Rng.AdvancedFilter Veiksmas:=xlFilterInPlace, CriteriaRange:=Criteria_Rng Pabaiga Sub 

2 žingsnis:

  • Tada pirmiausia išsaugokite programą paspausdami F5 jį paleisti.
  • Todėl rasite reikšmes su tam tikromis IR ir ARBA.

Skaityti daugiau: Taikyti išplėstinį filtrą pagal kelis kriterijus viename "Excel" stulpelyje

Panašūs skaitiniai:

  • Išplėstinis filtras su keliais kriterijais "Excel" programoje (15 tinkamų pavyzdžių)
  • Dinaminis išplėstinis "Excel" filtras (VBA ir makrokomandos)
  • Kaip naudoti išplėstinį filtrą VBA (žingsnis po žingsnio)
  • Išplėstinis filtras su kriterijų diapazonu "Excel" programoje (18 programų)
  • "Excel" išplėstinis filtras neveikia (2 priežastys ir sprendimai)

4. Naudokite VBA išplėstinį filtrą unikalioms reikšmėms su keliais kriterijais "Excel" programoje

Be to, jei jūsų duomenų rinkinyje yra pasikartojančių duomenų, filtruodami galite juos pašalinti. Pridėsime Unikalus argumentas Tiesa kad gautumėte tik unikalias reikšmes ir ištrintumėte pasikartojančias. Vykdykite išdėstytus nurodymus.

1 žingsnis:

  • Pirmiausia atidarykite VBA Makrokomandą paspausdami Alt + F11.
  • Įklijuokite šiuos VBA kodai naujame modulyje.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Deklaruokite kintamąjį duomenų rinkinio diapazonui ir kriterijų diapazonui Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nustatykite duomenų rinkinio ir kriterijų diapazono vietą ir diapazoną Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Taikykite išplėstinį filtrą duomenų rinkiniui filtruoti pagal kriterijus.Dataset_Rng.AdvancedFilter Veiksmas:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True Pabaiga Sub 

2 žingsnis:

  • Tada paspauskite F5 paleisti programą po išsaugojimo.
  • Todėl gausite tik unikalias reikšmes.

Skaityti daugiau: Kaip naudoti išplėstinį filtrą tik unikaliems įrašams "Excel" programoje

5. Atlikti VBA išplėstinį filtrą sąlyginiam atvejui

Be ankstesnių metodų, taip pat galite taikyti sąlygas su formulėmis. Pavyzdžiui, norime rasti Bendros kainos kurie yra didesni už $100 . Norėdami tai padaryti, tiesiog atlikite šiuos veiksmus.

1 žingsnis:

  • Pirma, norėdami atidaryti VBA makrokomandos , paspauskite Alt + F11 .
  • Pasirinkite naują Modulis ir įklijuokite šiuos įrašus VBA kodai .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Deklaruokite kintamąjį duomenų rinkinio diapazonui ir kriterijų diapazonui Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nustatykite duomenų rinkinio ir kriterijų diapazono vietą ir diapazoną Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Taikykite išplėstinį filtrą duomenų rinkiniui filtruoti pagal kriterijus.Dataset_Rng.AdvancedFilter Veiksmas:=xlFilterInPlace, CriteriaRange:=Criteria_Rng Pabaiga Sub 

2 žingsnis:

  • Antra, išsaugokite programą ir paspauskite F5 mygtuką, kad pamatytumėte rezultatus.

Pastabos. Be to, rezultatus galite gauti palankioje vietoje - naujame diapazone arba naujame darbalapyje, taikydami xlFilterCopy paprasčiausiai įklijuokite VBA kodus ir paleiskite juos, kad gautumėte rezultatus Lapas6 diapazone B4:E11 .

 'Deklaruokite kintamąjį duomenų rinkinio diapazonui ir kriterijų diapazonui Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nustatykite duomenų rinkinio ir kriterijų diapazono vietą ir diapazoną Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Taikykite išplėstinį filtrą duomenų rinkiniui filtruoti pagal kriterijus Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Todėl galutinį rezultatą galite pamatyti naujame darbalapyje "Sheet6 .

Skaityti daugiau: Kaip naudoti išplėstinį filtrą, jei kriterijų diapazone yra teksto "Excel" programoje

Išvada

Apibendrinant, tikiuosi, kad dabar suprantate, kaip naudoti VBA išplėstinis filtras "Excel" filtruoti kelių kriterijų intervalus. Visus šiuos metodus reikėtų naudoti mokantis ir praktiškai dirbant su savo duomenimis. Peržiūrėkite praktikos knygą ir panaudokite tai, ko išmokote. Dėl jūsų gyvybiškai svarbios paramos esame įkvėpti ir toliau rengti tokius seminarus kaip šis.

Jei turite klausimų, nedvejodami kreipkitės į mus. Praneškite mums, ką manote, toliau pateiktame komentarų skyriuje.

Svetainė Exceldemy darbuotojai kuo greičiau atsakys į jūsų užklausas.

Būkite su mumis ir toliau mokykitės.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.