Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PivotTable (OLAP) filtern

PivotTable (OLAP) filtern
24.08.2016 08:49:44
J-E
Hallo liebes Forum,
ich möchte eine bestehende PivotTable automatisch über ein Makro filtern lassen. Das ganze wird dann später in eine Schleife eingebaut, um mehrere Kundensätze in einem Zug auszulesen.
Hier mein aufgezeichnetes Makro:

Sub Cube_filtern()
Range("I4").Select
Selection.Copy
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kunde].[KD NR].[KD NR]"). _
VisibleItemsList = Array("[Kunde].[KD NR].&[468100]")
End Sub

Die Nummer 468100 ist die Kundennummer aus Zelle I4 auf dem gleichen Tabellenblatt (im Moment der Aufzeichnung).
Wenn das Makro nun ausgeführt wird, wird natürlich nur nach dieser Nummer gefiltert.
Könnt ihr mir bitte sagen, wie ich dieses Filterkriterium dynamisch bekomme, d.h. sich immer der aktuelle Wert genommen wird?
Vielen Dank für eure Hilfe im Voraus!
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PivotTable (OLAP) filtern
24.08.2016 10:22:08
ChrisL
Hi
Was bedeutet "aktueller Wert" in Zusammenhang mit einer Kundennummer? Vermutlich würde eine Beispieldatei Klarheit schaffen.
Vielleicht hilft dir folgender Schnipsel:
Array("[Kunde].[KD NR].&[" & Variable & "]")
cu
Chris
AW: PivotTable (OLAP) filtern
24.08.2016 10:28:21
J-E
Hallo Chris,
vielen Dank für deine schnelle Antwort!
Mit "aktuellem Wert" meine ich den Inhalt in "I4", also die Kundennummer, nach der in Pivot gefiltert werden soll.
Du würdest diesen Inhalt (= Filterkriterium) als Variable x deklarieren.
Wäre dann Dim x as string und x = Range("I4").text?
Anzeige
AW: PivotTable (OLAP) filtern
24.08.2016 10:39:38
ChrisL
Hi
Der Datentyp scheint mir ausnahmsweise nebensächlich, da die Nummer schlussendlich als String verwendet wird.
Dim x As Long
oder
Dim x As String
müsste beides gehen.
Vermutlich kannst du aber auch auf die Variable verzichten, versuche mal folgendes:
Array("[Kunde].[KD NR].&[" & Range("I4") & "]")
cu
Chris
PS: Falls die Kundennummer führende Nullen hat, müsste man evtl. noch formatieren.
Anzeige
AW: PivotTable (OLAP) filtern
24.08.2016 11:07:28
J-E
Prima, das läuft schon einmal.
Leider funktioniert es nur bei genauen Übereinstimmungen, d.h. alle 6 Ziffern der Kundennummern müssen in I4 stehen.
Nun kann es vorkommen, dass nur 3 der 6 Ziffern bekannt sind und dort stehen
Kann die PivotTable hier alle Treffer anzeigen, die diese 3er Nummernfolge enthält?
Bisher kommt dann noch folgende Fehlermeldung:
Laufzeitfehler 1004: Das Element konnte im OLAP-Cube nicht gefunden werden.
Anzeige
AW: PivotTable (OLAP) filtern
24.08.2016 11:18:47
ChrisL
Naheliegend wäre eine Wildcard "*" zu verwenden, aber ob dies funktioniert kann ich nicht sagen. Sonst muss ich passen.
Array("[Kunde].[KD NR].&[" & Range("I4") & "*]")
AW: PivotTable (OLAP) filtern
24.08.2016 11:32:48
J-E
Danke für den Tipp - leider löst das den "Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler" aus :-(
Anzeige
AW: PivotTable (OLAP) filtern
24.08.2016 14:23:32
J-E
Ich habe das ganze nun über eine kleine Zwischenablage neben der Pivot gelöst.
Die Daten aus der Pivot werden nun in eine Tabelle kopiert und dort gefiltert. Da funktioniert die Wildcard.
;
Anzeige
Anzeige

Infobox / Tutorial

PivotTable (OLAP) dynamisch filtern


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Um die PivotTable dynamisch zu filtern, beginne mit dem Erstellen eines Makros. Hier ist ein einfaches Beispiel, das die Kundennummer aus Zelle I4 verwendet.

    Sub Cube_filtern()
       Dim x As String
       x = Range("I4").Text
       ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kunde].[KD NR].[KD NR]").VisibleItemsList = Array("[Kunde].[KD NR].&[" & x & "]")
    End Sub
  2. Dynamisches Filtern: Stelle sicher, dass das Makro die aktuelle Kundennummer verwendet, indem du den Wert direkt aus Zelle I4 ziehst, wie im obigen Beispiel gezeigt.

  3. Wildcard verwenden: Wenn du nach einer Teilübereinstimmung filtern möchtest, ist es wichtig zu beachten, dass OLAP PivotTables normalerweise keine Wildcards unterstützen. Eine mögliche Lösung ist, die Daten in eine Tabelle zu kopieren und dort den Filter anzuwenden.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn das Element im OLAP-Cube nicht gefunden werden kann. Überprüfe, ob die exakte Nummer in Zelle I4 steht und ob sie im Cube vorhanden ist. Wenn du eine Wildcard verwenden möchtest, kann dies nicht direkt in der OLAP PivotTable getan werden.

  • Keine Übereinstimmungen: Stelle sicher, dass die Kundennummer in Zelle I4 genau mit dem übereinstimmt, was im OLAP-Cube vorhanden ist. Wenn du nur einen Teil der Kundennummer hast, kannst du die Daten außerhalb der PivotTable filtern.


