Berechnete Felder erlauben es, Felder zu vergleichen, zu aggregieren, Logik anzuwenden, Strings zu verketten, Datumsfelder zu konvertieren und eine Myriade anderer analytischer und mathematischer Funktionen mit Deinen Daten auszuführen, ohne etwas an der Datenbank ändern zu müssen. Berechnete Felder geben ein wiederverwendbares Drag-&-Drop-Feld in Deinem Datenfenster und der gecacheten Tabelle zurück. Du kannst sogar über Deine Berechnungen hinweg berechnen. Großartig!
Um auf diese Funktionalität noch einen drauf zu setzen, erlaubt Tableau nun zusätzliche Berechnungen auf Deinen Daten durchzuführen, nachdem Tableau die Query der Datenbank beendet hat. Tabellenberechnungen rechnen mit Daten in der Cache-Tabelle und erlauben Berechnungen der sichtbaren Ergebnisse.
Also, was bedeutet das?
Sobald meine Visualisierung aufgebaut ist, kann ich Tableau anweisen, buchstäblich diese Ergebnisse (Zahlen, Balken, Plots) anzuschauen und dann Berechnungen auf diesen sichtbaren Ergebnissen auszuführen. Noch wichtiger: anders als berechnete Felder, die es erlauben, zwei oder mehr separate Kennzahlen im Datenset zu vergleichen, erlauben es Tabellenberechnungen, einen einzelnen Wert mit sich selbst zu vergleichen.
Hier sind 5 Tableau Tabellenberechnungen, die helfen, das zu erklären:
LOOKUP()
LOOKUP() ist meine liebste Tabellenberechnung. Sie erlaubt es, gleichzeitig verschiedene Ergebnisse einer Visualisierung “anzusehen”. Mit den schnellen Tabellenberechnungen Differenz und Differenz in Prozent können wir uns anschauen, wie LOOKUP() benutzt wird und wie die Funktion funktioniert.
Differenz
Abbildung 1: Dekonstruierte Ansicht einer schnellen Tabellenberechnung für Differenz (Tabelle horizontal).
Bei der Tabellenberechnung Differenz möchten wir einen Wert mit sich selbst in einer vorigen (oder einfacher: einer anderen) Partition vergleichen. Beachte, wie der zweite Wert in der Berechnung von einer LOOKUP()-Funktion umschlossen wird, die auf den Wert der vorigen Partition “schaut” und diesen dann vom nächsten subtrahiert, etc. Die -1 deklariert, welche Partition mit der Basis unserer Berechnung verbunden ist. Ändere die -1 zu 1 oder -2 und schau Dir die Ergebnisse an.
Differenz in Prozent
Abbildung 2: Dekonstruierte Ansicht einer schnellen Tabellenberechnung für Differenz in Prozent (Tabelle horizontal).
Bei Differenz in Prozent wird die LOOKUP()-Funktion genauso genutzt wie bei Differenz. Der Unterschied liegt in dem extra Wert der Gleichung, der einen Nenner zum vorigen Wert hinzufügt. Die Logik ist jedoch dieselbe. Das -1-Argument weist Tableau an, die Werte der vorigen Partition “anzuschauen”.
Warum ich LOOKUP() in jeder Arbeitsmappe nutze:
LOOKUP() ist extrem hilfreich als Filter-Mechanik. Indem Du folgende Tabellenberechnung nutzt, kannst Du eine Dimension filtern, ohne irgendeine andere Tabellenkalkulation in Deinem Viz zu zerstören:
LOOKUP(MIN([Your_Dimension]), 0)
Die Tabellenberechnung “schau” auf jede Zeile und trägt den MIN-Wert ein. Sieht unsinnig aus, ist aber unglaublich – wenn auch passiv – mächtig. Mehr dazu in einem künftigen Post.
TOTAL()
TOTAL() ist eine Tabellenberechnung, die, wie WINDOW_SUM(), einfach alle sichtbaren Ergebnisse entlang der Richtung und dem Umfang addiert. Ein einfaches Beispiel von TOTAL() finden wir in der schnellen Tabellenberechnung Prozent des Gesamtwerts.
Abbildung 3: Dekonstruierte Ansicht einer schnellen Tabellenberechnung Prozent des Gesamtwerts (Tabelle horizontal).
Das ist zwar ziemlich geradlinig, aber trotzdem hilfreich, um zu erklären, wie Tabellenberechnungen arbeiten.
Für eine tolle Erklärung der Unterschiede zwischen TOTAL() und WINDOW_SUM(), sieh Dir diesen Link an: <a href=”http://community.tableausoftware.com/docs/DOC-5640″ target=”_blank” title=”TOTAL vs WINDOW_SUM”>https://community.tableau.com/s/news/a0A4T000002OOOCUA4/total-vs-windowsum</a>
ZEILENZÄHLER
Ich nutze zeilenzählende Tabellenberechnungen in jeder Arbeitsmappe, und das aus vielen guten Gründen.
INDEX() oder RANK()
Diese zwei Funktionen liefern eine einzigartige Nummer für jede Zeile oder Partition, wie sie als Richtung und Umfang der Tabellenberechnung festgelegt ist. Grundsätzlich gibt Dir diese Berechnung ein Rang-Feld für jede Zeile oder jeden Bereich, den Du in Deinem Viz siehst. Beim INDEX() wird das Rang-Feld wird immer inkrementell von 1 bis N zugewiesen, unabhängig von den Werten in den Zeilen. Für den RANK() werden immer die Werte berücksichtigt. Die RANK()-Funktion hat mehrere Varianten (z.B. RANK_DENSE(), RANK_MODIFIED, RANK_UNIQUE() ), die im Vergleich zu INDEX() zusätzliche Funktionalität bei Rangordnungen von mehreren Zeilen mit gleichen Werten bietet.
FIRST()
Diese Funktion gibt eine 0 für die erste sichtbare Zeile und dann negative, inkrementelle Nummern für die folgenden Zeilen oder Partitionen zurück.
LAST()
Diese Funktion – offensichtlich die Gegenfunktion zu FIRST() – gibt eine 0 für die letzte sichtbare Zeile und dann positive, inkrementelle Nummern für die weiteren Zeilen zurück.
Abbildung 4: Dekonstruierte Ansicht der Tabellenberechnungen INDEX(), FIRST() und LAST() (Tabelle horizontal), absteigend sortiert nach Sales.
Warum diese sehr einfachen Funktionen so mächtig sind? Du kannst diese zeilenzählenden Funktionen in Deinen Filtern verwenden, wenn Dein Viz andere Tabellenberechnungen enthält.
Fazit
Es gibt viele, viele weitere Tabellenberechnungen in der Rechenfabrik Tableau. Allerdings, durchs Dekonstruieren und damit Lernen, wie diese fünf Tabellenberechnungen funktionieren, verstehe ich jetzt die Maschinerie hinter den Kulissen und bin in der Lage, fortgeschrittene Funktionen in meinem Tableau zu nutzen – und das schnell.
Denk daran, der einzige Weg, Werte mit sich selbst zu vergleichen, sind Tabellenberechnungen. Zögere nicht, Dich mit diesem machtvollen Feature auseinanderzusetzen. Du wirst es häufiger nutzen als Du glaubst.