VBA - Özet Tablo Filtresi

Bu eğitim, VBA'da Pivot Tablo Filtresinin nasıl kullanılacağını gösterecektir.

Pivot tablolar, Excel'in olağanüstü güçlü bir veri aracıdır. Pivot tablolar, alanları ve satırları gruplandırarak ve özetleyerek büyük miktarda veriyi analiz etmemizi ve yorumlamamızı sağlar. Bizimle ilgili verileri hızlı bir şekilde görmemizi sağlamak için pivot tablolarımıza filtreler uygulayabiliriz.

Öncelikle verilerimiz için bir Pivot tablo oluşturmamız gerekiyor. (VBA Pivot Tablo Kılavuzumuz için Buraya Tıklayın).

Hücre Değerine Dayalı Filtre Oluşturma

Bir hücre değerinde bulunan verilere dayalı olarak VBA kullanarak bir Pivot Tabloda filtre uygulayabilirsiniz - Sayfa alanında veya bir Satır alanında (örneğin yukarıdaki Tedarikçi alanında veya Satır Etiketleri sütunundaki Oper alanında) filtre uygulayabiliriz. ).

Pivot tablosunun sağındaki boş bir hücrede, filtreyi tutacak bir hücre oluşturun ve ardından verileri Pivot tablosunu filtrelemek istediğiniz hücreye yazın.

Aşağıdaki VBA makrosunu oluşturun:

1234567 Alt FilterPageValue()PivotField Olarak Dim pvFldDim strFilter As StringpvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Tedarikçi") olarak ayarlayınstrFilter = ActiveWorkbook.Sheets("Sayfa1").Range("M4").ValuepvFld.CurrentPage = strFilterAlt Bitiş

Filtreyi uygulamak için makroyu çalıştırın.

Filtreyi temizlemek için aşağıdaki makroyu oluşturun:

12345 Alt ClearFilter()PivotTable Olarak Karart pTblpTbl = ActiveSheet.PivotTables("PivotTable1") olarak ayarlayınpTbl.ClearAllFiltersAlt Bitiş

Ardından filtre kaldırılacaktır.

Ardından, Geçerli Sayfa yerine Pivot tablosundaki bir satırda filtrelemek için filtre kriterlerini değiştirebiliriz.

Aşağıdaki makroyu yazmak, Satırda filtreleme yapmamızı sağlayacaktır (filtrelenecek Pivot Alanının artık Tedarikçi yerine Oper olduğunu unutmayın).

1234567 Alt FilterRowValue()PivotField Olarak Dim pvFldDim strFilter As StringpvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Oper") olarak ayarlayınstrFilter = ActiveWorkbook.Sheets("Sayfa1").Range("M4").ValuepvFld.PivotFilters.Add2 xlCaptionEquals, , strFilterAlt Bitiş

Filtreyi uygulamak için makroyu çalıştırın.

Özet Filtrede Birden Çok Ölçüt Kullanma

Yukarıdaki Satır değeri filtresine ek kriterler ekleyerek ekleyebiliriz.

Ancak standart filtre, gerekli olmayan satırları gizlediği için, kriterler arasında dolaşıp gerekli olanları gösterirken, gerekli olmayanları gizlememiz gerekir. Bu, bir Array değişkeni yaratılarak ve kodda birkaç Döngü kullanılarak yapılır.

1234567891011121314151617181920212223 Sub FilterMultipleRowItems()Varyant Olarak Dim vArrayDim i As Integer, j As IntegerPivotField Olarak Dim pvFldpvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Oper") olarak ayarlayınvArray = Aralık("M4:M5")pvFld.ClearAllFilterspvFld ilei = 1 için pvFld.PivotItems.Count içinj = 1J iken Yap <= UBound(vArray, 1) - LBound(vArray, 1) + 1pvFld.PivotItems(i).Name = vArray(j, 1) isepvFld.PivotItems(pvFld.PivotItems(i).Name).Visible = TrueÇıkış YapBaşkapvFld.PivotItems(pvFld.PivotItems(i).Name).Visible = FalseBitirj = j + 1Döngüsonraki benİle bitmekAlt Bitiş

Bir Değişkene Dayalı Filtre Oluşturma

Bir hücredeki değer yerine kodumuzdaki değişkenlere dayalı filtreler oluşturmak için aynı kavramları kullanabiliriz. Bu sefer filtre değişkeni (strFilter) kodun kendisinde doldurulur (örn.: Makroya sabit kodlanmış).

1234567 Alt FilterTextValue()PivotField Olarak Dim pvFldDim strFilter As StringpvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Tedarikçi") olarak ayarlayınstrFilter = "THOMAS S"pvFld.CurrentPage = strFilterAlt Bitiş
wave wave wave wave wave