von Aristoteles, dem antiken Philosophen, haben wir gelernt: Manchmal ist das Ganze mehr als die Summe seiner Teile. Gegen Ende des 19. Jahrhunderts bewies der Mathematiker Giuseppe Peano: Das Ganze ist doch die Summe seiner Teile. Zwei Wissenschaften, zwei verschiedene Sichtweisen. Und von beiden finden wir etwas im Business Intelligence wieder: In OLAP-Anwendungen haben wir es mit vielen Summen und noch mehr Teilen zu tun. Auf das Ganze wirken Sichten, Filter, Sortierungen, Einschränkungen, in vielen Dimensionen und auf unterschiedlichen Ebenen. Und plötzlich ist es gar nicht mehr so klar, was Teil ist und was Summe und welche Teile sich zu welcher Summe ergänzen. Genau ausrechnen müssen wir es trotzdem. DeltaMaster lässt Sie auf den Summen aus der Datenbank nicht sitzen. Auf vielfältige Art und Weise fügen Sie spontan zusammen, was zusammengehört. Manchmal ist Datenanalyse mehr als Daten und Analyse. DeltaMaster.
Herzliche Grüße
Ihr Team von
Bissantz & Company
In der Managementinformation geht es fast immer um verdichtete Daten: Im ersten Schritt interessieren wir uns nicht für einzelne Vorgänge, Produkte, Kunden, Lieferungen, Transporte, Aufträge, sondern wir wollen sie verdichtet, aggregiert, in Summe betrachten. Zwar möchten wir gelegentlich auch auf einzelne Datensätze zugreifen, das aber in der Regel erst dann, wenn wir aus der Verdichtung heraus einen bedeutenden Ausschnitt erkannt haben. (Dann hilft zum Beispiel der SQL-Durchgriff von DeltaMaster weiter, siehe DeltaMaster clicks! 07/2006.) Es gibt viele Möglichkeiten, Summen in unseren analytischen Anwendungen verfügbar zu machen und mit ihnen zu arbeiten. Einige davon möchten wir in diesen DeltaMaster clicks! vorstellen und diskutieren.
Summen in der OLAP-Datenbank
Auf das Aggregieren von Daten sind OLAP-Datenbanken spezialisiert. Summen (oder allgemeiner: Aggregationen), die wir häufig benötigen, sind hier bereits angelegt und oft im Voraus berechnet, sodass die Datenbank sehr schnell Ergebnisse liefern kann. Solche Summen kennen Sie etwa aus den Pivottabellen von DeltaMaster. Die „Knoten“ in der Hierarchie dienen nicht nur dazu, die betreffenden Objekte (Kunden, Produkte usw.) in eine Ordnung zu bringen, sondern sie tragen selbst einen Wert: die Aggregation der ihnen untergeordneten Elemente. Deshalb nennt man solche Elemente „aggregierte Elemente“ oder auch „Summenelemente“. In der Abbildung sind das alle mit und gekennzeichneten Elemente. Je nach Datenbank sind verschiedene Aggregationsfunktionen möglich, zum Beispiel Anzahl, Minimum, Maximum oder Mittelwert; die weitaus häufigste dürfte die Summe sein.
Summen aus der Datenbank sind nicht nur schnell, sondern auch besonders flexibel: Sie erlauben den Drill-down in die darunterliegenden Ebenen und lassen sich sehr einfach in den Analyseverfahren von DeltaMaster näher untersuchen – ein „Drag & Drop“ des Werts in das Fenster Analyse genügt.
Zeilen-, Spalten- und Tabellensummen in der Pivottabelle
Natürlich können nicht alle denkbaren Additionsvorgänge in der OLAP-Datenbank als eigenes Element abgebildet werden. Wenn beispielsweise nicht alle Produkte im Bericht erscheinen sollen, sondern nur die wichtigsten fünf („Top 5“), müssen wir deren Summe neu berechnen. Um einem beliebten Missverständnis vorzubeugen: Diese entspricht nicht zwangsläufig dem Wert des Elements „Alle Produkte“ oder anderer aggregierter Elemente. Deren Werte sind in der Datenbank so definiert, dass sie sämtliche untergeordneten Elemente zusammenfassen – und nicht nur die Teilmenge der Elemente, die nach Filtern und anderen Einschränkungen im Bericht verblieben sind. Der Wert eines aggregierten Elements ist also keine Summenfunktion für die darunter dargestellten Werte.
Deshalb ändert sich das Aggregat auch nicht, wenn wir die Liste beispielsweise zum „Top 10“ erweitern (Achsendefinition, Registerkarte Ranking) – es bezieht sich eben auf dasselbe Element „Alle Produkte“ und nicht auf die Anzeige.
Wir brauchen also ein Werkzeug, um nur die angezeigten Werte zu summieren. Das ist schnell zur Stelle: Im Kontextmenü der Pivottabelle lassen sich verschiedene Zeilen-, Spalten- und Tabellenaggregationen berechnen und in die Tabelle einblenden. Die Tabellenaggregation wirkt so, als hätten Sie die gewählten Funktionen sowohl zur Zeilen- als auch zur Spaltenaggregation ausgewählt. Sie erspart also ein paar Mausklicks. Es können mehrere Funktionen gleichzeitig gewählt werden, zum Beispiel die Summe und der Mittelwert.
Die Zeilen-, Spalten- und Tabellenaggregationen rechnen mit den angezeigten Werten. Damit erreichen wir unser Ziel, die im aktuellen Bericht angezeigten Werte zu addieren (anstatt eine Summe aus dem Datenmodell abzurufen). Wohlgemerkt: alle angezeigten Werte. Diese Voreinstellung kann bisweilen zu einem unerwarteten Ergebnis führen, wenn die Pivottabelle sowohl aggregierte als auch die ihnen untergeordneten Elemente enthält, wie in der Abbildung. Die Summe ist dreimal so groß wie erwartet, weil in der Addition nicht nur die Produktgruppen erfasst sind, sondern auch die „Zwischensummen“ für Luxusmodelle, Sondermodelle und Standardmodelle und die „Gesamtsumme“ über alle Produkte. Die Rechnung stimmt – aber es war nicht ganz das, was wir wollten.
Um auf die gewünschte Summe zu kommen, benötigt DeltaMaster einen Hinweis, auf welcher Ebene die Aggregationen zu berechnen sind. Die Ebene wählen Sie ab DeltaMaster 5.4.2 in der Achsendefinition aus, auf der Registerkarte Optionen. Der Eintrag (alle) bewirkt, dass alle angezeigten Elemente in die Berechnung eingehen; die anderen Einträge sorgen dafür, dass nur die angezeigten Elemente dieser Ebene herangezogen werden.
Mit dieser Einstellung klappt das Addieren wie erwartet.
Auch in unserem ersten Beispiel, den „Top 5“, gewinnt der Bericht durch die Spaltenaggregation mit korrekt gesetztem Ebenenbezug. Jetzt erkennen wir unten die Summe des Umsatzes mit den angegebenen fünf Produkten und oben den Umsatz in der gesamten Sicht.
Die über das Kontextmenü eingeblendeten Summen (Aggregationen) haben den Vorteil, dass sie sich sehr einfach hinzufügen lassen – direkt im Bericht und sogar in der Bildschirmpräsentation (Menü Ansicht, Taste F5). Sie ergänzen jedoch stets nur den aktuellen Bericht bzw. das aktuelle Cockpit und verändern nicht das Analysemodell von DeltaMaster. So können sie beispielsweise nicht per „Drag & Drop“ in ein Analyseverfahren gezogen und nicht mit Sparklines versehen werden.
Summen als benutzerdefinierte Analysewerte
Die Analysewerte sind eine weitere Möglichkeit, über das Datenbankmodell hinaus Summen anzulegen, wenn man sie braucht. Dass man mit MDX eine Addition formulieren und als benutzerdefinierten Analysewert anbieten kann, dürfte hinlänglich bekannt sein. Daneben verfügen auch Elementeigenschaftswerte und univariate statistische Analysewerte über eine Summenbildung. Aber der Reihe nach.
Ein Beispiel für einen benutzerdefinierten Analysewert: In unserer Referenzanwendung „Chair“ möchten wir einen neuen Analysewert anlegen (Menü Modell; alternativ im Analysewert-Browser: Menü Ich möchte). Dieser soll Materialkosten und Lohnkosten zu Fertigungskosten zusammenfassen. Im Assistenten wählen wir zunächst die Basiselemente aus – Material- und Lohnkosten. Diesen weist DeltaMaster automatisch Kürzel zu, „#1“und „#2“, die wir im Eingabefeld für den MDX-Ausdruck verwenden können. Die Definition der Fertigungskosten lautet damit schlicht „#1+#2“.
In diesem Fall ist die Summe nicht nur eine Rechenoperation, sondern sie spiegelt auch eine hierarchische Beziehung wider, die sich mit DeltaMaster als solche darstellen lässt. Dazu ziehen Sie im Analysewert-Browser die Material- und die Lohnkosten bei gedrückter Alt-Taste per „Drag & Drop“ auf die neu angelegten Fertigungskosten.
Die Beziehung, die wir unserem neuen Summenwert mitgegeben haben, wird in der Pivottabelle erkannt und visualisiert. Weitere Anregungen und Hinweise zu hierarchischen Beziehungen von Analysewerten finden Sie in den DeltaMaster clicks! 02/2009.
Auch in Elementeigenschaftswerten steht die Summe als Aggregationsfunktion zur Verfügung. Dieser Analysewerttyp dient dazu, die als numerisches Attribut gespeicherten Merkmale von Elementen in Form eines Analysewerts zugänglich zu machen. Beispielsweise könnte man als Elementeigenschaft von Postleitzahlgebieten hinterlegen, wie viele Einwohner in diesem Gebiet leben. Aus der Kombination von solchen externen Daten mit den internen entstehen oft sehr reizvolle Analysen; in unserem Beispiel könnte man über die Einwohnerzahl auf das Marktvolumen schließen und dieses zu den Vertriebszahlen ins Verhältnis setzen.
Die Summenbildung kommt ins Spiel, wenn wir die Werte der Elementeigenschaft für die übergeordneten Ebenen aggregieren. Durch diese Funktion müssen wir, um im Beispiel zu bleiben, die Einwohnerzahl nicht für unterschiedliche Ebenen vorhalten. Vielmehr kann DeltaMaster aus den Angaben für die PLZ-Gebiete selbsttätig errechnen, welche Werte sich für die höheren Ebenen (Gebiet, Region, Land, Top) ergeben.
Schließlich sind Summen auch eine Option bei (univariaten) statistischen Analysewerten. Diesen Analysewerttyp hatten wir ausführlich in den DeltaMaster clicks! 07/2009 vorgestellt. Eine Besonderheit ist hier, dass positive und negative Werte getrennt summiert werden können, um beispielsweise Kompensationseffekte zu durchleuchten.
Rollierende Summen in Zeitanalyseelementen
Ein sehr häufiger Fall von Summenbildung ist die Kumulation, zum Beispiel als „Year To Date“ (YTD). Diese legt man üblicherweise mithilfe von Zeitanalyseelementen an, entweder in einer eigenen Hilfsdimension für die Kumulation oder in einer allgemeinen Dimension für zeitliche Vergleichsarten („Time Utility“). Das hat den Vorteil, dass die verschiedenen Periodenansichten mit beliebigen Analysewerten kombiniert werden können. Von einer Kumulation spricht man meist dann, wenn der Zeitraum, aus dem die Werte addiert werden, einen bestimmten Startzeitpunkt und eine variable Länge hat: Eine monatsweise Kumulation „per März 2009“ umfasst die drei Monate Januar bis März 2009, „per November 2009“ die elf Monate Januar bis November 2009.
Eine andere Wirkung haben gleitende Aggregationen. Sie berücksichtigen die jeweils letzten „x“ Zeitabschnitte. Im Editor für Zeitanalyseelemente (Dimensionsbrowser, Menü Ich möchte, Zeitanalyseelement hinzufügen) legen Sie fest, auf welcher Ebene der Zeitdimension die Aggregation erfolgen soll (zum Beispiel: Monat), wie viele Zeitabschnitte zu berücksichtigen sind (zum Beispiel: 3 Monate) und welche Aggregationsfunktion zu verwenden ist (zum Beispiel: die Summe).
In einer Pivottabelle können Sparklines auch für solche Berechnungen gezeichnet werden. Rollierende Summen führen zu sehr interessanten Mustern, weil Ausreißer geglättet werden. Im „Tooltipp“ der Säulen wird angezeigt, auf welchen Zeitraum sich die Summe, für die die Säule steht, bezieht.
Die gleitenden Aggregationen sind stets in Bezug auf eine bestimmte Ebene der Zeitdimension definiert. Achten Sie darauf, dass in der Sicht ein Element der passenden Ebene gewählt ist. Detaillierte Informationen über Zeitanalyseelemente finden Sie in den DeltaMaster clicks! 08/2007.
Summen als berechnete Elemente
Zeitanalyseelemente sind ein Spezialfall von berechneten Elementen. In ihrer allgemeinen Form, mit benutzerdefinierten MDX-Ausdrücken, lassen sich die unterschiedlichsten Rechenvorschriften anlegen. Beispielweise könnten wir in der Kundendimension ein berechnetes Element hinzufügen (Dimensionsbrowser, Menü Ich möchte), das eine Summe für alle Basiselemente dieser Dimension ermittelt – außer einem bestimmten. Das mag etwa dann hilfreich sein, wenn man regelmäßig Summen über verschiedene Organisationseinheiten oder Tochtergesellschaften benötigt, die eigene Einheit in der Summe aber nicht vorkommen soll.
Um diese Anforderung zu erfüllen, benötigen wir ein wenig MDX.
Der folgende Ausdruck berechnet die Summe für alle Kunden außer „Möbel Gut“:
Sum(Except([Kunden].[Kunde].Members, [Kunden].[Europa].[Deutschland].[Nord].[Nord 1].[21].[Möbel Gut]))
Der äußere Ausdruck „Sum()“ bewirkt die Addition. Er verwendet dazu die Werte für alle Elemente, die in der Klammer angegeben sind. Dazu haben wir eine weitere MDX-Funktion benutzt: „Except()“. Sie liefert alle Elemente auf der Ebene der Einzelkunden zurück („[Kunden].[Kunde].Members“), mit Ausnahme des hinter dem Komma angegebenen Kunden („[Kunden].[Europa].[Deutschland].[Nord].[Nord 1].[21].[Möbel Gut]“).
Dass wir diesen Ausschluss als berechnetes Element definiert haben (und nicht etwa als Filterregel in einer Pivottabelle), hat den Vorteil, dass der Ausschluss einfach wiederverwendet werden kann – er steht in sämtlichen Analyseverfahren und in Kombination mit allen Analysewerten zur Verfügung.
Summen im Flexreport
Gleich mehrere Verfahren, Summen zu bilden, beherrscht der Flexreport. Der einfachste Fall: Wie in einer Tabellenkalkulation lassen sich mit „+“ die Werte aus mehreren Zellen zusammenzählen. Dazu stellen Sie in den Zelleigenschaften (Kontextmenü, Taste F4) als Inhaltstyp Formel ein. Auf der entsprechenden Registerkarte geben Sie dann die gewünschte Berechnung ein. Die Zellen referenzieren Sie über Zellkoordinaten in der üblichen „RC-Notation“.
Sind mehrere Zellen aus einem bestimmten Bereich gefragt, benutzen Sie die Funktion „=Sum(…)“. Der Zellbereich wird darin über die Koordinaten von zwei „Eckpunkten“ angegeben, zum Beispiel so: „=Sum(R2C4:R4C16)“.
Woher die Werte im Flexreport stammen, spielt für die Berechnung keine Rolle. So könnte man auch etwa aus Microsoft Excel eingelesene Werte mit Zahlen aus der DeltaMaster-Anwendung verbinden. Das Einlesen von Werten aus Excel ist in den DeltaMaster deltas! 5.3.8, Punkt 11, beschrieben, Verfeinerungen des Verfahrens in den deltas! 5.4.0, Punkt 9, sowie 5.4.1, Punkt 8. In vielen Anwendungen beziehen Flexreports ihre Werte per Referenz aus einer Pivottabelle (siehe DeltaMaster clicks! 08/2008). Auch die dort als Zeilen-, Spalten- oder Tabellenaggregation eingeblendeten Summen – siehe oben – können in Flexreports übernommen werden. Dazu bieten die Zelleigenschaften auf der Registerkarte Referenz eine eigene Auswahlliste an. Damit können Sie auf die Summe auch dann sicher zugreifen, wenn sich die Länge oder Breite der zugrunde liegenden Pivottabelle einmal ändern sollte.