Mittwoch, 10. Juli 2013

Excel Arbeitsblätter mit DAX Abfragen füllen

Wenn Sie mit PowerPivot arbeiten und die Daten in einer Pivot-Tabelle darstellen, dann sendet die Pivot-Tabelle im Hintergrund MDX-Abfragen an das PowerPivot Modell. Das macht Excel ganz automatisch.
Um die Pivot-Tabelle zu erstellen, generiert Excel automatisch MDX-Abfragen

Eine Frage, die immer wieder gestellt wird, lautet: "Wie kann ich den Inhalt einer PowerPivot Tabelle in einem Excel Arbeitsblatt anzeigen?" Also nicht die oben gezeigte Pivot-Tabelle, sondern einfach nur den Inhalt einer Tabelle, die Sie zuvor nach PowerPivot importiert haben, als "flache" Tabelle. Das ist nicht ganz so offensichtlich, vor allem bietet in Excel 2010 die grafische Oberfläche keinen direkten Weg dafür.

Je nachdem, ob Sie mit Excel 2010 oder mit Excel 2013 arbeiten, sieht die Vorgehensweise etwas anders aus.

PowerPivot in Excel 2010

Mit einem Doppelklick auf eine Zelle in der Pivot-Tabelle öffnet sich ein neues Excel Arbeitsblatt, das die ersten 1000 Zeilen anzeigt, die zum Berechnen des Werts in der angeklickten Zelle beitragen. Auch hierfür erzeugt Excel automatisch eine MDX-Abfrage.
Die Liste der Werte wird mit einer MDX Anweisung ermittelt.
 
Sie können dieses Fenster sehen, wenn Sie mit einem Rechtsklick in die Tabelle klicken und dann die Funktion "Table" - "Edit Query..." auswählen.
Mit "Edit Query..." können Sie die MDX-Abfrage hinter der Tabelle sehen.


Jetzt kommt der Clou: Diese MDX-Abfrage können Sie durch eine DAX-Abfrage ersetzen. Da die Sprache DAX extra für das Arbeiten mit Tabellen in PowerPivot entwickelt wurde, können Sie damit recht einfach Tabellen abfragen. (Anm.: Da MDX mit Mengen von Zellen "Cellsets" arbeitet, ist das Abfragen von Tabellen mit MDX nicht einfach möglich. Tabellen gibt es in der Welt von MDX einfach nicht.)

Das folgende Fenster zeigt das Beispiel für eine solche Abfrage.

Im Bereich "Command Text" können Sie auch eine DAX-Abfrage eintragen.
Evaluate( Filter( TradingData, TradingDate[Month_Number] = "12" ) )

Die DAX-Funktion "Evaluate" fragt eine Tabelle ab. Da die verwendete Tabelle "TradingData" sehr viele Zeilen hat, wurden mit der "Filter"-Funktion diejenigen Zeilen ausgewählt, wo die Spalte "Month Number" einen Wert von 12 hat.
Wenn Sie das erst einmal hinbekommen haben, können Sie beliebige DAX-Ausdrücke erstellen, um deren Ergebnis in einer Excel Tabelle darzustellen.

PowerPivot in Excel 2013

In der aktuellen Version 2013 funktioniert das im Prinzip genauso, allerdings hat sich die Bedienung ein klein wenig verändert. Daher die Schritte hier noch einmal für die neue Version:
  1. Wählen Sie im Ribbon "Daten" - "Vorhandene Verbindungen".
    Achtung: das funktioniert nur dann, wenn Sie eine Zelle ausgewählt haben, die nicht innerhalb einer Pivot Tabelle liegt ;-)
  2. Wählen Sie unter dem Reiter "Tabellen" eine beliebige Tabelle aus.
  3. Es wird ein neues Arbeitsblatt mit den Daten dieser Tabelle angelegt.
    Damit ist die Aufgabenstellung "Hole die Daten einer Tabelle aus PowerPivot in ein Excel Arbeitsblatt" bereits erledigt. Sie können die dahinter stehende DAX Abfrage nun noch modifizieren.
  4. Mit einem Rechtsklick in die Excel Tabelle öffnet sich das folgende Menü.
  5. Wählen Sie hier die Funktion "Tabelle" - "DAX bearbeiten". In dem folgenden Dialog können Sie die gewünschte DAX Abfrage einfügen. Achten Sie dabei darauf, dass Sie den Befehlstyp von "Tabelle" nach "DAX" umstellen!

DAX Abfragen erstellen

Bleibt nur noch die Frage, mit welchem Werkzeug sich DAX Abfragen komfortabel erstellen lassen. Meine Empfehlung: Versuchen Sie es mit dem Excel Add-In DAX Studio. Es steht kostenlos hier zum Download bereit: http://daxstudio.codeplex.com/