Ovaj će vodič pokazati kako koristiti filtar zaokretne tablice u VBA -i.
Zaokretne tablice iznimno su snažan podatkovni alat programa Excel. Zaokretne tablice omogućuju nam analizu i tumačenje velikih količina podataka grupiranjem i sažimanjem polja i redaka. Možemo primijeniti filtre na svoje zaokretne tablice kako bismo mogli brzo vidjeti podatke koji su nam važni.
Prvo, moramo stvoriti zaokretnu tablicu za naše podatke. (Kliknite ovdje za naš VBA vodič kroz zaokretnu tablicu).
Izrada filtra na temelju vrijednosti ćelije
Možete filtrirati u zaokretnoj tablici pomoću VBA -e na temelju podataka sadržanih u vrijednosti ćelije - možemo filtrirati u polju Stranica ili u polje Redak (na primjer u polje Dobavljač iznad ili Oper polje u stupcu Oznake redaka ).
U praznoj ćeliji desno od zaokretne tablice stvorite ćeliju za držanje filtra, a zatim upišite podatke u ćeliju u koju želite filtrirati zaokretnu tablicu.
Izradite sljedeću VBA makronaredbu:
1234567 | PodfilterPageValue ()Zatamni pvFld kao zaokretno poljeDim strFilter As StringPostavi pvFld = ActiveSheet.PivotTables ("Zaokretna tablica1"). Zaokretna polja ("Dobavljač")strFilter = ActiveWorkbook.Sheets ("Sheet1"). Range ("M4"). ValuepvFld.CurrentPage = strFilterKraj podm |
Pokrenite makro kako biste primijenili filtar.
Za brisanje filtra stvorite sljedeću makronaredbu:
12345 | Sub ClearFilter ()Zatamni pTbl kao zaokretnu tablicuPostavi pTbl = ActiveSheet.PivotTables ("Zaokretna tablica1")pTbl.ClearAllFiltersKraj podm |
Filter će se zatim ukloniti.
Zatim možemo izmijeniti kriterije filtriranja za filtriranje po retku u zaokretnoj tablici, a ne na trenutnoj stranici.
Upisivanje sljedećeg makroa omogućit će nam filtriranje po redu (imajte na umu da je zaokretno polje za filtriranje sada Oper, a ne Dobavljač).
1234567 | PodfilterRowValue ()Zatamni pvFld kao zaokretno poljeDim strFilter As StringPostavi pvFld = ActiveSheet.PivotTables ("Zaokretna tablica1"). Zaokretna polja ("Oper")strFilter = ActiveWorkbook.Sheets ("Sheet1"). Range ("M4"). ValuepvFld.PivotFilters.Add2 xlCaptionEquals,, strFilterKraj podm |
Pokrenite makro kako biste primijenili filtar.
Korištenje više kriterija u zaokretnom filtru
Gore navedeni filtar vrijednosti retka možemo dodati dodavanjem dodatnih kriterija.
Međutim, budući da standardni filtar skriva retke koji nisu potrebni, moramo proći kroz kriterije i prikazati one koji su ponovno postavljeni, dok skrivamo one koji nisu potrebni. To se postiže stvaranjem varijable Array i korištenjem nekoliko petlji u kodu.
1234567891011121314151617181920212223 | PodfilterMultipleRowItems ()Dim vArray kao varijantaDim i kao cijeli broj, j kao cijeli brojZatamni pvFld kao zaokretno poljePostavi pvFld = ActiveSheet.PivotTables ("Zaokretna tablica1"). Zaokretna polja ("Oper")vArray = Raspon ("M4: M5")pvFld.ClearAllFiltersS pvFld -omZa i = 1 Za pvFld.PivotItems.Countj = 1Učiniti Dok j <= UBound (vArray, 1) - LBound (vArray, 1) + 1Ako je pvFld.PivotItems (i). Naziv = vArray (j, 1) TadapvFld.PivotItems (pvFld.PivotItems (i) .Naziv) .Visible = TrueIzlaz DoDrugopvFld.PivotItems (pvFld.PivotItems (i) .Naziv) .Visible = FalseZavrši akoj = j + 1PetljaSljedeći iZavrši sKraj podm |
Izrada filtra na temelju varijable
Iste koncepte možemo koristiti za stvaranje filtera na temelju varijabli u našem kodu, a ne vrijednosti u ćeliji. Ovaj put, varijabla filtra (strFilter) popunjena je u samom kodu (npr.: Strogo kodirano u makro).
1234567 | PodfilterTextValue ()Zatamni pvFld kao zaokretno poljePriguši strFilter kao nizPostavi pvFld = ActiveSheet.PivotTables ("Zaokretna tablica1"). Zaokretna polja ("Dobavljač")strFilter = "THOMAS S"pvFld.CurrentPage = strFilterKraj podm |