Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivot Filter über Zwischenspeicher

Pivot Filter über Zwischenspeicher
05.01.2016 11:28:48
Diers
Hallo Profis,
ich habe eine Pivot-Tabelle und im Berichtsfilter ein Kriterium, z.B. Name. Hier sind nun sehr viele verschiedene Namen aufgeführt.
In einer anderen Tabelle habe ich verschiedene Gruppierungen von Namen (z.T. sehr viele). Jetzt könnte ich diese Namen alle einzeln in dem Filter anhaken, dies ist aber sehr aufwändig.
Ist es irgendwie möglich, die Namen (stehe alle in einzelnen Zellen) zu kopieren und in der Pivot-Tabelle oder sonst irgendwo hinzukopieren, dann Filter wird auf diese Namen gesetzt?
Das wäre echt genial, wenn ihr mir helfen könntet.
VG
Daniel

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot Filter über Zwischenspeicher
06.01.2016 12:22:33
fcs
Hallo Daniel,
das Setzen des Filters ist möglich per Makro.
Dabei wird erst die Pivot-Tab aktualisiert und der Filter für das Feld gelöscht - Alle Items des Feldes werden dann angezeigt.
Dann werden in einer Schleife alle Items ausgeblendet, die in der Gruppe nicht enthalten sind.
Das kann bei sehr vielen Items in dem Feld auch etwas länger dauern, da die Pivot-Tabelle nach jedem Item Item neu berechnet wird.
Pivot-Tabellen kennen, anders als der Autofilter, keine Werteliste als Filterkriterium.
Hier eine kleine Beispieldatei
https://www.herber.de/bbs/user/102609.xlsm
Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Pivot Filter über Zwischenspeicher


Schritt-für-Schritt-Anleitung

Um einen Pivot-Filter über den Zwischenspeicher zu setzen, kannst du die folgenden Schritte befolgen:

  1. Öffne deine Excel-Datei mit der Pivot-Tabelle.

  2. Erstelle eine Liste in einer anderen Tabelle, die die Namen enthält, die du filtern möchtest.

  3. Aktiviere die Entwicklertools in Excel, falls du es noch nicht getan hast. Gehe dazu zu Datei > Optionen > Menüband anpassen und aktiviere das Kontrollkästchen für Entwicklertools.

  4. Füge ein neues Makro hinzu:

    • Klicke auf Entwicklertools > Visual Basic.
    • Erstelle ein neues Modul (Einfügen > Modul).
  5. Kopiere und füge den folgenden VBA-Code ein:

    Sub FilterPivotTable()
       Dim ws As Worksheet
       Dim pt As PivotTable
       Dim pf As PivotField
       Dim pi As PivotItem
       Dim filterRange As Range
       Dim item As Variant
    
       Set ws = ThisWorkbook.Sheets("DeinePivotTabelle") ' Name der Tabelle mit der Pivot
       Set pt = ws.PivotTables(1) ' Erste Pivot-Tabelle auf dem Blatt
       Set pf = pt.PivotFields("DeinFeldName") ' Name des Pivot-Feldes
    
       ' Setze den Filter zurück
       pf.ClearAllFilters
    
       ' Definiere den Bereich mit den Namen
       Set filterRange = ThisWorkbook.Sheets("DeineListe").Range("A1:A10") ' Bereich mit den Namen
    
       ' Durchlaufe die PivotItems
       For Each pi In pf.PivotItems
           pi.Visible = False ' Verstecke alle
           For Each item In filterRange
               If pi.Name = item.Value Then
                   pi.Visible = True ' Zeige nur die gefilterten
                   Exit For
               End If
           Next item
       Next pi
    End Sub
  6. Passe die Namen in dem Code an deine spezifischen Anforderungen an (z.B. "DeinePivotTabelle", "DeinFeldName", "DeineListe").

  7. Führe das Makro aus, um den Filter in der Pivot-Tabelle anzuwenden.


Häufige Fehler und Lösungen

  • Fehler: "PivotTable-Name nicht gefunden"

    • Lösung: Stelle sicher, dass der Name der Pivot-Tabelle korrekt angegeben ist und dass sich die Tabelle im richtigen Arbeitsblatt befindet.
  • Fehler: "PivotItem ist nicht sichtbar"

    • Lösung: Überprüfe, ob die Items, die du in deiner Liste hast, tatsächlich in der Pivot-Tabelle existieren.
  • Fehler: Makro läuft nicht wie erwartet

    • Lösung: Prüfe, ob der Filterbereich korrekt definiert ist und dass er die richtigen Zellreferenzen enthält.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die folgenden Alternativen ausprobieren:

  • Manuelles Filtern: Kopiere die Namen in die Filterliste der Pivot-Tabelle. Das ist jedoch zeitaufwändiger, wenn du viele Daten hast.
  • Verwendung von Slicern: Füge Slicer hinzu, um die Filteroptionen visuell darzustellen. Dies ermöglicht eine einfache Auswahl mehrerer Werte ohne VBA.

Praktische Beispiele

Beispiel 1: Angenommen, du hast eine Pivot-Tabelle mit den Verkäufen nach Name. Du möchtest die Namen "Max", "Julia" und "Peter" filtern:

  1. Erstelle eine Liste in einer anderen Tabelle mit diesen Namen.
  2. Verwende das oben genannte Makro, um die Pivot-Tabelle zu filtern.

Beispiel 2: Wenn du einen Pivot-Datumsfilter einsetzen möchtest, kannst du ähnliche VBA-Techniken anwenden, um nach Monaten oder Jahren zu filtern.


Tipps für Profis

  • Makros automatisieren: Du kannst das Makro an ein Button-Element in deiner Excel-Datei anhängen, um den Filter mit einem Klick zu setzen.
  • Pivot-Tabellen optimieren: Halte deine Datenquellen sauber und gut strukturiert, um die Leistung der Pivot-Tabelle zu verbessern.
  • Verwende dynamische Bereiche: Statt statischer Bereiche in deinem Makro, nutze dynamische Bereiche, um deine Filterliste automatisch zu aktualisieren.

FAQ: Häufige Fragen

1. Kann ich mehrere Werte gleichzeitig filtern? Ja, mit dem VBA-Skript kannst du mehrere Werte gleichzeitig filtern, indem du die Liste der Namen entsprechend erstellst.

2. Wie kann ich einen Pivot-Datumsfilter verwenden? Du kannst ähnliche VBA-Techniken verwenden, um Datumsfilter zu setzen. Stelle sicher, dass das Datumsformat in der Pivot-Tabelle korrekt ist.

3. Ist das Makro in jeder Excel-Version verwendbar? Das oben genannte Makro ist kompatibel mit Excel 2010 und neueren Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige