Aktivierte Filter eines Pivotfeldes anzeigen
Schritt-für-Schritt-Anleitung
Um die aktivierten Filter eines Pivotfeldes in einer Zelle anzuzeigen, gehe wie folgt vor:
-
Öffne Excel und lade deine Datei mit der Pivot-Tabelle.
-
Öffne den VBA-Editor durch Drücken von ALT + F11.
-
Erstelle ein neues Modul: Rechtsklicke auf "VBAProject (deineDatei.xlsm)" > Einfügen > Modul.
-
Füge den folgenden VBA-Code ein:
'Erstellt unter Excel 2010
Function fncBerichtsfilter(pvTable As PivotTable, strFieldName As String, _
Optional strSep As String = " | ") As String
Dim pvField As PivotField, pvItem As PivotItem
Set pvField = pvTable.PageFields(strFieldName)
With pvField
fncBerichtsfilter = ""
If .EnableMultiplePageItems = True Then
For Each pvItem In .PivotItems
If pvItem.Visible Then
fncBerichtsfilter = fncBerichtsfilter & strSep & pvItem.Caption
End If
Next
Else
fncBerichtsfilter = .CurrentPage.Caption
End If
End With
End Function
-
Füge ein Ereignismakro hinzu: Klicke im VBA-Editor auf das Arbeitsblatt mit deiner Pivot-Tabelle und füge folgenden Code ein:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
With Me
.Range("B2").Value = fncBerichtsfilter(pvTable:=Target, _
strFieldName:="Feld01", strSep:=";")
End With
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Aktualisiere die Pivot-Tabelle. Die aktivierten Filter erscheinen nun in Zelle B2.
Häufige Fehler und Lösungen
-
Fehler: #WERT!
Dieser Fehler kann auftreten, wenn du versuchst, die Funktion ohne das Ereignismakro zu nutzen. Stelle sicher, dass beide Teile des Codes korrekt implementiert sind.
-
Excel filtert nicht alle Elemente an:
Überprüfe, ob die Pivot-Tabelle korrekt konfiguriert ist. Manchmal müssen die Filtereinstellungen in der Pivot-Tabelle angepasst werden.
-
Makro wird nicht ausgeführt:
Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.
Alternative Methoden
Eine Möglichkeit, die aktivierten Filter anzuzeigen, besteht darin, die Pivot-Tabelle in eine Tabelle zu konvertieren und die Filter über die FILTER-Funktion auszulesen. Dies ist jedoch nur in neueren Excel-Versionen möglich.
Praktische Beispiele
Angenommen, du hast eine Pivot-Tabelle, die Verkaufsdaten enthält. Um die aktivierten Filter anzuzeigen:
- Wähle mehrere Produkte im Berichtsfilter aus.
- Die Zelle B2 zeigt nun alle aktiven Filter aus der Pivot-Tabelle an, getrennt durch ein Semikolon.
Ein Beispiel für den verwendeten Code, um die Filterwerte anzuzeigen:
.Range("B2").Value = fncBerichtsfilter(pvTable:=Target, _
strFieldName:="Produkt", strSep:=";")
Tipps für Profis
-
Anpassung für mehrere Pivot-Tabellen:
Wenn du mehrere Pivot-Tabellen auf einem Arbeitsblatt hast, kannst du das Ereignismakro anpassen, um spezifische Filter für jede Tabelle zu definieren. Verwende Select Case-Befehle, um die korrekten Zellen anzugeben.
-
Verwendung von benutzerdefinierten Separatoren:
Du kannst den Separator in der Funktion anpassen, um die Darstellung zu verbessern (z.B. durch Kommas oder Strichpunkte).
FAQ: Häufige Fragen
1. Wie kann ich die Filterwerte in einer anderen Zelle anzeigen?
Du kannst die Zelle, in der die Filterwerte angezeigt werden sollen, einfach im Ereignismakro anpassen. Ändere .Range("B2") in die gewünschte Zelle.
2. Funktioniert das auch in Excel Online?
Leider sind Makros in Excel Online nicht verfügbar. Du benötigst die Desktop-Version von Excel, um diese Funktionen zu verwenden.