Excel VBA: Edistynyt suodatin useilla kriteereillä alueella (5 menetelmää) -

  • Jaa Tämä
Hugh West

Kun työskentelet suurten tietomäärien kanssa ja haluat asettaa useita suodattimia kerralla, Edistynyt suodatus osoitteessa Excel on kätevä. Sitä voidaan käyttää myös tietojen siivoamiseen poistamalla kopioita. Kun käytetään komentoa Edistynyt suodatin ... VBA koodia on paljon helpompi toteuttaa. Tässä opetusohjelmassa näytämme, miten soveltaa VBA:n kehittynyt suodatin useiden kriteerien osalta alueella Excel .

Lataa harjoituskirja

Lataa tämä harjoituskirja, jotta voit harjoitella tätä artikkelia lukiessasi.

VBA Advanced Filter.xlsm

5 tehokasta menetelmää VBA Advanced Filter -suodattimelle, jossa on useita kriteerejä Excelin alueella

Seuraavissa jaksoissa käsitellään 5 käytettävät menetelmät VBA:n kehittynyt suodatin useille kriteereille. Aluksi sinun on ehkä tunnettava komennon VBA:n kehittynyt suodatin .

VBA Advanced Filter Syntax:

  • AdvancedFilter: viittaa alueobjektiin. Voit määrittää alueen, johon haluat soveltaa suodatinta.
  • Toiminta: on pakollinen argumentti, jolla on kaksi vaihtoehtoa, xlFilterInPlace tai xlFilterCopy . xlFilterInPlace käytetään suodattamaan arvo paikassa, jossa tietokokonaisuus on. xlFilterCopy käytetään suodattimen arvon saamiseksi toiseen haluttuun paikkaan.
  • CriteriaRange: edustaa kriteerejä, joiden perusteella arvo suodatetaan.
  • CopyToRange: on paikka, johon tallennat suodattimen tulokset.
  • Ainutlaatuinen: on valinnainen argumentti. Totta argumentilla suodattaa vain uniikkeja arvoja. Muuten oletusarvoisesti se katsotaan niin kuin False .

Alla olevassa kuvassa on esimerkkitietoaineisto, johon voidaan soveltaa kaikkia haluamiamme suodattimia.

1. Sovelletaan VBA:n kehittynyttä suodatinta Excelin alueen OR-perusteita varten.

Ensimmäisessä menetelmässä sovelletaan TAI kriteerit käyttäen VBA:n kehittynyt suodatin Sanotaan, että haluamme suodattaa tiedot tuotteen nimen perusteella. Evästeet ja Suklaa . Sovelletaan TAI kriteerien perusteella sinun on sijoitettava arvo eri riveille. Noudata alla esitettyjä vaiheita tehtävän suorittamiseksi.

Vaihe 1:

  • Paina Alt + F11 avataksesi VBA-makro .
  • Napsauta Sisällytä.
  • Valitse Moduuli.

Vaihe 2:

  • Liitä sitten seuraava VBA koodi soveltaa TAI.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Aseta dataset-alueen ja kriteerialueen sijainti ja alue Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Sovelletaan kehittynyttä suodatinta suodattamaan datasetti kriteereiden avulla.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Vaihe 3:

  • Tallenna sitten ohjelma ja paina F5 juosta.
  • Näin ollen saat suodatetut tulokset alla olevan kuvan mukaisesti.

Huomautuksia. Jos haluat peruuttaa prosessin tai poistaa kaiken suodatinpastan ja suorittaa ohjelman VBA ohjelma.

 Sub Remove_All_Filter() On Error Resume Next 'komento poistaa kaikki suodattimet edellisen datasetin näyttämiseksi ActiveSheet.ShowAllData End Sub 

  • Tuloksena saat aikaisemman version tietokokonaisuudestasi.

Lue lisää: Excel VBA -esimerkkejä kehittyneestä suodattimesta kriteerien kanssa (6 kriteeriä)

2. Suorita VBA-lisäsuodatin AND-perusteita varten Excelin alueella.

Samoin kuin edellisessä menetelmässä, suoritamme nyt VBA Advanced Filter for the AND kriteerit. Sanotaan, että haluamme tietää evästeet, joiden hinta on $0.65 kuten alla olevassa kuvakaappauksessa näkyy. Sovellettaessa TAI kriteerit, arvo on sijoitettava eri sarakkeisiin. Jos haluat soveltaa AND kriteerit, noudata alla olevia ohjeita.

Vaihe 1:

  • Avaa VBA-makro , paina Alt + F11
  • Kun olet avannut VBA-makro , liitä seuraava VBA koodit uudessa moduulissa.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Aseta dataset-alueen ja kriteerialueen sijainti ja alue Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Sovelletaan kehittynyttä suodatinta suodattamaan datasetti kriteereiden avulla.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Vaihe 2:

  • Paina F5 käynnistääksesi ohjelman sen jälkeen, kun olet tallentanut sen.
  • Hae lopuksi suodatetut tulokset.

Lue lisää: VBA kopioida tietoja toiseen arkistoon Excelin laajennetulla suodattimella Excelissä

