Liebe Datenanalysten,
so nichtig und doch so wichtig war eine Erfindung, die den Babyloniern zugeschrieben wird: Sie schufen die 0. Das Nichts zu einem Etwas zu machen, mit dem man arbeiten kann, ihm einen Namen und ein Gesicht zu geben, war eine fundamentale Voraussetzung für Fortschritt. Unser Zahlensystem, die Dezimalzahlen, und generell jedes Stellenwertsystem würde ohne die 0 nicht funktionieren – mit Strichlisten müssten wir rechnen oder mit römischen Ziffern, und das ist sehr schwierig. In der Informatik, das besagt ein Klischee, braucht man fast nichts außer der 0, nur die 1 noch. Die 1 ist dort wie überall einzigartig, das Nichts lässt sich aber durchaus differenzieren: Ein leerer Wert ist etwas anderes als ein Wert, der die Leere in der Kasse bemisst. Über diese und andere Spielarten des Nichts ließe sich trefflich philosophieren. Das überlassen wir aber den Philosophen; uns interessiert, wie sich Nullwerte, die 0 und Nullelemente im Reporting und in Analysen niederschlagen. Deshalb unternehmen wir in den vorliegenden clicks! einen Streifzug durch DeltaMaster und zeigen, wie gut DeltaMaster nicht nur mit Zahlen umgehen kann, sondern auch mit deren Abwesenheit.
Herzliche Grüße
Ihr Team von Bissantz & Company
Im Business Intelligence dreht sich bekanntlich vieles um Zahlen und doch ist es an der Tagesordnung, dass Zahlen fehlen: Sie existieren nicht, zum Beispiel weil ein Kunde nicht schon immer Kunde war und deshalb Umsatzdaten für frühere Jahre nicht vorliegen können; wir kennen sie nicht, etwa weil sie nicht gemessen oder nicht sauber zugeordnet wurden; oder wir kennen sie zwar, aber sie sind 0, weil nichts passiert ist, was sich in Zahlen niederschlagen könnte. Diese und andere Varianten von Nichts wollen wir in diesen clicks! systematisieren und schlaglichtartig beleuchten, wie DeltaMaster beim Umgang damit behilflich ist. Insbesondere unterscheiden wir diese drei Fälle:
- Es existiert kein Wert oder er ist unbekannt oder unbestimmt. In der Datenbanktheorie nennt man solche leeren Werte „Null“, meist englisch ausgesprochen, damit man auch im Gespräch erkennen kann, dass es nicht um die Zahl 0 geht. Wenn im Folgenden von Null oder Nullwert die Rede ist, meinen wir damit immer ebendiese fehlenden Werte.
- Es existiert ein Wert und er hat den Betrag 0. Wir schreiben in diesen clicks! immer die Ziffer 0, wenn wir die Zahl 0 meinen, um den Unterschied von der Datenbank-Null, dem unbestimmten, fehlenden Wert, deutlich zu machen.
- Eine gewisse Sonderstellung nimmt der dritte Fall ein: In den Dimensionen und Hierarchien von OLAP-Datenmodellen gibt es oft ein oder mehrere Elemente, die für nicht näher bestimmte oder nicht zugeordnete Beträge stehen. Solche Elemente gehen meist auf fehlende beschreibende Merkmale in den operativen Daten oder auf missglückte Zuordnungen zurück. Wenn beispielsweise ein Auftrag ohne Kundennummer erfasst wurde, ein Branchenkennzeichen fehlt, keine Leistungsart oder Kostenstelle angegeben wurde, können die jeweiligen Beträge keinem konkreten Element zugeordnet werden. Dennoch stehen manchmal auch hinter solchen lückenhaft beschriebenen Vorgängen Mengen, Umsätze, Kosten und andere Werte, die zu berücksichtigen sind. Sie werden zusammengefasst in Dimensionselementen wie „nicht zugeordnet“, „not assigned“, „not available“, „n. a.“ oder „missing“. Ist die Datenbasis gut gepflegt, sollten diese Restposten leer oder 0 sein oder nur ganz geringe Werte haben; dennoch sind die Elemente als eine Art Auffangbecken vorhanden. Diese Dimensionselemente nennen wir Nullelemente.
Wohlgemerkt: Alle drei Fälle sind in Business-Intelligence-Systemen normal und sie bereiten keine Schwierigkeiten. In manchen Fällen haben wir aber Alternativen, wie wir mit dem Nichts umgehen wollen.
Pivottabellen von Wertlosem befreien
Den ersten Fall – Nullwerte, weil es keine Zahlen gibt oder wir sie nicht kennen – kann man gut am Beispiel des Vertriebscontrolling veranschaulichen: Es kauft eben nicht jeder Kunde an jedem Tag alle Produkte in allen Ausführungen. Dementsprechend hat man in einer Vertriebsstatistik immer wieder weiße Flecken. Manchmal interessieren die besonders; für ein Standardberichtswesen wird man sich aber auf die Bereiche konzentrieren, in denen etwas passiert ist. Deshalb lassen sich in Pivottabellen die leeren Zeilen und/oder Spalten ausblenden. Das geht über das Kontextmenü oder das Menü Ich möchte in sämtlichen Benutzerstufen, vom Offline-Reader bis zum Miner.
Auch im Präsentationsmodus lässt sich diese Funktion nutzen, um Ordnung auf dem Bildschirm bzw. der Leinwand zu schaffen (Taste F5; Kontextmenü oder den rechten Bildschirmrand mit der Maus „berühren“).
Bei der Leerzellenunterdrückung unterscheidet DeltaMaster zwischen Null und 0: Als leer gilt eine Zeile/Spalte, wenn sie keine Werte enthält (also immer nur Null); kommt eine 0 vor, würde die Zeile/Spalte nicht ausgeblendet. Alternativ lassen sich die Zeilen/Spalten ausblenden, die Null oder auch 0 enthalten. Damit werden „wertlose“ Zeilen auch dann unterdrückt, wenn die zugrunde liegende Datenquelle nicht zwischen Null und 0 unterscheidet – manche Systeme geben bei fehlenden Werten nicht Null, sondern 0 zurück.
Dieselben Optionen finden sich auch in der Achsendefinition, sie gelten dort jedoch nicht nur für die aktuelle Ansicht des Berichts, sondern für alle Hierarchien der Achse, sodass auch nach dem Wechsel in eine parallele Hierarchie die leeren Zeilen wie gewünscht angezeigt oder verborgen werden.
Eine weitere Möglichkeit, Pivottabellen von Elementen mit Null- oder 0-Werten zu befreien, sind die Filter in der Achsendefinition. Sie legen anhand von numerischen Kriterien oder Elementeigenschaften fest, was im Bericht angezeigt werden soll. Unter den Operatoren ist auch eine Prüfung auf „nicht Null“ vorgesehen, für die 0 würde man den Operator „<>“ verwenden und als absoluten Wert 0 eintragen.
Null schreiben
Wie ein Nullwert dargestellt werden soll, ist in den Optionen (Menü Extras) auf der Registerkarte Darstellung geregelt. Die meisten Anwender zeigen einen fehlenden Wert einfach als leere Zelle und lassen das Eingabefeld in den Optionen leer. Man könnte aber auch ein Ersatzzeichen oder ?wort hinterlegen, um auf das Fehlen von Werten explizit hinzuweisen. Die Einstellungen gelten für die aktuelle Analysesitzung (.das-Datei).
Die Darstellung der 0, die ja ein Wert ist, richtet sich nach den üblichen Formatierungsoptionen für Analysewerte und berechnete Elemente. Für den wohl eher exotischen Fall, dass Sie die 0 in einer individuellen Zahlenformatierung ausgeben möchten: In den DeltaMaster clicks! 02/2008 ist beschrieben, wie sich das mit dem „Conditional Formatting“ in .NET-Formatierungszeichenfolgen realisieren lässt, einer Technik, mit der man für positive Zahlen, negative Zahlen und für die 0 jeweils unterschiedliche Zahlenformate festlegen kann.
Null, 0 und Filter im Hyperbrowser
Mit einer ähnlichen Option wie in der Pivottabelle wird auch der Hyperbrowser übersichtlicher: Sobald eine Kennzahl zur Einfärbung des Baums benutzt wird, können Sie über das Menü Ich möchte die leeren, 0- und gefilterten Knoten ausblenden. Neben Null- und 0-Werten werden dadurch auch numerische Filter berücksichtigt, die Sie über den Link in der linken oberen Ecke des Fensters festlegen können.
Nullwerte in der Bewegungsanalyse
In der Bewegungsanalyse werden Nullwerte für eine inhaltliche Bewertung des Ergebnisses genutzt. Das Analyseverfahren zeigt ABC-Analysen in einer zeitlichen Abfolge, damit man Aufsteiger, Absteiger erkennen kann – und die Wackelkandidaten. Das sind Objekte, die im dargestellten Zeitraum sowohl aufgestiegen als auch abgestiegen sind oder die mindestens einmal einen Nullwert aufweisen. Ein schönes Beispiel, dass sich das Nichts manchmal sogar für eine automatisierte Analyse und Interpretation nutzen lässt.
Null zählen – die Anzahl in der Statistik
Wenn es um die Anzahl von Elementen geht, die man wiederum zur Berechnung von Durchschnitten und Ähnlichem heranziehen mag, stellt sich die Frage: Sollen die Objekte mit unbekanntem oder fehlendem Wert mitgezählt werden oder nicht? Der Assistent zum Anlegen von univariaten statistischen Analysewerten (siehe DeltaMaster clicks! 07/2009) lässt Ihnen die Wahl, beides geht. Mit Nullwerten ist, wie eingangs beschrieben, die Datenbank-Null für fehlende Werte gemeint – ein Element mit einem Wert von 0 zählen beide Funktionen mit. Der ebenfalls hier angebotene Mittelwert ignoriert Null, beachtet aber 0.
Eine Reihe von statistischen Größen errechnet und zeigt auch die Verteilungsanalyse. Wieder finden wir zwei verschiedene Zählungen, einmal die Objekte (gesamt), inklusive der Nullwerte, und einmal nur die Objekte mit Wert, wiederum einschließlich der 0. Für den Mittelwert gilt das gleiche wie oben bei den statistischen Analysewerten: 0 zählt, Null nicht.
Auch in den Zeitanalyseelementen, ausführlich beschrieben in den DeltaMaster clicks! 08/2007, wird unterschieden: Eine gleitende Aggregation zählt Null nicht mit, 0 aber schon. Der Durchschnitt von drei Monatswerten {100, Null, 20} ergibt also 120/2 = 60, der Durchschnitt von {100, 0, 20} 120/3 = 40.
Die Anzahl und der Mittelwert, die als Zeilen-, Spalten- und Tabellenaggregation in die Pivottabelle eingeblendet werden können, errechnen sich jedoch stets ohne Nullwerte. Diese Angaben dienen dazu, die in der Tabelle ausgewiesenen Werte näher zu beschreiben und begreifbar zu machen; da würde es eher irritieren, Phantomzahlen einzubeziehen, die in der Tabelle nicht verzeichnet sind.
Null in Zeitreihen
In der Zeitreihenanalyse und ihrer Miniaturausgabe, den Sparklines, wirken Nullwerte manchmal störend: Optisch können sich „Eiszapfen“ bilden, wenn etwa an Wochenenden und Feiertagen keine Werte erfasst werden. Deshalb bietet die Zeitreihenanalyse im Kontextmenü und im Menü Ich möchte an, die Nullwerte abzuschneiden, auszublenden oder zu interpolieren. Das Abschneiden bewirkt eine Anpassung des dargestellten Zeitraums: Der Anfang des Zeitraums wird so weit nach rechts verschoben, das Ende so weit nach links, dass die Reihe nicht mehr mit einem Nullwert beginnt und endet. Beim Ausblenden und Interpolieren hingegen bleiben Start- und Endzeitpunkt unverändert. Um Lücken innerhalb der Zeitreihe zu überbrücken, kann DeltaMaster die Nullwerte linear interpolieren. Ob diese am Start und Ende eingeblendet oder ausgeblendet werden sollen, bestimmen Sie über die entsprechende Option.
Dieselben Einblend-, Ausblend- und Interpolationsoptionen sind auch für Sparklines verfügbar (Tabelleneigenschaften). Lediglich das Ausblenden ist hier nicht nötig – Beginn bzw. Länge der Sparkline richten sich nach der Sicht und den Einstellungen in den Tabelleneigenschaften.
Null klassifizieren
Vier Analyseverfahren von DeltaMaster sind in der Lage, ihre Ergebnisse als virtuelle Hierarchie wiederverwendbar zu machen: Rangfolge/PowerSearch, die ABC-Analyse, die Portfolioanalyse und die Verteilungsanalyse. Alle vier bieten in den Einstellungen eine Option, wie mit Nullelementen in der Klassifikation zu verfahren ist: ob sie in einer der regulären Klassen erscheinen, bei der ABC-Analyse zum Beispiel in der C-Klasse, oder ob für sie eine eigene, zusätzliche Klasse gebildet werden soll. Das ist vor allem dann von Bedeutung, wenn die virtuelle Hierarchie mit einer anderen Kennzahl analysiert werden soll: Was für den einen Messwert Null war, kann für einen anderen Messwert durchaus 0 oder ein anderer Betrag sein.
0 ist ein Wert und nicht Null
Beruhigend: Für uns im Business Intelligence ist die Zahl 0 ein Wert, und ein weitgehend normaler dazu, für den wir nicht viele Sonderregelungen oder Optionen benötigen.
Bei einer Division allerdings können 0 oder Null hinderlich sein: Durch sie zu teilen, ist bekanntlich verboten bzw. führt zu einem nicht definierten Ergebnis, „#DIV/0!“ nennt Excel das. Als DeltaMaster-Anwender müssen wir uns um diesen Sonderfall keine Gedanken machen, jedenfalls dann nicht, wenn wir Verhältniskennzahlen wie Anteile, Quoten, Durchschnitte oder Prozentzahlen mit dem Assistenten für neue Analysewerte anlegen (Menü Modell) – und nicht als benutzerdefinierten Analysewert: Bei Quotientenwerten stellt DeltaMaster automatisch sicher, dass keine undefinierte Division versucht wird; stattdessen liefert der Analysewert Null zurück, sollte der Divisor (der Teiler, der Nenner) einmal 0 oder Null sein. Eine so angelegte Kennzahl ist also sicherer als ein MDX-Ausdruck wie „#1/#2“. Falls Sie einen solchen dennoch benötigen, bauen Sie die Prüfung in den Ausdruck ein, etwa so: „IIf(#2 = 0, Null, #1/#2)“.
Dividiert wird auch bei einigen Analysewerten aus der DB-Flussrechnung mit hierarchischem Struktureffekt, und auch dabei kümmert sich DeltaMaster um eine mögliche Division durch 0: Die Einzelkennzahl wird in solchen Fällen nicht berechnet, die vorhandenen Werte fließen allerdings in das Rechenschema ein, um den Berechnungsfehler möglichst gering zu halten.
In Sparklines, Zeitreihen und vielen anderen Darstellungen spielt die 0 freilich noch eine weitere tragende Rolle, nämlich wenn es um die Skalierung geht: Darf man Achsen abschneiden? Das ist aber eine andere Geschichte, die wir hier nicht vertiefen wollen; Regeln dafür hat Bella, unsere Visualisierungsexpertin, in ihrem Buch „Bella berät – 75 Regeln für bessere Visualisierung“ veröffentlicht (www.bella-buch.de).
Nullelemente von der Analyse ausschließen
Wieder etwas anderes als Null und 0 sind Nullelemente, wie eingangs erläutert. Wir verstehen darunter Elemente, die keine konkrete Entsprechung in der betrieblichen Realität haben: Sammelposten für Beträge, die wir nirgends sonst unterbringen können. In einem gut gepflegten System ist alles zugeordnet, sodass hinter solchen Elementen nur Null, 0 oder allenfalls unerhebliche Werte stehen. Dennoch sind solche Sammelposten als Dimensionselemente oft vorhanden, manchmal sogar in allen Dimensionen des Modells. In Berichten kann man in vielen Situationen auf solche Nullelemente verzichten, dadurch Platz sparen und den Bericht übersichtlicher machen.
In den Optionen (Menü Extras) ist den Nullelementen eine eigene Registerkarte gewidmet. Hier entscheiden Sie, ob DeltaMaster die Nullelemente von der Analyse ausschließen soll. Welche Elemente Nullelemente sind, legen Sie im zweiten Schritt fest, nachdem Sie die Option aktiviert haben.
- Um einzelne Elemente als Nullelemente zu behandeln, aktivieren Sie im Dimensionsbrowser die entsprechende Option im Kontextmenü des Elements. Diese wird nur angezeigt, wenn die Option zum Ausschließen der Nullelemente aktiviert ist. Nullelemente werden im Dimensionsbrowser in grauer Schrift dargestellt.
- Je nach Datenbank und Modellierung können Nullelemente in großer Menge auftauchen, manchmal enthält jede Hierarchie oder sogar jede Gruppe von Elementen einen solchen Restposten. Dann ist es praktisch, alle Nullelemente auf einmal auszuklammern, anstatt per Dimensionsbrowser jedes einzeln aufzuspüren und zu markieren. Auf der Registerkarte Nullelemente in den Optionen (Menü Extras) ist für diesen Zweck ein Eingabefeld vorgesehen. Hier können Sie die Namen der betreffenden Elemente eingeben, zum Beispiel „missing“, „n. a.“ oder eine leere Zeichenkette, und zur Liste hinzufügen. Diese lässt sich zugleich als Voreinstellung für neue Analysemodelle verwenden: In Analysemodellen, die auf demselben Datenbanksystem aufsetzen, haben die Nullelemente meist dieselben Namen, auch anwendungsübergreifend, sodass man sich eine wiederholte Deklaration ersparen kann.
Das Ausschließen der so definierten Nullelemente wirkt wie eine zusätzliche, globale Einschränkung der Sicht. In Cockpits, Berichten und Analyseergebnissen werden die Nullelemente fortan nicht mehr berücksichtigt und weder in Berechnungen einbezogen noch überhaupt dargestellt. Eine Ausnahme können Pivottabellen sein: Hier wirkt sich das Ausschließen der Nullwerte nur auf die Achsen aus, die über eine Ebenenauswahl spezifiziert sind (Achsendefinition). Das liegt daran, dass der Ausschluss der Nullelemente über die Sicht implementiert ist. Die Elementauswahl sowie benutzerdefinierte MDX-Ausdrücke sind jedoch von der Sicht losgelöst (siehe DeltaMaster clicks! 04/2009). Deshalb würden Nullelemente mit diesen beiden Optionen angezeigt – da sie aber die anzuzeigenden Elemente explizit bestimmen, ist es ein Leichtes, ebenso explizit die Nullelemente in der Achsendefinition auszuschließen.
Wichtig für die Interpretation der Ergebnisse: Die Werte von aggregierten Elementen aus der Datenbank bleiben von alldem unberührt. Die Beträge von ausgeschlossenen Nullelementen sind also weiterhin in den Summen enthalten, die die Datenbank als Aggregat liefert. Bei den Summen, Mittelwerten usw., die DeltaMaster zum Beispiel als Zeilen-, Spalten- und Tabellenaggregation berechnet und in der Pivottabelle ausweist, werden sie jedoch wunschgemäß ignoriert. Zur Unterscheidung von aggregierten Werten aus der Datenbank und den Aggregationen, die DeltaMaster selbst bildet, sei auf die DeltaMaster clicks! 12/2009 verwiesen.
In der Praxis sollte dieser Unterschied nicht ins Gewicht fallen – wir blenden die Nullelemente ja gerade deshalb bzw. nur dann aus, weil bzw. wenn ihnen ohnehin keine oder nur unbedeutende Werte zugeordnet sind. Wäre das nicht so, sollte man von der Nullelementunterdrückung absehen: Hinter den Nullelementen stehen dann ja womöglich lücken- oder fehlerhafte Vorgänge, die man im Sinne der Datenqualität besonders aufmerksam untersuchen möchte, um Schwachstellen in der Datenversorgung aufzudecken oder Probleme in den operativen Systemen und Prozessen zu erkennen, aus denen die Daten stammen. Für solche Zwecke ist es hilfreich, dass man mit DeltaMaster schnell sieht, wenn beispielsweise nennenswerte Umsätze nicht zugeordnet sind. Das gilt auch für den Aufbau neuer Anwendungen: In einem iterativen Modellierungsprozess ist es wichtig, den erreichten Stand immer wieder zu analysieren und zu prüfen, ob „die Rechnung aufgeht“ oder wo nachzujustieren ist („Analytisches Modellieren“).