Alternative Methoden

Eine alternative Methode besteht darin, die Daten vor dem Erstellen der OLAP PivotTable zu filtern. Du kannst die Daten in eine Excel-Tabelle kopieren und dort die Filterfunktionen nutzen, um nur relevante Datensätze anzuzeigen.

Zudem kannst du mit einem OLAP Cube erstellen einen eigenen Cube in Excel generieren, um spezifische Filteroptionen zu ermöglichen.


Praktische Beispiele

  1. PivotTable erstellen: Erstelle eine OLAP PivotTable basierend auf deinen Datensätzen. Nutze die oben genannten Schritte, um sicherzustellen, dass der Filter dynamisch funktioniert.

  2. Copy & Paste: Wenn du Schwierigkeiten hast, die PivotTable direkt zu filtern, kopiere die Daten in eine neue Tabelle und wende dort die Filter an.


Tipps für Profis

  • VisibleItemsList: Nutze die VisibleItemsList-Eigenschaft, um spezifische Elemente in der PivotTable anzuzeigen oder auszublenden.

  • Datenvorbereitung: Bereite deine Daten vor der Erstellung des OLAP-Cubes vor, um die Filterfunktionen optimal nutzen zu können.

  • Fehlerbehebung: Teste dein Makro regelmäßig und achte auf mögliche Fehlerquellen, die bei der Verwendung von Range oder VisibleItemsList auftreten können.


FAQ: Häufige Fragen

1. Wie kann ich die Filterkriterien dynamisch anpassen?
Du kannst die Filterkriterien dynamisch anpassen, indem du den Wert aus einer Zelle (z.B. I4) in deinem Makro verwendest.

2. Funktioniert die Wildcard mit OLAP PivotTables?
Leider unterstützen OLAP PivotTables keine Wildcards. Eine Alternative besteht darin, die Daten in eine normale Tabelle zu kopieren und dort die Wildcard-Filter zu verwenden.

3. Was ist der Unterschied zwischen einem normalen PivotTable und einem OLAP PivotTable?
OLAP PivotTables ermöglichen die Analyse von großen Datenmengen aus einem OLAP-Cube, während normale PivotTables auf Excel-Daten basieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige