VBA - Pivot Table Filter

Ez az oktatóanyag bemutatja a Pivot Table Filter használatát a VBA -ban.

A pivot táblák az Excel kivételesen hatékony adateszközei. A pivot táblázatok lehetővé teszik számunkra, hogy nagy mennyiségű adatot elemezzünk és értelmezzünk a mezők és sorok csoportosításával és összegzésével. Szűrőket alkalmazhatunk pivot tábláinkra, hogy gyorsan láthassuk a számunkra releváns adatokat.

Először létre kell hoznunk egy Pivot táblát az adatainkhoz. (Kattintson ide a VBA Pivot Table Guide -hoz.)

Szűrő létrehozása cellaérték alapján

Szűrhet egy kimutatástáblában a VBA használatával a cellaértékben szereplő adatok alapján - vagy az Oldal mezőben, vagy egy Sor mezőben (például a fenti Beszállító mezőben vagy a Sorcímkék oszlopban lévő Oper mezőben) ).

A Pivot tábla jobb oldalán található üres cellában hozzon létre egy cellát a szűrő tartásához, majd írja be az adatokat abba a cellába, amelyen szűrni szeretné a kimutatástáblát.

Hozza létre a következő VBA makrót:

1234567 Sub FilterPageValue ()Dim pvFld PivotFieldDim strFilter karakterlánckéntÁllítsa be a pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("Beszállító")strFilter = ActiveWorkbook.Sheets ("Sheet1"). Tartomány ("M4"). ÉrtékpvFld.CurrentPage = strFilterEnd Sub

Futtassa a makrót a szűrő alkalmazásához.

A szűrő törléséhez hozza létre a következő makrót:

12345 Sub ClearFilter ()Dim pTbl PivotTable -kéntÁllítsa be a pTbl = ActiveSheet.PivotTables ("PivotTable1")pTbl.ClearAllFiltersEnd Sub

Ezután a szűrőt eltávolítják.

Ezt követően módosíthatjuk a szűrési feltételeket, hogy a Pivot táblázat egy sorában szűrhessük, nem pedig az Aktuális oldalon.

A következő makró beírása lehetővé teszi számunkra, hogy szűrjünk a soron (vegye figyelembe, hogy a szűrni kívánt pivot mező most az operátor, nem pedig a szállító).

1234567 Sub FilterRowValue ()Dim pvFld PivotFieldDim strFilter karakterlánckéntÁllítsa be a pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("Oper")strFilter = ActiveWorkbook.Sheets ("Sheet1"). Tartomány ("M4"). ÉrtékpvFld.PivotFilters.Add2 xlCaptionEquals,, strFilterEnd Sub

Futtassa a makrót a szűrő alkalmazásához.

Több feltétel használata egy pivot szűrőben

A fenti Sor érték szűrőhöz további feltételeket adhatunk hozzá.

Mivel azonban a szabványos szűrő elrejti a nem kötelező sorokat, át kell tekintenünk a feltételeket, és meg kell mutatnunk a szükségeseket, miközben el kell rejtenünk a nem kötelezőeket. Ez egy tömbváltozó létrehozásával és néhány hurok használatával történik a kódban.

1234567891011121314151617181920212223 Sub FilterMultipleRowItems ()Dim vArray mint változatDim i Mint egész, j Mint egészDim pvFld PivotFieldÁllítsa be a pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("Oper")vArray = Tartomány ("M4: M5")pvFld.ClearAllFiltersA pvFld -velI = 1 esetén pvFld.PivotItems.Countj = 1Tedd közben j <= UBound (vArray, 1) - LBound (vArray, 1) + 1Ha pvFld.PivotItems (i) .Name = vArray (j, 1) AkkorpvFld.PivotItems (pvFld.PivotItems (i) .Name) .Visible = IgazKilépés DoMáspvFld.PivotItems (pvFld.PivotItems (i) .Name) .Visible = HamisVége Haj = j + 1HurokKövetkező iVége ezzelEnd Sub

Szűrő létrehozása változó alapján

Ugyanezeket a fogalmakat használhatjuk szűrők létrehozására a kódunk változói alapján, nem pedig a cella értékei alapján. Ezúttal a szűrőváltozót (strFilter) a kód maga tölti ki (pl .: Keményen kódolt a makróba).

1234567 Sub FilterTextValue ()Dim pvFld PivotFieldDim strFilter karakterlánckéntÁllítsa be a pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("Beszállító")strFilter = "THOMAS S"pvFld.CurrentPage = strFilterEnd Sub
wave wave wave wave wave