3. Hyödynnä VBA:n kehittynyttä suodatinta Excelin alueen OR- ja AND-perusteita varten.

Voit myös soveltaa TAI ja AND kriteerit molemmat yhdessä. Haluat esimerkiksi saada arvot seuraaville kriteereille Evästeet tai Suklaata , mutta Evästeet, on olemassa toinen kriteeri hinta $0.65 Seuraa alla olevia menettelyjä, jotta se onnistuu.

Vaihe 1:

  • Liitä seuraava VBA koodit avaamisen jälkeen VBA-makro .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Aseta dataset-alueen ja kriteerialueen sijainti ja alue Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Sovelletaan kehittynyttä suodatinta suodattamaan datasetti kriteereiden avulla.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Vaihe 2:

  • Tallenna sitten ohjelma ensin painamalla F5 ajaa sitä.
  • Näin ollen löydät arvot, joilla on tiettyjä AND ja TAI.

Lue lisää: Sovelletaan Excelissä useisiin kriteereihin perustuvaa laajennettua suodatinta yhdessä sarakkeessa.

Samanlaisia lukemia:

  • Kehittynyt suodatin useilla kriteereillä Excelissä (15 sopivaa esimerkkiä)
  • Dynaaminen kehittynyt suodatin Excel (VBA & Makro)
  • Lisäsuodattimen käyttäminen VBA:ssa (vaiheittainen ohje)
  • Kehittynyt suodatin, jossa on kriteerien alue Excelissä (18 sovellusta)
  • Excelin laajennettu suodatin ei toimi (2 Syyt & Ratkaisut)

4. Käytä VBA:n kehittynyttä suodatinta Excelin ainutlaatuisten arvojen ja useiden kriteerien muodostamiseen.

Lisäksi, jos aineistossasi on kaksoiskappaleita, voit poistaa ne suodatuksen aikana. Lisäämme tiedoston Ainutlaatuinen argumentti Totta saadaksesi vain yksilölliset arvot ja poistaaksesi kaksoiskappaleet. Seuraa kuvattuja ohjeita.

Vaihe 1:

  • Avaa ensin VBA Makro painamalla Alt + F11.
  • Liitä seuraava VBA koodit uudessa moduulissa.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Aseta dataset-alueen ja kriteerialueen sijainti ja alue Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Sovelletaan kehittynyttä suodatinta suodattamaan datasetti kriteereiden avulla.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Vaihe 2:

  • Paina sitten F5 käynnistääksesi ohjelman tallennuksen jälkeen.
  • Näin ollen saat arvot vain ainutlaatuisille.

Lue lisää: Kuinka käyttää Excelissä vain ainutlaatuisten tietueiden laajennettua suodatinta?

5. Suorita VBA:n kehittynyt suodatin ehdollista tapausta varten.

Edellisten menetelmien lisäksi voit myös soveltaa ehtoja kaavojen avulla. Haluamme esimerkiksi löytää arvon Kokonaishinnat jotka ovat suurempia kuin $100 Se onnistuu yksinkertaisesti noudattamalla seuraavia ohjeita.

Vaihe 1:

  • Ensinnäkin, avataksesi VBA-makro , paina Alt + F11 .
  • Valitse uusi Moduuli ja liitä seuraava VBA-koodit .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Aseta dataset-alueen ja kriteerialueen sijainti ja alue Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Sovelletaan kehittynyttä suodatinta suodattamaan datasetti kriteereiden avulla.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Vaihe 2:

  • Toiseksi, tallenna ohjelma ja paina F5 painiketta nähdäksesi tulokset.

Huomautuksia. Lisäksi voit saada tulokset suotuisaan tilaan joko uudella alueella tai uudella laskentataulukolla soveltamalla komentoa xlFilterCopy Liitä yksinkertaisesti VBA koodit ja suorita ne saadaksesi tulokset Sheet6 alueella B4:E11 .

 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Aseta dataset-alueen ja kriteerialueen sijainti ja alue Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Sovelletaan tarkennettua suodatinta suodattamaan datasetti kriteereiden avulla Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Näin ollen näet lopputuloksen uudella työarkilla. 'Sheet6' .

Lue lisää: Kuinka käyttää laajennettua suodatinta, jos kriteerialue sisältää tekstiä Excelissä?

Päätelmä

Yhteenvetona toivon, että ymmärrät nyt, miten käyttää komentoa VBA kehittynyt suodatin Excel suodattaa useita kriteerialueita. Kaikkia näitä menetelmiä tulisi käyttää opettamiseen ja harjoitteluun omien tietojen kanssa. Tutustu harjoituskirjaan ja ota opitut asiat käyttöön. Elintärkeän tukenne ansiosta olemme innostuneita jatkamaan tämänkaltaisten seminaarien pitämistä.

Jos sinulla on kysyttävää, älä epäröi ottaa meihin yhteyttä. Kerro mielipiteesi alla olevaan kommenttiosioon.

The Exceldemy henkilökunta vastaa kyselyihinne mahdollisimman nopeasti.

Pysy kanssamme ja jatka oppimista.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.