VBA - Filter zaokretne tablice

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

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave