Sonntag, 21. September 2014

Asymmetrischer Pivotaufbau mittels Gruppen (sog. Named Sets)

Ich glaube jeder Anwender von Pivots ist schon einmal an den Punkt geraten, an dem ein symmetrischer Pivotaufbau nicht ausgereicht hat. Was ein symmetrischer Pivotaufbau ist? Schau Dir folgenden Screenshot an:


Die Pivot stellt folgendes dar:
Im Wertebereich befinden sich Kostenbeträge. Diese werden in den Zeilen in Abteilungen (Einkauf, Controlling, ...) und Kostenarten (Energie, Miete, ...) und in den Spalten in Jahr und Monate untergliedert. Symmetrisch ist dieser Aufbau deshalb, weil zu jedem Jahr (2013 und 2014) alle Monate untergeordnet sind. So gibt es jeden einzelnen Kalendermonat in jedem einzelnen Kalenderjahr. Lediglich aus Platzgründen habe ich im Jahr 2014 die Monate nach dem März abgeschnitten.

Was wäre jedoch, wenn ich das Vorjahr 2013 in einer einzigen Spalte als Gesamtsumme sehen möchte und in allen weiteren Spalten die Einzelmonate des aktuellen Jahres 2014? Mit gewöhnlichen Pivots sähe eine mögliche Lösung wie folgt aus:





Der rot markierte Bereich ist dabei quasi der Zielzustand. Die Summe des Jahres 2013 steht dabei in einer Spalte, gefolgt von den ersten drei Monaten des Jahres 2014. Jedoch stört bei dieser Darstellung der grün markierte Bereich, in welchem alle Monate des Jahres 2013 aufgelistet sind. Leider bietet eine gewöhnliche Pivottabelle keine Möglichkeit einen solchen - sogenannten asymmetrischen - Report aufzubauen. Klassischer Weise werden die nicht benötigten Spalten dann manuell ausgeblendet.

Mit Power Pivot ist dieses Vorgehen jedoch nicht mehr notwendig. Sofern Eure Pivot also auf einem Datenmodell basiert (siehe folgenden Screenshot) kann auf die Technologie Gruppen (Sets) zugegriffen werden.



Das folgende Bild zeigt den Weg zu den sogenannten Gruppen (engl. Named Sets):


Mit einem Klick in die Pivot öffnet sich das kontextsensitive Menü für Pivottabellen und gibt Zugriff auf den Ribbon-Reiter Analysieren. Die Schaltfläche Felder, Elemente und Gruppen erlaubt die Erstellung sogenannter Gruppen auf Zeilen- oder Spaltenbasis. Da an dieser Stelle eine Gruppe auf Basis der Spaltenüberschriften erstellt werden soll (wir wollen ja die Jahres- und Monatsdarstellung beeinflussen) wählen wir hier Gruppen basierend auf Spaltenelementen erstellen.

Anschließend erscheint folgende Oberfläche:



Hier wird deutlich, dass Microsoft nicht konsequent genug aus dem Englischen übersetzt hat. Während in der Ribbon-Schaltfläche noch von Gruppen die Rede war, geht es in dieser Oberfläche um Sets. Lasst Euch davon nicht beirren, denn Gruppen und Named Sets sind das gleiche. Kurz zum Zweck dieser Oberfläche. Die Pivot, auf deren Basis diese Gruppe erstellt werden soll, hat in den Spaltenüberschriften Jahre und Monate. Aus diesem Grund zeigt die aktuelle Oberfläche alle in der Pivot zur Verfügung stehenden Kombinationen aus Jahren (linke Spalte JJJJ) und Monaten (rechte Spalte JJJJ_MM). Besonderes Augenmerk ist auf die Einstellung Alle unter JJJJ_MM zu legen: Dies bedeutet, dass es keinen Filter im Bereich JJJJ_MM (also keinen Monatsfilter) gibt und somit der Gesamtjahreswert dargestellt wird.

Die gewünschte Kombination aus Jahr und Monat kann über die DropDown-Pfeile (rot markiert) ausgewählt werden und sofern zu wenig oder zu viele Zeilen zur Verfügung stehen, können diese über Zeile hinzufügen und Zeile löschen hinzugefügt, oder entfernt werden.
Abschließend ist es wichtig, der gerade erstellten Gruppe einen Namen (Setname) zu geben, damit diese in der täglichen Arbeit mit der Pivottabelle überhaupt wiedergefunden werden kann. In diesem Beispielfall handelt es sich dabei um MeinSet.
Sofern ihr davon ausgehen müßt viele unterschiedliche Sets zu benötigen empfiehlt es sich, auch das Feld Anzeigeordner (optional) zu füllen. Das führt dazu, dass Ihr Eure Gruppen noch einmal unterteilt. Folgender Screenshot zeigt den Effekt:


Innerhalb des Ordners Gruppen befindet sich nun ein Unterordner, der wiederum Gruppen beinhaltet. So behält man besser den Überblick.

Teilweise erhält man beim Bestätigen der soeben erstellten Gruppe folgende Fehlermeldung:


Bei mir ergibt sich dies häufig dadurch, dass ich in den Überschriften von Pivottabellen Kalendertabellenwerte habe, gleichzeitig aber Datenschnitte basierend auf der Kalendertabelle zur Verfügung stelle. Schaut Euch den folgenden Screenshot dazu an:



Diese Datenschnitte müssen vor Erstellung der Gruppe (Set) entfernt werden, damit die Fehlermeldung nicht auftritt. Dies ergibt auch inhaltlich großen Sinn, da die erstellte Gruppe ja bereits fest definiert, welche Ausprägung von Jahr und Monat dargestellt werden. Der Datenschnitt könnte somit sowieso keine zusätzlichen Filter mehr setzen.

Das Endergebnis sollte dann unter Nutzung der neu erstellten Gruppe (Set) wie folgt aussehen:



Damit sollte es Euch in Zukunft leicht fallen asymmetrische Berichte zu bauen. Im nächsten Post wird es darum gehen, diese Gruppen (Sets) mittels DAX-Measures und MDX (Multidimensional eXpressions) derart aufzubereiten, dass sie über Datenschnitte ausgewählt und somit gesteuert werden können.

Viel Spaß beim nachbauen und bis zum nächsten Mal...
Lars