Boxplot-Diagramme dienen zur grafischen Darstellung der Verteilung eines Merkmales. Mithilfe von Boxplots soll schnell ein Eindruck vermittelt werden, in welchem Bereich die Werte einer Kennzahl liegen und wie sie sich über diesen verteilen. In diesem Blogbeitrag soll eine in einem Kundenprojekt angewandte Methode erläutert werden, die mit wenig Aufwand und ein bisschen MDX eine Vielzahl von KPIs dynamisch als Boxplot in einem Bericht darstellen kann.
Damit DeltaMaster einen Boxplot als Pivotgrafik anzeigen kann, werden das Minimum, Maximum, Quartil 25, Quartil 75 und der Mittelwert einer Kennzahl über eine angegebene Menge an Elementen benötigt. Diese lassen sich bequem von DeltaMaster im Analysewertbrowser anlegen (univariate statistische Analysewerte). Hier gibt man an, für welchen Basisanalysewert (Hier: Return on Sales) und über welche Dimension, Hierarchie und Ebene der univariate Statistik-Analysewert berechnet werden soll.
In Rahmen des exemplarischen Kundenprojekts wurden folgende Anforderungen an den Boxplot-Bericht gestellt:
- Für jeden der über 30 KPIs soll es möglich sein, einen Boxplot anzuzeigen
- Es soll insgesamt nur einen Boxplot-Bericht geben, bei dem der Berichtsempfänger selbst über die Sicht entscheidet, für welche KPI der Boxplot angezeigt wird
Situation: Die KPIs sind nicht als Kennzahlendimension in der Sicht modelliert.
Damit der Berichtsempfänger aber dennoch bequem die Analysewerte in der Sicht wechseln kann, benötigt man eine Dummy-Dimension (Alternative: nicht benutzte Dimension) mit Dummy-Elementen. Hierzu erstellt man im Cube-Skript zunächst Dummy-Elemente, welche denselben Namen wie die vorhandenen KPI-Simple-Measures haben müssen.
Damit man nicht für jeden Analysewert die univariaten Statistik-Analysewerte MIN, MAX, QUARTIL25, QUARTIL75 und AVG separat erstellen muss, bietet sich eine dynamische Variante an. Man erstellt einen UserDef-Analysewert, der über die stringtomember-MDX-Funktion den Namen des aktuell ausgewählten Dummy-Elements aus der Dummy-Dimension über die MemberProperties abfragt. So entspricht der Basisanalysewert der jeweiligen UniStat-Measure dynamisch dem ausgewählten Element aus der Dummy-Dimension. Voraussetzung: Name des Dummy-Elements und Name der Measure aus der Measure-Dimension müssen übereinstimmen, damit die stringtomember-Zuordnung erfolgreich ist.
Mit den dynamischen, univariaten Statistikmaßen kann man nun einen Boxplot als Bericht erstellen (Pivotgrafik), welcher sich dynamisch gegenüber Änderungen in der Dummy-Kennzahlendimension verhält.
Was ist aber, wenn die KPIs unterschiedliche Formatierungen haben? Also entweder als Zahl oder als Prozentwert formatiert sind? Auch hierzu gibt es einen Trick: Das Format einer Kennzahl lässt sich dynamisch per MDX bestimmen. Hierzu muss man eine Hilfs-Measure im Cube-Skript definieren und einen SCOPE, der je nach verwendeter KPI-Measure den Wert der Hilfs-Measure binär vergibt.
Die einzelnen UniStat-Analysewerte müssen dann folgende dynamische MDX-Formatierung haben:
So wechselt in Abhängigkeit der Auswahl in der Dummy-Kennzahlendimension die Formatierung dynamisch gemäß dem hierfür definierten SCOPE.
Hiermit ist es möglich, mit ein bisschen MDX in Cube-Skript und DeltaMaster einen dynamischen Boxplot zu erstellen, mit dem der Berichtsempfänger den zu analysierenden KPI-Wert bequem selbst wählen kann, ohne eine Vielzahl an Berichten und Kennzahlen erstellen zu müssen.