Liebe Datenanalysten,
wem die Verständlichkeit seiner Texte am Herzen liegt, der ist vorsichtig mit Schachtelsätzen. Ein überliefertes Beispiel: „Derjenige, der denjenigen, der den Pfahl, der an der Brücke, über die der Weg, der nach Worms führt, steht, umgeworfen hat, anzeigt, erhält eine Belohnung.“* Germanisten nennen solche Über- und Unterordnungen im Satzgefüge eine Hypotaxe. Syntax und Grammatik stimmen, der Stil jedoch ist eine Zumutung für den eiligen Leser. Immerhin, so wägt der Sprachkritiker und Journalistenlehrer Wolf Schneider ab, habe die Hypotaxe „die Chance, die Verworrenheit der irdischen Verhältnisse angemessen abzubilden“*. Schriftsteller wie Thomas Mann oder Heinrich von Kleist arbeiten sehr kunstvoll und stilprägend mit Schachtelsätzen. Beide sind aber Autoren der Weltliteratur und richten sich nach anderen Maßstäben, als wir es tun sollten, deren Aufgabe es ist, unsere Adressaten zu informieren, zu warnen oder zu beraten. Die Verschachtelung, die uns sprachlich schnell ins Straucheln bringt, ist in Tabellen weit weniger problematisch. Im Gegenteil: In tabellarischen Berichten sind Verschachtelungen gern gesehen, weil sie uns mehrere Merkmale auf einmal vor Augen führen, ihre Über- und Unterordnung deutlich machen und so die Verworrenheit in multidimensionalen Datenbeständen aufzulösen vermögen. Tipps für den Umgang mit verschachtelten Hierarchien in Pivottabellen haben wir in diesen clicks! für Sie zusammengetragen.
Herzliche Grüße
Ihr Team von Bissantz & Company
* Wolf Schneider, Deutsch!, 2. Aufl.,
Reinbek 2005, Seite 103.
In Pivottabellen sind verschachtelte Achsen an der Tagesordnung: Sobald wir auf der Zeilen- oder der Spaltenachse mehr als ein Merkmal (eine Dimension) darstellen, haben wir es mit einer Verschachtelung zu tun. In den vorliegenden clicks! wollen wir genauer beschreiben, wie DeltaMaster mit solchen Konstruktionen verfährt, und Ihnen Tipps geben, wie Sie solche Pivottabellen an Ihre Anforderungen anpassen.
Als Ausgangsbeispiel dient uns eine Pivottabelle aus unserer Referenzanwendung „Chair“. Auf der Zeilenachse sind die Kunden- und die Produktdimension verschachtelt; die Kunden liegen außen, die Produkte innen. Auf der Spaltenachse sind die Kennzahlen angeordnet, hier nur eine, der Absatz. Dieser Bericht weist den Absatz für jede unserer vier Kundenregionen aus, je Region wiederum aufgegliedert in unsere drei Produkthauptgruppen.
Hierarchien im Bericht anordnen
Die Reihenfolge, in der die Dimensionen angeordnet sind, lässt sich in den Stufen Pivotizer, Analyzer und Miner ändern – entweder direkt im Bericht oder in der Berichtsdefinition bzw. der Cockpitdefinition (Modus Miner).
Das Anordnen direkt im Bericht erledigen Sie einfach per „Drag & Drop“, indem Sie die Spaltenüberschrift oder ein beliebiges Dimensionselement in eine andere Hierarchiespalte ziehen. DeltaMaster tauscht dann die beiden Spalten. Für die Anordnung von Dimensionen auf der Spaltenachse gilt das analog; der Einfachheit halber bleiben wir in diesen Ausführungen bei der Zeilenachse.
In unserem Beispiel sehen wir auf diese Weise den Absatz zunächst nach Produkthauptgruppen (äußere Hierarchie) und innerhalb einer jeden Produkthauptgruppe nach Kundenregionen aufgegliedert (innere Hierarchie).
Anstatt die Spalten unmittelbar im Bericht anzuordnen, können Sie auch auf die Berichtsdefinition bzw. die Cockpitdefinition (Modus Miner) zurückgreifen, die im Menü Ändern des Fensters Bericht bzw. Cockpit angeboten wird. Schneller geht es, wenn Sie nicht erst auf das Aufklappen des Menüs warten, sondern direkt auf die Menübeschriftung Ändern klicken – auch dies führt zur Berichts- bzw. Cockpitdefinition. In dem Dialog, der sich daraufhin öffnet, lässt sich die Struktur der Pivottabelle in einer Art Vogelperspektive bearbeiten. Das ist unter anderem dann eine Erleichterung, wenn eine umfangreiche Tabelle zu entwerfen oder umzugestalten ist: Die Struktur können Sie so vorab festlegen, ohne dass die Tabelle immer wieder neu berechnet wird.
Elemente innerhalb ihrer Hierarchie anordnen
Bei Achsen, deren Bestandteile als explizite Elementauswahl definiert sind („Pick List“; Achsendefinition, Registerkarte Allgemein), können Sie die Elemente ebenfalls direkt im Bericht anordnen, indem Sie sie bei gedrückter Alt-Taste per „Drag & Drop“ verschieben. Das gleiche gilt für Analysewerte. Alternativ stehen Optionen zum Anordnen in der Berichts– bzw. Cockpitdefinition zur Verfügung, bei Analysewerten zusätzlich in deren Kontextmenü.
Um bei den Abbildungen etwas Platz zu sparen, verzichten wir im Folgenden auf die Summenzeilen „Deutschland“ und „Alle Produkte“ – wir behalten nur die Regionen und nur die Produkthauptgruppen selbst. Mit einem Drill-Across (Kontextmenü der Hierarchiespalten) ist das schnell bewerkstelligt.
Drill-down nach Maß
Wenn mehrere Dimensionen auf einer Achse liegen, bildet DeltaMaster das Kreuzprodukt aus diesen Dimensionen: Für jedes Element einer äußeren Dimension werden alle Elemente der nächsten inneren Dimension dargestellt. Das gilt auch bei einem Drill-down, also beim „Aufklappen“ eines Astes durch Anklicken des „+“-Symbols.
Wollen wir beispielsweise das Element „Luxusmodelle“ erweitern, um die Absatzzahlen für die zugehörigen Produktgruppen zu würdigen, so blendet DeltaMaster die untergeordneten Elemente „Arcade“, „Discus“ und „Precisio“ überall dort ein, wo das Element „Luxusmodelle“ vorkommt – hier also in sämtlichen Regionen.
Dieses Verhalten lässt sich mit einer Tastenkombination ändern: Wenn Sie beim Anklicken des „+“-Symbols die Strg-Taste gedrückt halten, führt DeltaMaster den Drill-down nur in der betreffenden Zeile aus. In der Abbildung ist zu erkennen, dass die Luxusmodelle nur in der Region Nord in ihre drei Produktgruppen differenziert werden, in den anderen Zeilen bleibt es bei dem aggregierten Wert.
Übrigens: Auch die Umschalt-Taste hat eine Bedeutung für den Drill-down in der Pivottabelle. Wenn Sie sie gedrückt halten, während Sie auf ein „+“ oder „-“ in der Pivottabelle klicken, führt DeltaMaster für jedes Element auf derselben Ebene einen Drill-down oder Roll-up durch. In unserem Beispiel werden so mit einem Klick nicht nur die Luxusmodelle expandiert, sondern auch die Sondermodelle und die Standardmodelle.
Beide Bedienweisen – Anklicken mit gedrückter Strg– bzw. Umschalt-Taste – stehen auch im Modus Viewer zur Verfügung, sofern der Element-Drill-down bis zur entsprechenden Ebene zugelassen ist (Einstellung in der Achsendefinition auf der Registerkarte Optionen). Die Variation des Drill-down mit der Strg-Taste (einzelnes Element erweitern) ist nur bei verschachtelten Hierarchien relevant, die Umschalt-Taste (Hierarchieebene vollständig öffnen/schließen) in allen Pivottabellen.
Sortierung in verschachtelten Hierarchien
In den bisherigen Beispielen wurden die Dimensionselemente in der Reihenfolge ausgegeben, wie sie von der Datenbank geliefert werden. In einem analytischen Bericht wünscht man sich jedoch meist eine wertabhängige Sortierung. Diese stellt man bekanntlich in der Achsendefinition auf der Registerkarte Ranking ein, und zwar für jede beteiligte Dimension separat.
Die Sortierung der inneren Hierarchien hängt von einer speziellen Option in der Achsendefinition ab. Aber der Reihe nach:
Im Beispiel aktivieren wir zunächst das Ranking sowohl für die Kunden- also auch für die Produktdimension. Das führt zu dem abgebildeten Ergebnis. Der Gesamteindruck der Balkenlängen in der Grafischen Tabelle bestätigt die Sortierung für die Kunden: Der Süden war die absatzstärkste Region, der Norden kam auf den zweiten Platz, der Osten auf den dritten, der Westen war die schwächste Region. Wie aber sieht es in den eingeschachtelten Produkten aus? Im Süden beispielsweise lag der Absatz mit Luxusmodellen bei 45.108, mit Sondermodellen bei 50.107 – und trotzdem stehen die schwächeren Luxusmodelle auf Platz 1 und die stärkeren Sondermodelle auf Platz 2. Hat DeltaMaster unser Ansuchen nach Sortierung womöglich übersehen? Nein! Natürlich nicht.
Standardmäßig sortiert DeltaMaster die beteiligten Dimensionen unabhängig voneinander – hier also gewissermaßen zuerst die Kunden (ohne die jeweils nachgefragten Produkte zu beachten) und dann die Produkte (ohne zu beachten, in welchen Regionen der Absatz zustande kam). Und im betrachteten Zeitraum waren die Luxusmodelle insgesamt erfolgreicher als die Sondermodelle und diese wiederum erfolgreicher als die Standardmodelle. Deshalb findet sich genau diese Reihung im oben gezeigten Bericht in allen Kundenregionen wieder. Man kann in dieser Darstellung gut erkennen, welche Produkthauptgruppe sich insgesamt am besten verkauft hat, auch wenn sich diese Rangfolge nicht in allen Segmenten (Regionen) widerspiegelt. (Wie wir gleich sehen werden, treffen wir die Gesamtreihenfolge sogar nur in einem einzigen Segment an und das ist auch noch das kleinste – ein gutes Beispiel, warum man neben verdichteten Darstellungen immer wieder auch die Details benötigt und somit den Drill-down in tiefere Ebenen.)
Alternativ kann DeltaMaster die Sortierung der Elemente von inneren Hierarchien jeweils in Bezug auf ein Element der äußeren Hierarchie anwenden. Dazu aktivieren Sie in den Optionen der Achsendefinition das Kontrollkästchen Hierarchien ineinander schachteln.
Damit gelangen wir zum nebenstehenden Bericht: Die Kundenregionen sind nach dem Absatz sortiert und innerhalb einer jeden Kundenregion sind die Produkthauptgruppen ebenfalls sortiert. Im Süden beispielsweise lautet die Rangfolge „Sonder-, Luxus-, Standardmodelle“, im Norden „Luxus-, Standard-, Sondermodelle“. Die Rangfolge des Gesamtmarkts „Luxus-, Sonder-, Standardmodelle“ finden wir nur im Westen, der insgesamt schwächsten Region.
Die oben gezeigte Option, mit der Sie Hierarchien ineinander schachteln, gilt für alle inneren Dimensionen gleichzeitig. Auch wenn Sie mehr als zwei Dimensionen miteinander kombinieren, brauchen Sie das Häkchen also nur einmal zu setzen. Falls die Zeilen- oder Spaltenachse nur eine Dimension enthält, wird die Option nicht angeboten.
Filter in verschachtelten Hierarchien
Eine weitere Option in der Achsendefinition sind Filter. In unserem Beispiel könnte man etwa nur Objekte mit einem Absatz größer als 10.000 anzeigen wollen. Filter bezieht DeltaMaster immer auf die Dimension, in der sie definiert sind – nicht auf die sogenannten Tupel, die aus der Kombination mehrerer Dimensionen entstehen.
Wenden wir etwa den erwähnten Filter „Absatz > 10.000“ auf die Produktdimension an, so ändert sich am Berichtsinhalt nichts: Wie dem oben abgebildeten dreizeiligen Bericht zu entnehmen ist, liegt der Absatz in allen drei Produkthauptgruppen (ungeachtet der Verteilung auf die Regionen) über dem Grenzwert, sodass der Filter ins Leere läuft. Definieren wir einen zusätzlichen Filter in der zweiten beteiligten Dimension, so entfällt zwar die Region „West“, weil deren Summe (ungeachtet der Verteilung auf die Produkte) ausgefiltert wird. Dennoch verbleiben Werte unter 10.000 im Bericht, weil die Filter nicht auf die Kunden-Produkt-Kombinationen wirken.
Ist eine Filterung der Tupel erforderlich, hilft ein benutzerdefinierter MDX-Ausdruck in der Achsendefinition (Registerkarte Allgemein) weiter:
Zunächst stellen wir sicher, dass in der Berichtsdefinition bzw. der Cockpitdefinition die gewünschten Dimensionen in der Zeilen– oder in der Spaltenachse liegen – und zwar in genau der Verschachtelung, die wir auch im Bericht zu sehen wünschen.
In der Definition einer der beteiligten Dimensionen auf der Registerkarte Allgemein schalten wir zum benutzerdefinierten MDX-Ausdruck um. Wichtig ist, dass dieser MDX-Ausdruck für alle Hierarchien dieser Achse gilt – deshalb aktivieren wir das entsprechende Kontrollkästchen am unteren Rand des Fensters. In dem benutzerdefinierten MDX-Ausdruck kombinieren wir nun das Filterkriterium mit dem Kreuzprodukt.
In unserem Beispiel sieht das etwa so aus:
Filter(Crossjoin({[Kunden].Levels(2).AllMembers}, {[Produkte].Levels(1).AllMembers}), Measures.[Absatz] > 10000)
Die Anweisung „Crossjoin“ liefert das Kreuzprodukt der zu verschachtelnden Dimensionen, mit „Filter“ geben wir das Kriterium an, das die Tupel erfüllen sollen – hier etwa eine Absatzmenge größer als 10.000. Eine Sortierung lässt sich zum Beispiel mit der „Order“-Funktion von MDX ergänzen. Die im „Crossjoin“ angegebenen Dimensionen sollten in der gleichen Reihenfolge verwendet werden, wie sie in der Berichts-/Cockpitdefinition eingestellt sind und wie sie im Bericht angezeigt werden.
In diesen Schritten erhalten wir den auf Tupelebene gefilterten Bericht. Er enthält jetzt keinen Wert unter 10.000 mehr.
Nicht nötig ist MDX, wenn wir lediglich leere Zeilen/Spalten oder leere und 0-Zeilen/Spalten ausblenden möchten (Kontextmenü, Menü Ich möchte, Registerkarte Optionen in der Achsendefinition). In diesem Spezialfall berücksichtigt DeltaMaster auch Tupel und unterdrückt alle Zeilen bzw. Spalten, die in keiner der beteiligten Dimensionen einen Wert aufweisen (oder nur 0 enthalten).
Elemente unterschiedlicher Dimensionen individuell kombinieren – der Tupeleditor
In den DeltaMaster clicks! 01/2009 haben wir den Tupeleditor als ein Werkzeug vorgestellt, mit dem sich bei verschachtelten Achsen sehr flexibel und bequem individuelle Kombinationen von Dimensionselementen mit Elementen anderer Dimensionen oder mit Analysewerten bilden lassen, ohne MDX-Programmierung und ohne Flexreports. Unser Paradebeispiel: der sogenannte VIP-Bericht, der Vorjahr, Ist und Plan nebeneinanderstellt. In mehrdimensionalen OLAP-Modellen sind an solchen Betrachtungen meist zwei Dimensionen beteiligt, eine für Wertarten (Ist, Plan; auch „Szenario“ oder ähnlich genannt) und eine für Zeitarten (Aktuell, Vorjahr; auch „Darstellung“, „Time Utility“ oder ähnlich genannt).
Würden wir diese Elemente in einer Pivottabelle „ausmultiplizieren“, erhielten wir einen Bericht mit vier Feldern. Eines davon ist jedoch regelmäßig uninteressant: der Plan des Vorjahres. Aktuelle Planzahlen: ja, wollen wir sehen; aktuelle Istzahlen: sowieso; frühere Istzahlen: auch nützlich; aber der Plan aus dem Vorjahr – den zieht man meist allenfalls dann zu Rate, wenn es darum geht, die Planungsgenauigkeit zu beurteilen. Wir benötigen also kein vollständiges Kreuzprodukt der Dimensionen „Wertarten“ und „Zeitarten“, sondern eine individuelle Kombination.
Die Aufgabe ist mit dem Tupeleditor schnell erledigt: Kombinationen von Elementen unterschiedlicher Dimensionen oder auch mit Analysewerten definieren Sie damit in einer Vorschau in der Achsendefinition (siehe DeltaMaster clicks! 01/2009).
Pivotnavigation: partiell verschachtelte Achsen
Einem Spezialfall von verschachtelten Achsen begegnen wir in der Pivotnavigation. Dieses Werkzeug steht in den Stufen Analyzer und Miner zur Verfügung. Es dient dazu, schrittweise weitere Dimensionen in die Pivottabelle einzufügen – aber nicht durch „Ausmultiplizieren“ mit allen bereits vorhandenen Merkmalen, sondern gezielt für ein ausgewähltes Element.
Das nebenstehende Beispiel zeigt die Auswirkungen auf das Berichtsdesign. Obwohl wir nun immerhin vier Dimensionen in der Pivottabelle zeigen, bleibt der Bericht angenehm kompakt – weil er nicht jedes Dimensionselement mit allen anderen kombiniert, sondern zusätzliche Dimensionen nur für die Elemente einführt, die uns unter einer gegebenen Fragestellung besonders interessieren. So wird beispielsweise nur die wichtigste Kundenregion, der Süden, weiter nach Vertretergruppen differenziert. Von diesen wiederum verfolgen wir nur die erfolgreichere Vertretergruppe 1 und gliedern deren Vertriebserfolge weiter auf nach den Stoffgruppen. Für die wichtigste Stoffgruppe, Classic, wiederum möchten wir wissen, welche Produkte dazu gehören.
Der besondere Clou an der Pivotnavigation ist, dass DeltaMaster mithilfe seiner Data-Mining-Algorithmen diesen Pfad vollautomatisch für uns entwickeln kann. Das führt besonders schnell zu den Ursachen, gerade dann, wenn es um Abweichungsanalysen und Ähnliches geht.
Weitere Informationen zur Pivotnavigation finden Sie in den DeltaMaster clicks! 10/2007.