Kapitel 4. Mit Zeit arbeiten
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Als wir über den Inhalt dieses Buches diskutierten, gab es in keinem Kapitel mehr Beispiele als in diesem. Wir hatten so viele Beispiele über die Zeit, dass wir sie in praktisch allen Kapiteln einfügten - auch in den früheren.
Das Interessante an der Zeit ist, dass wir eine einzige Spalte in unseren Daten haben können, die sich auf die Zeit bezieht, und das macht unsere Daten extrem flexibel in der Analyse. Das liegt daran, dass Zeitdaten natürlich hierarchisch sind. Egal, ob es sich um Sekunden, Minuten, Stunden, Tage, Wochen, Monate, Quartale oder Jahre handelt, eine Spalte mit Zeitdaten bietet dir eine Flexibilität, die andere Datenspalten nicht haben.
In Kapitel 3 haben wir kategorische Daten besprochen. Kategoriale Daten sind ideal, um Vergleiche anzustellen. Eine grundlegende Annahme von für alle Vergleiche ist die Konsistenz. Wenn wir, die Entwickler, zwei nicht zeitbasierte Werte visualisieren, geht unser Publikum davon aus, dass wir einen angemessenen Vergleich anstellen. Dein Publikum nimmt wahrscheinlich an, dass es sich um denselben Zeitraum handelt.
Stell dir vor, du machst Callcenter-Analysen und vergleichst die Gesamtanzahl der Anrufe. Wenn heute der 17. Mai 2020 ist, würdest du wahrscheinlich nicht die Gesamtzahl der Anrufe von 2019 mit der von 2020 vergleichen wollen, denn das sind zwei sehr unterschiedliche Zeiträume! Egal, ob wir versuchen, das laufende Jahr mit dem Vorjahr zu vergleichen oder die Leistung eines Monats mit demselben Monat vor einem Jahr, unser Publikum geht davon aus, dass die Zeiträume konsistent sind - das ist praktisch ein unausgesprochener Vertrag zwischen dem Entwickler und dem Nutzer.
Das Ziel dieses Kapitels ist es, die natürliche Hierarchie von Datums- und Zeitangaben zu erörtern und dir dabei zu helfen, Berechnungen zu entwickeln, mit denen du deine Visualisierungen standardisieren und automatisieren kannst .
In diesem Kapitel führen wir dich durch die grundlegenden Berechnungen, die dich zu einem Experten in der Datumsberechnung machen. Nachdem wir dieses Grundverständnis aufgebaut haben, gehen wir zu Strategien für spezielle, aber regelmäßige Herausforderungen über, denen wir bei der Arbeit mit Datumsdaten begegnet sind. Und erinnere dich: Im weiteren Verlauf des Buches wirst du viele Beispiele sehen, die ebenfalls mit Datumsangaben arbeiten.
Daten und Zeit verstehen
Tableau bietet den Nutzern eine sehr einfache Schnittstelle für die Arbeit mit der Zeit. Standardmäßig erstellt Tableau eine Hierarchie, die es den Nutzern ermöglicht, einfach durch alle Datums- und Zeitangaben zu navigieren. Wenn du ein beliebiges Datums- oder Datumszeitfeld auf die Visualisierung ziehst, wird das Feld automatisch auf das nächste Jahr aggregiert angezeigt. Das ist die Standardeinstellung für Daten in Tableau.
Zusätzlich zur Standardeinstellung Jahr ordnet Tableau die Zeitwerte in einer Hierarchie an. Wenn du die Hierarchie aufschlüsselst, werden deiner Ansicht zusätzliche Details nach Quartal, Monat, Woche, Tag, Stunde, Minute und Sekunde hinzugefügt.
Tipp
Diese Hierarchie wird auch für dein Publikum verfügbar sein. Wenn du diese Funktion nicht möchtest, musst du benutzerdefinierte Datumsberechnungen erstellen - was wir sehr empfehlen.
Die Standardeinstellung für ein Zeitfeld ist zwar ein Jahr, aber du kannst mit der rechten Maustaste klicken und die Jahresberechnung bearbeiten und die entsprechende Zeit auswählen.
Wenn du nicht möchtest, dass ein Jahr als Standardwert verwendet wird, kannst du auf einem Mac die Wahltaste gedrückt halten oder auf einem PC mit der rechten Maustaste klicken, während du das Zeitfeld auf die Ansicht ziehst. Von dort aus kannst du den gewünschten Datumsteil oder Wert auswählen(Abbildung 4-1).
Datumsteile und Datumswerte
Die Art und Weise, wie du auf mit Daten arbeiten kannst, eröffnet dir viele Möglichkeiten. Wenn du dir Abbildung 4-1 ansiehst, siehst du viele der Optionen für die Arbeit mit Datumsangaben. Du kannst Datumsbestandteile wie Jahr (2015), Quartal (Q2) oder Monat (Mai) auswählen und du kannst Datumswerte wie Quartal (Q2 2015), Monat (Mai 2015) oder Tag (8. Mai 2015) wählen. Der Unterschied zwischen diesen beiden Varianten ist, dass du entweder einen bestimmten Teil des Datums auswählst oder das Datum auf den neuesten Wert abschneidest.
Datum Berechnungen
Egal, ob es darum geht, den Teil des Datums oder den Wert zu ermitteln, auf den abgeschnitten werden soll, Tableau bietet die gleiche Flexibilität in berechneten Feldern mit den Funktionen DATEPART()
, DATENAME()
und DATETRUNC()
. DATEPART(
)
gibt einen einzelnen numerischen Wert für den Teil des Datums zurück, der von Interesse ist. Zum Beispiel würde der 8. Mai 2015 den Wert 5 zurückgeben, wenn er für den Monat steht. DATENAME()
gibt eine Zeichenkette für den Teil des Datums zurück, der von Interesse ist, also würde der 8. Mai 2015 den Wert Mai zurückgeben, wenn er für den Monat steht. Es ist nur ein kleiner Unterschied, aber die Art und Weise, wie die Informationen angezeigt werden, ist anders. Im Gegensatz zu DATEPART()
und DATENAME()
gibt DATETRUNC()
einen tatsächlichen Datums- oder Datumszeitwert zurück. Bei DATETRUNC()
werden die Werte auf den letzten angegebenen Datumswert gerundet oder abgeschnitten.
Wenn dir die beiden vorangegangenen Absätze bekannt vorkommen, liegt das daran, dass wir sie so formulieren wollten, um dir den nächsten Punkt zu zeigen. Auch wenn in den Tableau-Feldern in deiner Ansicht JAHR, QUARTAL oder MONAT steht, werden diese Berechnungen im Hintergrund durchgeführt. In den Abbildungen 4-2, 4-3 und 4-4 siehst du, dass wir den Datumsteil von Monat und den Datumswert von Jahr in Spalten haben. Wenn du auf einen dieser Werte doppelklickst, zeigt Tableau die zugrunde liegenden Berechnungen an.
Zuerst hast du einen diskreten Monat und ein fortlaufendes Jahr im Spaltenregal. Diese Felder sehen schön und übersichtlich aus und sind leicht zu verstehen. Aber unter jedem dieser Felder befinden sich kompliziertere Funktionen.
Wenn du auf das diskrete Feld MONAT(Bestelldatum) doppelklickst, öffnet sich der Editor für Ad-hoc-Berechnungen. Wir werden diesen Editor in diesem Buch noch häufig verwenden. Abbildung 4-3 zeigt die zugrunde liegende Berechnung für MONAT(Bestelldatum). Es zeigt sich, dass diese Berechnung die Funktion DATEPART()
verwendet und month
als erstes Argument in der Funktion angibt. Das hilft dabei, den Monatsteil des Bestelldatums zurückzugeben.
Und wenn du auf das fortlaufende Feld JAHR(Bestelldatum) doppelklickst, ist die zugrunde liegende Funktion DATETRUNC()
, die, wie bereits erwähnt, ein Feld auf die angegebene Stufe abrundet. Dies ist in Abbildung 4-4 dargestellt. In diesem Fall liefert year
den 1. Januar des Jahres in [Bestelldatum].
Das Tolle an diesen Berechnungen ist, dass sie dir helfen, die Datumsberechnungen in Tableau zu erlernen, während du die Standardeinstellungen eines beliebigen Zeitfeldes verwendest. Toll ist auch, dass du diese Berechnungen schnell ändern kannst - sogar in Meetings, um Erkenntnisse zu teilen, während das Gespräch stattfindet.
Datumshierarchien und benutzerdefinierte Daten
Du wirst feststellen, dass alle Datumsangaben in Abbildung 4-4 Hierarchien enthalten - das ist die kleine +-Schaltfläche links neben den Feldnamen deiner Datumsfelder in Spalten. In der Standardeinstellung erstellt ein Datumsfeld automatisch diese Hierarchien. Wenn du ein Datumsfeld zu deiner Ansicht hinzufügst, kann dein Publikum mit dieser Hierarchie interagieren. Wenn du mit einer bestimmten Hierarchie eines Datumsfelds interagieren möchtest, kann die Arbeit mit Datumsangaben eine Herausforderung sein.
Glücklicherweise gibt es Möglichkeiten, die automatischen Datumshierarchien zu umgehen. Dazu kannst du ein benutzerdefiniertes Datum erstellen: Du klickst mit der rechten Maustaste auf das ursprüngliche Zeitfeld in der Datenquelle und wählst Erstellen → Benutzerdefiniertes Datum(Abbildung 4-5). Dort musst du den gewünschten Datumsteil oder Datumswert auswählen. Sobald du dieses Feld erstellt hast, platzierst du es irgendwo in der Ansicht und du wirst feststellen, dass das Datum keine Hierarchie hat, die mit ihm verbunden ist.
Diskrete versus kontinuierliche Daten
Um besser zu verstehen, wie Daten in Tableau visuell dargestellt werden, schauen wir uns vier Visualisierungen an, in denen wir zwei Komponenten auf der horizontalen Achse variieren. Betrachten wir den Unterschied zwischen Datumsteil und Datumswert und schauen wir uns an, wie sich diskrete und kontinuierliche Achsen für die beiden Diagrammtypen unterscheiden. Damit hast du vier Möglichkeiten, die du untersuchen kannst(Abbildung 4-6).
Du kannst sehen, wie die Änderung von nur zwei Optionen zu vier Diagrammen führt, die ganz unterschiedlich funktionieren. Die beiden großen Unterschiede, die es wert sind, noch einmal erwähnt zu werden, sind: Die Auswahl eines Datumsteils gibt nur einen einzigen Teil eines Datumsfeldes zurück, und die Standardoption für einen Datumsteil ist normalerweise Diskret. Dadurch werden die einzelnen Datumsbereiche in Felder unterteilt.
Du kannst immer noch diskrete Datumsteile in kontinuierliche umwandeln, um eine kontinuierliche Achse zu erstellen. Die Diagrammtypen von sehen ähnlich aus, aber die Achsen funktionieren anders. Wenn du dir die Visualisierung des kontinuierlichen Datumsteils oben rechts ansiehst, wirst du sehen, dass die Achsen für jeden Monat auf dem Monatsnamen zentriert sind. Bei den diskreten Datumsteilen oben links hat die Visualisierung Bereiche für jeden Monat und keine Häkchen, die sich an den Werten für jeden Monat orientieren. Diese Häkchen machen es unserem Publikum leichter zu verstehen, welche Monate sie betrachten, deshalb arbeiten wir lieber mit kontinuierlichen Feldern.
Das gilt auch für deine Datumswertoptionen. Wenn du den Datumswert Monat auswählst, rundet Tableau jeden Wert standardmäßig auf den Monatsanfang ab. So erhältst du eine monatsgenaue Ansicht der Daten. Standardmäßig sind Datumswerte kontinuierliche Felder, aber du kannst sie in diskrete umwandeln. Auf der Achse unten links in Abbildung 4-6 siehst du, dass die Achsen aus verschiedenen Bereichen mit Beschriftungen bestehen. Die kontinuierlichen Datumswerte unten rechts zeigen dagegen eine einzelne Achse mit Häkchen.
Tipp
Erinnere dich daran, dass diskrete Dimensionen nur Überschriften für vorhandene Daten erstellen. Wenn du Lücken in deinen Daten hast, solltest du eine kontinuierliche Achse verwenden, um nicht repräsentierte Daten zu erhalten.
Es gibt einen Platz für diskrete Datumsachsen. Wenn du ein Balkendiagramm verwenden willst, kannst du diskrete Datumsteile verwenden. Wenn du mit Liniendiagrammen arbeitest, empfehlen wir kontinuierliche Achsen.
Anruffrequenz: Chips and Bolts Call Center Fallstudie
Das Call Center eines Autoteileherstellers, Chips and Bolts (CaB), möchte seine Kundenzufriedenheit verbessern. Die Führungskräfte müssen die Grundlagen besser verstehen, bevor sie ihre Leistung bewerten können. In einem ersten Schritt wollen sie wissen, wie viele Anrufe bei ihnen eingehen. Sie wollen diese Daten in 15-Minuten-Schritten über einen Zeitraum von 2,5 Jahren verfolgen, um besser zu verstehen, wie das Anrufaufkommen mit ihren Umfragen zur Kundenzufriedenheit zusammenhängt. Wie können diese Informationen dargestellt werden?
Die Arbeit mit der Zeit in Tableau ist nicht ohne Herausforderungen. Aber es ist einfach, Stunden und Minuten in Tableau in einem Diagramm zu platzieren: Wenn du mit einem Datetime-Feld arbeitest, platziert Tableau es automatisch in der Datetime-Hierarchie. Ein Diagramm über die Gesamtzahl der Anrufe zu erstellen, wäre zum Beispiel nicht so schwierig.
Mit dem zuvor gezeigten Beispiel eines fortlaufenden Datumsteils ist es ziemlich einfach, einen einzelnen Datumsteil in eine fortlaufende Achse zu konvertieren, um mehrere Zeiträume darzustellen. Wenn du fortlaufende Datumswerte verwendest, wird ein Datum bis zu einem bestimmten Datumsteil abgeschnitten, aber manchmal möchtest du auch das Gegenteil erreichen. In diesem Beispiel wollen wir eine kontinuierliche Achse für Stunde, Minute und Tag. In Abbildung 4-7 siehst du die Gesamtzahl der eingehenden Anrufe, die alle 15 Minuten über einen Zeitraum von 2,5 Jahren im Call Center eingehen.
Bei den ersten vier Strategien wandelst du ein Datum in verschiedene Aggregationsstufen um. Um die letzte Analyse abzuschließen und die Daten auf einer kontinuierlichen Achse alle 15 Minuten zu aggregieren, musst du dafür sorgen, dass jedes Datum exakt gleich ist, aber die Zeit jeder Zeile in den Daten beibehalten wird.
Strategie: Gesamtanrufzeit pro Stunde ermitteln
In dieser Strategie werden wir uns der Herausforderung stellen, mit der Zeit zu arbeiten - insbesondere auf einer kontinuierlichen Achse. Das Ergebnis dieser Strategie ist in Abbildung 4-8 dargestellt.
Bei dieser Strategie werden wir die Gesamtanzahl der Anrufe nach Stunden und Jahr aufschlüsseln:
Erstelle ein neues Blatt und stelle es so ein, dass es die gesamte Ansicht einnimmt.
Setze [Startdatum Uhrzeit] auf Spalten. Ändere dann die Anzeige auf diskrete Stunden.
Wenn du Tableau Desktop 2020.1 oder älter verwendest, verfügt deine Datenquelle bereits über das Feld [Anzahl der Datensätze]. Wenn du mit Tableau 2020.2 oder einer neueren Version arbeitest, erstelle ein berechnetes Feld namens
[Number of Records]
:// Number of Records 1
Füge [Anzahl der Datensätze] als Summe zu den Zeilen hinzu.
Füge das diskrete Jahr von [Startdatum Zeit] zu Farbe hinzu.
Auf diese Weise kannst du feststellen, dass die Anrufe - unabhängig vom Jahr - gegen 7 Uhr morgens zuzunehmen beginnen, aber um 8 Uhr morgens wirklich ansteigen. Du siehst auch, dass die Anrufe im Jahr 2020 durchweg rückläufig sind.
Was bei dieser Analyse fehlt, ist eine genauere Untersuchung. Erfolgen die Anrufe zu Beginn jeder Stunde oder in der Mitte der Stunde? Wenn du einen Personalplan erstellst, könnten die genauen Zeiten nützlich sein.
Strategie: Erstelle ein Diagramm zur Messung der Gesamtgesprächszeit pro Minute
Wir werden die vorherige Strategie erweitern, indem wir eine Visualisierung erstellen, die die Gesamtzahl der Anrufe nach Minuten des Tages aufzeigt:
Sortiere die Daten nach Minuten, indem du auf das + in der HOUR-Hierarchie klickst. Abbildung 4-9 zeigt die resultierende Visualisierung.
Das Ergebnis zeigt die Anrufe im Minutentakt an, aber jetzt haben wir zwei diskrete Achsen: die obere Achse, die nach Stunden unterteilt ist, und eine zweite Achse für die Minuten, die ebenfalls bis zu 60 einzelne Unterteilungen innerhalb jeder Stunde erstellt. So werden nur dort Unterteilungen erstellt, wo Daten vorhanden sind. Wenn es also keine Daten für die Stunde 0, Minute 53 gibt (und das ist nicht der Fall), gibt es die Partition nicht.
Füge alle fehlenden Partitionen hinzu. Wenn du fehlende Partitionen eines bestimmten Datumsteils einbeziehen möchtest, klicke mit der rechten Maustaste auf den Datumsteil und wähle Fehlende Werte anzeigen(Abbildung 4-10).
Wenn du dir Abbildung 4-9 ansiehst, wirst du sehen, dass deine Visualisierung zwei Gruppen von diskreten Bins hat: eine für Stunden und eine für Minuten. Die Verwendung von diskreten Werten für Stunden und Minuten ist schwierig, weil du am Ende 1.440 Unterteilungen hast (24 Stunden × 60 Minuten).
Wie kannst du also eine einzelne Achse berechnen? Für diese Berechnung werden wir uns auf zwei häufig verwendete Berechnungen stützen: DATEADD()
und DATEDIFF()
.
DATEADD()
addiert oder subtrahiert Daten oder Zeit und benötigt drei Eingaben:
Ein bestimmter Datumsteil, der in Anführungszeichen und in Kleinbuchstaben geschrieben wird. Dies zeigt die Einheiten an, die wir zu einem Datum hinzufügen, egal ob es sich um Sekunden, Stunden oder Jahre handelt.
Eine beliebige ganze Zahl, die die Zeit angibt, die wir addieren oder subtrahieren wollen. Wenn eine negative Zahl angegeben wird, wird die Zeit von dem Wert abgezogen.
Das ursprüngliche Datumsfeld.
Diese extrem vielseitige Berechnung verwenden wir ständig.
DATEDIFF()
berechnet die Differenz zwischen zwei Daten auf der Grundlage des Datumsteils von Interesse und benötigt drei Eingaben:
Ein bestimmter Datumsteil
Ein Startdatum
Ein Enddatum
Du kannst verschiedene Datumsteile angeben: year
, quarter
, month
, dayofyear
, day
, weekday
, week
, hour
, minute
, second
, iso-year
, iso-quarter
, iso-week
, und iso-weekday
.
Tipp
Weitere technische Hilfe findest du unter in der Dokumentation von Tableau zu den Datumsfunktionen.
Strategie: Erstelle eine durchgehende Datumsachse in der zweiten
Du wirst jetzt eine Berechnung erstellen, die es dir ermöglicht, eine einzige Achse für die Zeit zu haben:
Erstelle ein berechnetes Feld namens
[time]
und schreibe die folgende Berechnung:// time DATEADD( "day", DATEDIFF( "day", [Start Date Time], {MAX(DATETRUNC("day", [Start Date Time]))} ), [Start Date Time] )
Durch diese Berechnung werden alle Datumsangaben in deinem Datensatz so geändert, dass sie gleich dem maximalen Datum in deinem Datensatz sind. Die Uhrzeit (Stunde, Minuten und Sekunden) bleibt dabei gleich.
Erstelle eine durchgehende Achse wie folgt:
Entferne alle Berechnungen in den Spalten.
Füge das Feld [Zeit] als genaues Datum zu den Spalten hinzu.
Das Ergebnis ist die Visualisierung in Abbildung 4-11.
Du hast jetzt eine durchgehende Achse. Allerdings erfolgt die Analyse auf die Sekunde genau, was nicht sehr hilfreich oder aufschlussreich ist. Anstatt einer sekundengenauen Analyse möchtest du vielleicht Daten erfassen alle 15 Sekunden.
Strategie: Eine kontinuierliche Datumsachse für 15-Sekunden-Intervalle erstellen
Du wirst die Datetime weiter erforschen, indem du eine benutzerdefinierte Berechnung erstellst, die Anrufe basierend auf allen 15 Sekunden des Tages zusammenfasst:
Verwende die Visualisierung aus unserer vorangegangenen Strategie.
Erstellen Sie eine neue Berechnung und nennen Sie sie
[time / 15 sec]
.Schreibe das Folgende:
// time / 15 sec DATEADD( "second", -(DATEPART("second",[time]) % 15), [time] )
Hier berechnest du zunächst die Sekunden für das Zeitfeld. Dann verwendest du den Modulo-Operator (
%
), um die Gesamtsekunden alle 15 Sekunden zu berechnen. Anstatt bis 60 zu zählen, zählst du also bis 14. Anstatt bis 15 weiterzuzählen, fängst du bei 0 an.Das Ergebnis dieser Berechnung ist ein Datum, das auf die letzten 15 Sekunden abgeschnitten ist.
Klicke und ziehe [time / 15 sec], um das Zeitfeld als durchgehende Achse zu ersetzen. So entsteht die Visualisierung in Abbildung 4-12.
Du fängst an, Muster wie bei der stündlichen Darstellung zu erkennen, aber diese Ansicht ist immer noch zu granular. Wie wäre es, wenn du dir statt alle 15 Sekunden alle 15 Minuten ansiehst?
Strategie: Eine kontinuierliche Datumsachse für 15-Minuten-Intervalle erstellen
Als wir begannen, mit diesen Daten zu arbeiten, sahen wir, dass die Informationen auf Stundenebene interessant waren, aber wir brauchten mehr Informationen, um genauer zu werden. Daher haben wir uns die Diagramme für jede Minute und alle 15 Sekunden angesehen. Diese Diagramme waren zu detailliert. In dieser Strategie erstellen wir eine Berechnung, die die Zeit auf alle 15 Minuten abschneidet. Das Ergebnis ist ein Diagramm, das viel aussagekräftiger ist als die drei vorherigen.
Erstellen Sie eine neue Berechnung namens
[time / 15 min]
.Schreibe das Folgende:
// time / 15 min DATEADD( "minute", -(DATEPART("minute", [time]) % 15), DATETRUNC("minute", [time]) )
Das Format für [time / 15 min] sieht fast genauso aus, nur dass wir
second
durchminute
ersetzt haben und unser drittes Argument jetztDATETRUNC("minute", [time])
statttime
lautet. Das liegt daran, dass unsere Analyse mit [time / 15 sec] bereits auf der niedrigsten Ebene in Tableau (Sekunden) stattfand. Da wir nun auf einer höheren Datenebene arbeiten, müssen wir alle Werte auf die nächste Minute hochrechnen.Rolle auf die nächste Minute auf:
Klicke und ziehe, um [Zeit / 15 Sekunden] durch [Zeit / 15 Minuten] zu ersetzen.
Klicke auf der Karte Markierungen auf Pfad und ändere den Linientyp in Schritt. Wir bevorzugen einen Stufenpfad anstelle einer geraden Linie, weil wir wissen, dass die Linie alle Werte in diesem 15-Minuten-Intervall darstellt.
In Abbildung 4-13 schließlich sehen wir auf einer einzigen Achse die Muster in den Daten in 15-Minuten-Intervallen. Diese Darstellung gibt uns eine Menge Informationen darüber, wie schnell die Anrufe jeden Morgen ansteigen, und zwar viel genauer als auf die Stunde genau (aber nicht zu genau).
Die rote Linie, die für das Jahr 2020 steht, ist immer noch viel niedriger als alle anderen Werte. Das könnte daran liegen, dass wir nur Daten bis zum 14. April 2020 gesammelt haben. Und weil das Geschäft möglicherweise saisonabhängig ist, könnte es sich lohnen, ähnliche Zeiträume zu vergleichen. Aber bevor wir das tun, wollen wir einen genaueren Blick auf die Anrufe pro 15 Minuten werfen.
Schauen wir uns die Anrufe pro 15 Minuten nach Wochentag an, indem wir die Dimension auf Farbe einstellen. Klicke mit der rechten Maustaste auf JAHR(Startdatum Zeit) und ändere den Datumstyp in einen diskreten Datumsteil von
weekday
(dieser befindet sich unter dem Abschnitt Mehr des Datumsteils). Du kannst die Farben auch noch nachträglich bearbeiten. Abbildung 4-14 zeigt die resultierende Visualisierung.
Heatmaps (Highlight-Tabellen)
Die Informationen auf in Abbildung 4-14 sind sehr nützlich, aber es gibt einfach zu viele Zeilen, um die Erkenntnisse durchzulesen. Wenn wir mit Liniendiagrammen arbeiten, die acht oder mehr Zeilen haben, ziehen wir sofort andere Diagrammtypen in Betracht. Unser Diagrammtyp für dieses Szenario ist die Heatmap - auch wennTableau sie als Highlight-Tabelle bezeichnet. Heatmaps ermöglichen es, Veränderungen durch Farbe, Intensität oder Farbton und nicht durch die Richtung zu erkennen. Diese Heatmap wird als Matrix dargestellt, so dass jeder die Veränderungen für ein einzelnes Mitglied in einer Dimension leicht nachvollziehen kann.
Strategie: Erstellen einer Heatmap
Unter kannst du eine Heatmap erstellen, die dieselbe Analyse wie das Liniendiagramm in unserer vorherigen Strategie darstellt:
Erstelle ein neues Blatt.
Ändere den Markierungstyp in Quadratisch.
Erstelle ein benutzerdefiniertes Datum für den Datumsteil des Wochentags, indem du [Startdatum Uhrzeit] verwendest, und platziere es in den Spalten.
Setze [time / 15 min] auf Rows, aber wähle den Hour date Teil.
Setze [Anzahl der Datensätze] auf Farbe.
Wähle eine Farbpalette, die zu dir passt. Wir entscheiden uns für eine benutzerdefinierte Farbpalette (mehr dazu in Kapitel 12).
Das Ergebnis ist die Heatmap in Abbildung 4-15.
Auch hier siehst du, dass die Anrufe ab 8 Uhr morgens zunehmen, weil sich die Farbe ändert. Du kannst aber auch feststellen, dass montags, vor allem morgens, besonders viel los ist. An den Wochenenden ist es ruhiger, und der Sonntag ist besonders ruhig. Wir sehen auch, dass die Anrufe nach 17 Uhr abnehmen (dargestellt als 17 in der Grafik von ).
Strategie: Eine detailliertere Heatmap erstellen
Eine Heatmap kann auch dann sehr hilfreich sein, wenn die Daten ziemlich detailliert sind. Der Wert von Heatmaps wird umso größer, je komplexer und detaillierter die Visualisierung ist. Befolge diese Schritte, um deiner Heatmap mehr Details hinzuzufügen:
Dupliziere deine Visualisierung aus der vorangegangenen Strategie.
Erstelle ein benutzerdefiniertes Datum für den Datumsteil von Monat, indem du [Startdatum Uhrzeit] verwendest.
Platziere sie auf Spalten und links von deiner Wochentagsberechnung auf Spalten.
Klicke auf das + bei HOUR(time / 15 min) auf Rows. Dadurch wird die Zeit auf die nächsten 15 Minuten gerundet angezeigt.
Du wirst feststellen, dass es einige Leerstellen gibt, an denen keine Werte auf deinem Dashboard vorhanden sind. Wenn du für diese Stellen Markierungen hinzufügen möchtest, musst du eine Nachschlageberechnung verwenden:
ZN(LOOKUP(SUM([Number of Records]),0))
. (Wir werden in Kapitel 6 näher darauf eingehen.) Füge diese Berechnung zu Farbe hinzu.Formatiere deine Spalten- und Zeilenköpfe so, dass sie besser lesbar sind. Abbildung 4-16 zeigt die resultierende Visualisierung.
Wir haben uns dafür entschieden, die Trennlinien auf Stunden- und Monatsebene zu formatieren. So kann dein Publikum schnell zu den Analysesegmenten navigieren.
Diese Grafik zeigt das Anrufvolumen in 15-Minuten-Schritten nach Monat und Wochentag. Welche Erkenntnisse kannst du also aus diesen Daten gewinnen?
Fast jeden Monat des Jahres werden die Anrufe um 8 Uhr morgens entgegengenommen.
In den Sommermonaten werden mehr Anrufe in den späten Abendstunden getätigt.
Unabhängig vom Wochentag gibt es im Januar besonders viele Anrufe.
Im April, Juli und Dezember gibt es montags mehr Anrufe. Das kann daran liegen, dass eine Heizung oder eine Klimaanlage, die am Wochenende kaputt gegangen ist, am Montag zu einem Serviceeinsatz führt.
Das Erkennen von Anrufmustern anhand dieser Visualisierung kann bei der Personalbesetzung sehr hilfreich sein. Montags ist immer viel los, aber es könnte sinnvoll sein, diese Tage im April, Juli und Dezember aufzustocken. Da das Anrufaufkommen im Sommer bis in den späten Abend hinein höher ist, könnte das Personal bis 18 Uhr statt bis 17 Uhr beschäftigt werden.
Wir lieben Heatmaps. Sie sind ein unterschätztes Werkzeug für die Darstellung von Zeit und sind besonders nützlich, wenn Daten mit vielen Mitgliedern einer Dimension dargestellt werden können.
Vergleich der Werte von Jahr zu Jahr: Fallstudie: CaB Call Center
Jetzt dass das Call Center die Anzahl der eingehenden Anrufe besser versteht, würden die Mitarbeiter gerne verstehen, wie sich diese im Laufe der Zeit verändert hat. Es ist gerade April und sie möchten, dass das laufende Jahr in der Analyse berücksichtigt wird. Wie kannst du einen Vergleich mit den Vorjahren anstellen?
Für diese Fallstudie werden wir unsere Analyse der Call Center-Daten fortsetzen. Bei dieser abschließenden Analyse geht es uns darum, geeignete Vergleiche zwischen den Jahren anzustellen. Dazu kehren wir zu unserer Darstellung der Gesamtanzahl der Anrufe pro 15 Minuten nach Jahr zurück(Abbildung 4-17).
Wir sehen, dass die Anrufe zurückgegangen sind, aber das liegt daran, dass wir uns im Jahr 2020 zu einem anderen Zeitpunkt befinden als in den anderen Jahren. Das liegt zum Teil daran, dass unsere Daten nur bis zum 14. April 2020 vorliegen. Fairer wäre es, die Anrufe für 2018, 2019 und 2020 bis zum 14. April zu vergleichen und nicht die Gesamtzahlen.
Das ist eine Herausforderung, mit der wir oft konfrontiert werden, unabhängig vom Datentyp: ähnliche Zeiträume vergleichen zu können. Wie kannst du das Problem also lösen? Mit einer gut durchdachten Datumsberechnung.
Das Ziel der nächsten beiden Strategien ist es, eine Berechnung zu erstellen, um das jüngste Datum für das letzte Jahr mit dem gleichen Datum der Vorjahre zu vergleichen. Für die nächste Strategie erstellst du ein Balkendiagramm, das den Fortschritt zum Gesamtwert anzeigt. So kann dein Publikum die Gesamtwerte im Auge behalten und gleichzeitig vergleichbare Werte für das laufende Jahr sehen. Dann wenden wir einen Filter auf unser Liniendiagramm an, der einen richtigen Vergleich von Jahr zu Jahr ermöglicht, anstatt der in Abbildung 4-18 gezeigten Darstellung.
Strategie: Zeige den Fortschritt zur Gesamtsumme mit Hilfe von zwei Balkendiagrammen
In dieser Strategie verwendest du ein Balkendiagramm, um den Fortschritt zum Gesamtergebnis zu zeigen:
Erstelle die Berechnungen wie folgt:
Normalisiere die Daten auf dasselbe Jahr, indem du eine Berechnung namens
[Start Date Time | Same Year]
:// Start Date Time | Same Year DATEADD( "year", DATEDIFF("year", {MAX([Start Date Time])}, [Start Date Time]), DATETRUNC("day", [Start Date Time]) )
Erstellen Sie eine zweite Berechnung namens
[Start Date Time | Same Year | TF]
. Dies ist ein Boolescher Wert, der erkennt, ob ein Datum kleiner oder gleich dem Tag des Jahres des letzten Jahres ist:// Start Date Time | Same Year | TF DATEPART("dayofyear", [Start Date Time | Same Year]) <= DATEPART("dayofyear", {MAX([Start Date Time])})
Erstellen Sie eine dritte Berechnung namens
[Total Calls | YTD]
:// Total Calls | YTD SUM( IF [Start Date Time| Same Year | TF] THEN [Number Records] END )
So erhältst du für jedes Jahr die Werte seit Jahresbeginn.
Erstelle die Visualisierung:
Füge [Anzahl der Datensätze] zu den Zeilen hinzu.
Füge [Total Calls | YTD] rechts neben [Number of Records] im Regal "Rows" hinzu.
Erstelle ein synchronisiertes Zwei-Achsen-Diagramm.
Füge [Startdatum Zeit] als diskreten Jahresnamen zu den Spalten und zur Farbe hinzu.
Setze die Deckkraft auf der Karte
SUM([Number of Records])
Marks auf 40%.Formatiere deine Visualisierung, indem du die Spalten- und Zeilentrenner entfernst, ein dunkleres Spaltenachsenlineal und Häkchenmarkierungen hinzufügst, deine Gitternetzlinien gestaltest, nur eine linke Achse zeigst und die Achse umbenennst.
Beschriftungen auf der Karte AGG(Total Calls | YTD) Marks anzeigen.
So entsteht das Balken-auf-Balken-Diagramm in Abbildung 4-19.
In dieser Visualisierung haben wir eine IF
Anweisung in die Aggregation eingebettet, um die Filterung innerhalb der Berechnung durchzuführen. Das ist etwas, das du regelmäßig tun solltest, damit eine Visualisierung dynamisch ist. Im weiteren Verlauf des Jahres wird der Balken für 2020 größer. Auch die 100% undurchsichtigen Balken in 2018 und 2019 werden weiter wachsen. Diese Balken werden schließlich die Werte erreichen, die in den 40% undurchsichtigen Balken auf derselben Achse angezeigt werden.
Wirf einen Blick zurück auf Abbildung 4-17. Diese Visualisierung zeigt die Gesamtanzahl der Anrufe für alle Termine in den Jahren 2018 und 2019. Sie zeigt auch nur die Termine bis zum 14. April 2020. Das ist kein vergleichbarer Vergleich. Es wäre toll, wenn wir diese Werte vergleichen könnten.
Strategie: Vergleiche ähnliche Perioden in einem Liniendiagramm
Im Gegensatz zu der vorangegangenen Strategie, bei der wir eine IF
Anweisung verwendet haben, um unsere Daten zu filtern, werden wir eine explizit erstellte Berechnung auf der Ablage "Filter" platzieren. Unser Ziel bei dieser Strategie ist es, eine Visualisierung zu verwenden, die wir zuvor im Kapitel erstellt haben, und einen Filter für das laufende Jahr hinzuzufügen:
Dupliziere deine endgültige Visualisierung aus der früheren Strategie für kontinuierliche Daten, die in Abbildung 4-13 gezeigt wird.
Vergewissere dich, dass du Schritt 1a und Schritt 1b aus der vorangegangenen Strategie abgeschlossen hast.
Bearbeite den Wochentag von [Startdatum Zeit], der derzeit auf Farbe steht, indem du den Datumstyp in diskretes Jahr änderst.
Füge [Startzeit Datum | Gleiches Jahr | TF] zum Regal Filter hinzu, wähle Wahr und klicke auf OK.
Bearbeite die Achse und entferne den Achsentitel. Abbildung 4-20 zeigt das Ergebnis.
Wenn du die Ergebnisse der beiden vorangegangenen Strategien nebeneinander stellst, erhältst du ein Miniatur-Dashboard, das dir zeigt, wie viele Anrufe im vergangenen Jahr getätigt wurden und wann die Anrufe erfolgten(Abbildung 4-21).
Automatisierte Berichte
In diesem Abschnitt werden wir uns mit der Automatisierung von Berichten mithilfe von benutzerdefinierten Berechnungen beschäftigen. Egal, ob es sich um Call Center-Daten, Finanzberichte oder Schülerzahlen handelt, wir verbringen viel Zeit damit, Tabellen zu entwickeln, die am Ende eines Monats automatisch aktualisiert werden. Die Implementierung dieser Tabellen nimmt zwar etwas Zeit in Anspruch, aber die Mühe lohnt sich, denn sie spart viel Zeit. Eine der häufigsten Handlungen, die wir bei Tableau-Anfängern beobachten, ist die manuelle Aktualisierung von Daten und die anschließende Bearbeitung eines Filters in einem Dashboard, um die aktualisierten Daten aufzunehmen. Das Ziel der nächsten Strategie ist es, zu zeigen, wie man ein Dashboard automatisch auf Basis der Daten im Dashboard aktualisiert.
Automatisierte Berichte für Veränderungen im Vergleich zum Vormonat und zum Vorjahr: Fallstudie: CaB Call Center
Jetzt, da das CaB-Callcenter beginnt, das Gesamtanrufvolumen pro Jahr zu verstehen, möchten die Mitarbeiter/innen einen genaueren Blick darauf werfen, wie sich Produktionszyklen und Großaufträge auf ihre Zufriedenheitswerte auswirken. Sie haben zusätzlich zu den bereits vorhandenen Jahresberichten eine Monatsansicht angefordert. Diese Ansicht soll mehr granulare Daten zeigen. Wie würdest du einen Bericht erstellen, der trotzdem leicht zu verstehen ist? Welche Schritte würdest du unternehmen, um diesen Bericht zu automatisieren?
Wirf einen Blick auf die Tabelle in Abbildung 4-22. Sie zeigt die durchschnittlichen Anrufe pro Tag sowie die prozentuale Veränderung der Anrufe im Vergleich zum Vormonat und zum Vorjahr. Die Tabelle zeigt Daten von März 2019 bis März 2020. Wir haben uns entschieden, für den April nichts zu berichten, da unsere Daten nur bis zum 14. April vorliegen. Sobald wir die Daten für den letzten Tag des Aprils haben, wird der Bericht automatisch aktualisiert, so dass die Tabelle die Daten von April 2019 bis April 2020 enthält. Außerdem zeigt diese Tabelle eine Aufschlüsselung der Anrufe nach Anrufgrund und aggregiert zu Gesamtwerten.
Strategie: Automatisierter Drehtisch
Bei dieser Strategie erstellst du die in Abbildung 4-22 gezeigte Tabelle neu. Diese zeigt immer die letzten 13 vollständig abgeschlossenen Monate an, basierend auf dem Datum mit den letzten Einträgen:
Erstelle die Basistabelle für diese Visualisierung. Erstelle die Metrik für unsere Tabelle,
[Calls/Day]
:// Calls/Day SUM([Number Records])/COUNTD(DATETRUNC("day", [Start Date Time]))
Füge zunächst [Anrufe/Tag] zu Text hinzu. Füge [Call Reason] zu Columns hinzu und sortiere die Dimension absteigend nach Anrufen pro Tag. Erstelle ein neues benutzerdefiniertes Datum namens
[Start Date Time | Month]
das monatliche Datumswerte liefert. Platziere dies als diskreten Wert in Spalten. Füge Spaltensummen hinzu und platziere sie oben, wie in Abbildung 4-23 gezeigt.Formatiere deine Tabelle so, dass nur Zeilentrenner vorhanden sind, wie in Abbildung 4-24 gezeigt. Füge nur für die Summen eine Bandfarbe hinzu. Diese Tabelle dient als Grundlage für deine Monats- und Jahresberechnung sowie für die Automatisierungen , die du erstellen wirst.
Erstelle die Berechnung von Monat zu Monat. Dies geschieht mit einer Tabellenkalkulation. Rufe diese neue Berechnung auf
[Calls/Day | % Change 1]
:// Calls/Day | % Change 1 (ZN([Calls/Day]) - LOOKUP(ZN([Calls/Day]), -1)) / ABS(LOOKUP(ZN([Calls/Day]), -1))
Bei dieser Berechnung wird eine prozentuale Veränderung auf der Grundlage des vorherigen Wertes, in diesem Fall des Vormonats, berechnet. Da ein Unternehmen möglicherweise saisonabhängig ist (und das sind viele), ist es oft besser, die Werte mit denen des Vorjahres zu vergleichen. Dazu erstellst du eine neue Berechnung namens
[Calls/Day | % Change 12]
:// Calls/Day | % Change 12 (ZN([Calls/Day]) - LOOKUP(ZN([Calls/Day]), -12)) / ABS(LOOKUP(ZN([Calls/Day]), -12))
Du wirst feststellen, dass die Berechnung nur geringfügig anders ist: -1 wurde in -12 geändert. Doppelklicke auf [Calls/Day | % Change 1] und [Calls/Day | % Change 12]. Dadurch wird die Tabelle so umgewandelt, dass sie [Kennzahlennamen] enthält, und der Text lautet jetzt [Kennzahlwerte]. Die Tabellenberechnungen in [Anrufe/Tag | % Änderung 1] und [Anrufe/Tag | % Änderung 12] müssen aktualisiert werden, aber du kannst warten, bis wir alle Komponenten der Visualisierung in der Ansicht haben.
Gehen wir nun dazu über, nur volle Monate anzuzeigen. Beginne mit der Berechnung des maximalen Datums von [Start Date Time], indem du eine Berechnung schreibst, die
[Start Date Time | Max Date]
:// Start Date Time | Max Date {MAX([Start Date Time])}
Hier verwenden wir eine LOD-Berechnung, um das maximale Datum in unserem Datensatz zu berechnen. Wir werden dieses Datum überwachen, damit wir wissen, wann wir unsere Tabelle aktualisieren müssen. So kannst du relevante Zeiträume dynamisch berechnen. Du musst nur den Start- und Endpunkt deiner dynamischen Tabelle finden. Berechnen wir zunächst den letzten Tag des letzten vollen Monats und rufen die Berechnung auf
[Last Day of Last Full Month]
:// Last Day of Last Full Month DATETRUNC("month", [Start Date Time | Max Date] + 1) - 1
Verwende diese Formel, um einen Booleschen Wert zu erstellen, mit dem du die Daten des aktuellen Monats filtern kannst - der noch nicht vollständig ist. Erstellen Sie eine Formel namens
[Start Date Time | Full Months]
:// Start Date Time | Full Months [Start Date Time] <= [Last Day of Last Full Month]
Füge diese Berechnung zu den Filtern hinzu und wähle Wahr.
Filtere diese Visualisierung auf die letzten 13 vollständigen Monate herunter. Erstelle eine neue Berechnung namens
[Start Date Time | Last 13 Months]
://Start Date Time | Last 13 Months [Start Date Time] > DATEADD("month", -12, [Last Day of Last Full Month] + 1) - 1
Platziere diese Berechnung links von [Startdatum Uhrzeit | Monat]. Klicke mit der rechten Maustaste auf die Falsche Überschrift und wähle Ausblenden. Deaktiviere dann die Option Kopfzeile anzeigen aus demselben Menü(Abbildung 4-25).
Schließe die Tabellenberechnungen ab, indem du die Tabellenberechnungen [Anrufe/Tag | % Änderung 1] und [Anrufe/Tag | % Änderung 12] in der Karte [Messwerte] bearbeitest, so dass nur [Anrufgrund] abgewählt ist, wie in Abbildung 4-26 dargestellt.
Achte darauf, dass du sowohl die Berechnungen für den Monat als auch für das Jahr als Prozentsatz formatierst. Klicke abschließend mit der rechten Maustaste und bearbeite den Alias(Abbildung 4-27). Ändere [Change Calls/Day | % Change 1] in MoM (month-over-month) und ändere [Calls/Day | % Change 12] in YoY (year-over-year).
Das Ergebnis all dieser Arbeit (siehe Abbildung 4-22) ist eine bescheidene Tabelle, die viele tolle Einblicke bietet und jeden Monat automatisch aktualisiert wird.
Meistens verbringen wir als Entwickler sehr wenig Zeit damit, darüber nachzudenken, was ein Jahr, ein Monat oder eine Woche überhaupt bedeutet. Wir nehmen einfach an, dass ein Jahr vom 1. Januar bis zum 31. Dezember geht. Aber wenn es um Organisationen geht, wird ein Geschäftsjahr auf viele Arten definiert. Der nächste Abschnitt gibt einen kurzen Überblick über die Arbeit mit fiskalischen Daten in Tableau.
Nicht-Standard-Kalender
Ein Steuerjahr kann jederzeit beginnen; es kann der 1. Januar, der 5. Juni oder sogar der fünfte Montag des normalen Kalenderjahres sein. Es ist alles relativ. Tableau bietet eine gewisse Flexibilität.
Wenn dein Kalenderjahr am Anfang eines Monats beginnt, kannst du dies standardisieren, indem du mit der rechten Maustaste klickst und dann zu Standardeigenschaften → Geschäftsjahresbeginn → Monat des Geschäftsjahres navigierst(Abbildung 4-28). Dies vereinfacht die Hierarchie, die mit dieser bestimmten Datumsmaßnahme verbunden ist.
Einige Organisationen arbeiten mit dem Gregorianischen Kalender als Geschäftsjahr: 1. Januar bis 31. Dezember. Andere Organisationen hingegen beginnen das Geschäftsjahr oder den Monat am ersten Tag der Woche, in der der Monat beginnt. Wenn also der 1. Januar auf einen Dienstag fällt, beginnt das Steuerjahr am 30. Dezember. Dieser Kalendertyp wird ISO-8601 genannt. Auch wenn der Name komisch klingt, solltest du wissen, dass der Kalender wochenbasiert ist. Du kannst den Kalendertyp festlegen, indem du mit der rechten Maustaste auf den Datumswert in deiner Ansicht klickst und ISO-8601 Wochenbasiert wählst. (In diesem Abschnitt nennen wir ihn einfach ISO-Kalender.)
In den Abbildungen 4-29 und 4-30 kannst du sehen, wie sich die Daten eines Standardkalenders geringfügig von denen eines ISO-Kalenders unterscheiden können.
Strategie: Erstelle ein monatliches Balkendiagramm mit dem 1. Juni als Beginn des Geschäftsjahres
Nehmen wir uns eine Sekunde Zeit, um eine Visualisierung mit dem Beginn des Geschäftsjahres im Juni zu erstellen. Um es einfach zu halten, stell dir vor, du erstellst ein Balkendiagramm, das den Gesamtumsatz nach Monat und Geschäftsjahr zeigt. Du wirst Abbildung 4-31 nachbilden:
Verbinde dich mit dem Sample - Superstore Dataset.
Dupliziere das Feld [Bestelldatum] und nenne es
[Order Date | June]
.Klicke mit der rechten Maustaste auf [Bestelldatum | Juni] und ändere den Standardbeginn des Geschäftsjahres auf Juni.
Füge [Bestelldatum | Juni] als kontinuierlichen Datenwert nach Monat zu Spalten hinzu.
Füge
SUM([Sales])
zu den Zeilen hinzu.Füge YEAR([Bestelldatum | Juni]) zu Farbe hinzu.
Ändere die Art der Markierung in Balken.
Klicke mit der rechten Maustaste auf den Balken für September 2016 und füge der Markierung eine Anmerkung hinzu, die das Datum und den Gesamtumsatz anzeigt.
Visualisierung des 4-5-4 Kalenders: Office Essentials Fallstudie
Unser großes Einzelhandelsgeschäft, OE, hat sich auf Datenmetriken verlassen, die an ein Kalenderjahr gebunden sind. Das Unternehmen möchte einige seiner Standardberichte umgestalten, damit sie nun einem 4-5-4-Kalender folgen. Wie würdest du diese Aufgabe erledigen?
Einzelhändler verwenden oft den 4-5-4-Kalender. Mit diesem Kalender können sie ihre Umsätze vergleichen, indem sie das Jahr in Monate unterteilen, die auf einem sich wiederholenden Vier-Wochen-, Fünf-Wochen- und Vier-Wochen-Rhythmus basieren. Einzelhändler verwenden diesen Kalender, weil die Feiertage in der Regel übereinstimmen und weil in vergleichbaren Monaten die gleiche Anzahl von Samstagen und Sonntagen angezeigt wird. Der 4-5-4-Verkaufskalender ist nicht perfekt: Da der Kalender auf 52 Wochen oder 364 Tagen basiert, bleibt jedes Jahr ein zusätzlicher Tag übrig, der berücksichtigt werden muss. Um dies auszugleichen, wird alle fünf bis sechs Jahre eine Woche zum Steuerkalender hinzugefügt. Das war 2012 und 2017 der Fall und wird 2023 wieder geschehen.
Das 4-5-4-Kalenderjahr variiert von Jahr zu Jahr. Wenn der 1. Februar auf einen Donnerstag, Freitag oder Samstag fällt, beginnt das Kalenderjahr am Sonntag nach dem 1. Februar. Fällt der 1. Februar auf einen Sonntag, Montag, Dienstag oder Mittwoch, beginnt das Kalenderjahr am Sonntag in der Woche nach dem 1. Februar.
Die nächste Strategie konzentriert sich auf die Erstellung von Terminkomponenten für den 4-5-4-Einzelhandelskalender. Dazu gehören die Woche des Jahres, der Monat des Jahres, das Quartal des Jahres und die Woche des Quartals. Nachdem du die Komponenten erstellt hast, wirst du eine Visualisierung erstellen, die einige dieser Berechnungen verdeutlicht.
Strategie: Erstelle ein Balkendiagramm mit dem 4-5-4 Handelskalender
Erstelle eine Berechnung, die den 1. Februar berechnet. Rufe die Berechnung auf
[Feb 1]
:// Feb 1 DATEADD("month", 1, DATETRUNC("year", [Order Date]))
Berechne den Beginn des Kalenderjahres anhand der Frage, ob der 1. Februar nach einem Mittwoch in der Woche liegt. Nenne die Berechnung
[454 Year Start]
:// 454 Year Start IF DATEPART('weekday', [Feb 1]) > 4 THEN DATETRUNC('week', DATEADD('week', 1, [Feb 1])) ELSE DATETRUNC('week', [Feb 1]) END
Bestimme den Beginn des 4-5-4-Kalenderjahres für das Vorjahr, indem du den 1. Februar für das Vorjahr berechnest. Nenne die Berechnung
[Feb 1 | PY]
:// Feb 1 | PY DATEADD('year', -1, DATEADD("month", 1, DATETRUNC("year", [Order Date])))
Berechne den Beginn des vorherigen Kalenderjahres. Wir werden diese Berechnung mit den Werten des aktuellen Jahres verwenden, um die Wochennummer des Kalenderjahres zu bestimmen. Beschrifte die Berechnung
[454 Prior Year Start]
:// 454 Prior Year Start IF DATEPART('weekday', [Feb 1 | PY]) > 4 THEN DATETRUNC('week', DATEADD('week', 1, [Feb 1 | PY])) ELSE DATETRUNC('week', [Feb 1 | PY]) END
Analysiere die Handelswochen des Jahres:
// Retail Week IF [454 Year Start] <= [Order Date] THEN DATEDIFF('week', [454 Year Start], [Order Date]) + 1 ELSE ({FIXED [Feb 1] : MAX(DATEDIFF('week', [454 Prior Year Start], DATETRUNC('year',[454 Year Start])))} + DATEPART('week', [Order Date]) ) END
Jetzt, wo du die Woche hast, kannst du Komponenten wie Einzelhandelsquartal, Einzelhandelsmonat des Quartals, Einzelhandelswoche des Quartals, Einzelhandelsmonat und Einzelhandelswoche des Monats erstellen. Erstelle jede dieser Berechnungen:
//Retail Quarter FLOOR(([Retail Week]-1)/13)+1 //Retail Week of Quarter (([Retail Week] - 1) % 13) + 1 // Retail Month of Quarter IF [Retail Week of Quarter] <= 4 THEN 1 ELSEIF [Retail Week of Quarter] > 4 AND [Retail Week of Quarter] <= 9 THEN 2 ELSEIF [Retail Week of Quarter] > 9 AND [Retail Week of Quarter] <= 13 THEN 3 END //Retail Month IF [Retail Week] <= 4 THEN "February" ELSEIF [Retail Week] > 4 AND [Retail Week] <= 9 THEN "March" ELSEIF [Retail Week] > 9 AND [Retail Week] <= 13 THEN "April" ELSEIF [Retail Week] > 13 AND [Retail Week] <= 17 THEN "May" ELSEIF [Retail Week] > 17 AND [Retail Week] <= 22 THEN "June" ELSEIF [Retail Week] > 22 AND [Retail Week] <= 26 THEN "July" ELSEIF [Retail Week] > 26 AND [Retail Week] <= 30 THEN "August" ELSEIF [Retail Week] > 30 AND [Retail Week] <= 35 THEN "September" ELSEIF [Retail Week] > 35 AND [Retail Week] <= 39 THEN "October" ELSEIF [Retail Week] > 39 AND [Retail Week] <= 43 THEN "November" ELSEIF [Retail Week] > 43 AND [Retail Week] <= 48 THEN "December" ELSEIF [Retail Week] > 48 AND [Retail Week] <= 52 THEN "January" END // Retail Week of Month IF [Retail Week of Quarter] <= 4 THEN [Retail Week of Quarter] ELSEIF [Retail Week of Quarter] > 4 AND [Retail Week of Quarter] <= 9 THEN [Retail Week of Quarter] - 4 ELSEIF [Retail Week of Quarter] > 9 AND [Retail Week of Quarter] <= 13 THEN [Retail Week of Quarter] - 9 END
All diese Berechnungen sind für jede Visualisierung, die einen Einzelhandelskalender verwendet, äußerst nützlich. Lass uns eine Visualisierung erstellen, mit der wir den Einzelhandelskalender präsentieren wollen.
Füge eine diskrete Dimension [Einzelhandelsmonat des Quartals] zu den Spalten hinzu. Füge eine diskrete Dimension [Einzelhandelsquartal] zu den Zeilen hinzu. Füge [Retail Week of Month] als kontinuierliche Dimension zu den Zeilen hinzu. Füge 0,0 als kontinuierliche Ad-hoc-Dimension rechts von [Einzelhandelswoche des Monats] hinzu. Erstelle eine synchronisierte Doppelachse.
Füge die Details wie folgt hinzu:
Setze die Markierungskarte von [Retail Week of Month] auf ein Balkendiagramm. Füge
[Profit Ratio] * (SUM([Profit])/SUM([Sales]))
zu Farbe hinzu. FügeSUM([Sales])
und die kontinuierliche Dimension von [Einzelhandelswoche] zu Text hinzu. Formatiere den Text so, dass er wie in Abbildung 4-32 dargestellt aussieht.Setze auf der Karte Markierungen des Werts 0,0 den Markierungstyp auf Text. Füge [Verkaufsmonat] zu Text hinzu.
Für den letzten Teil müssen wir einen Wert in die Spalten eingeben, der beide Achsen steuert. Erstelle eine Berechnung namens
[bar]
und füge sie zu Columns hinzu:// bar IF COUNTD([Retail Week]) = 1 THEN SUM([Sales])/WINDOW_MAX(SUM([Sales])) ELSE .9 END
Diese Berechnung zeigt die Umsätze als Prozentsatz des maximalen Umsatzes für eine Verkaufswoche für die Tafeln an und setzt eine Beschriftung jedes Bundeslandes auf 0,9. Ändere die Tabellenberechnung und wähle alle Werte aus, wie in Abbildung 4-33 gezeigt.
Lege den Bereich der Balkenachse zwischen 0 und 1,8 fest und blende die Achse dann aus. Drehe die Achse des Feldes [Verkaufswoche des Monats] um und blende die Achse dann aus.
Zum Schluss formatierst du das Diagramm nach deinen Designstandards.
Die resultierende Visualisierung ist in Abbildung 4-34 dargestellt.
Fazit
In diesem Kapitel haben wir nur die Spitze des Eisbergs der Datums- und Zeitangaben angekratzt. Weil Datums- und Zeitangaben von Natur aus hierarchisch sind und weil Datums- und Zeitangaben entweder als Dimensionen oder als Kennzahlen behandelt werden können, hat ein einzelnes Datumsfeld eine fast unbegrenzte Anzahl von Kombinationsmöglichkeiten.
In der Einleitung des Kapitels haben wir besprochen, wie wichtig es ist, den Unterschied zwischen einem Datumsteil und einem Datumswert zu verstehen. Mit Datumsteilen gibt Tableau eine einzelne Komponente eines Datums- oder Zeitfeldes zurück. Die zugrunde liegende Berechnung für Datumsteile ist die Funktion DATEPART()
.
In den ersten beiden Strategien haben wir gezeigt, wie man Teile eines Datums darstellen kann. Die Kombination mehrerer Datumsteile (in diesem Fall Stunde und Minute) kann dazu führen, dass zu viele diskrete Werte angezeigt werden.
Bei Datumswerten gibt Tableau ein Datum zurück, das auf den angegebenen Teil des Datums abgerundet ist. Das bedeutet, dass ein Datumsteil von Monat den Monatsnamen oder die Monatszahl zurückgibt, während ein Datumswert von Monat die Kombination aus Jahr und Monat zurückgibt. Die zugrunde liegende Berechnung für einen Datumswert ist die Funktion DATETRUNC()
.
Tableau macht aus Datumsteilen standardmäßig Dimensionen und aus Datumswerten kontinuierliche Werte. Das sind zwar die Standardwerte, aber wir können sie entweder in diskrete oder kontinuierliche Werte umwandeln. Die Wahl zwischen diskreten und kontinuierlichen Werten wirkt sich darauf aus, wie unsere Achsen aussehen und damit auch auf die Art des Diagramms, das wir am ehesten auswählen werden.
Die letzte Grundlage, die wir besprochen haben, war, dass Tableau deinem Publikum standardmäßig eine Datumshierarchie zur Verfügung stellt. Wenn du die Verfügbarkeit dieser Hierarchie einschränken möchtest, musst du ein benutzerdefiniertes Datum verwenden.
Für die meisten Menschen ist die Arbeit mit einer kontinuierlichen Achse intuitiver, denn so denken die Menschen über Zeit! Daher bietet sich die Wahl von Liniendiagrammen an. Eine Herausforderung bei der Arbeit mit Daten ist die Erstellung von kontinuierlichen Diagrammen für einen einzelnen Datumsabschnitt. Wir haben uns der Herausforderung gestellt, kontinuierliche Achsen zu erstellen. Bei jeder dieser Herausforderungen sind wir dazu übergegangen, Daten auf die nächste Sekunde des Tages, auf die nächsten 15 Sekunden und auf die nächsten 15 Minuten gerundet darzustellen.
Während Liniendiagramme - und gelegentlich auch Balkendiagramme - zwei gängige Methoden zur Visualisierung von Datums- und Zeitwerten sind, verwenden wir gerne Heatmaps (die nur in Tableau als Highlight-Tabellen bezeichnet werden). Liniendiagramme bieten nur eine begrenzte Möglichkeit, mehr als fünf Linienzu beschreiben - beimehr wird es selbst für die datenaffinste Zielgruppe schwierig, Muster zu interpretieren. Eine einfache Alternative zu Liniendiagrammen sind Heatmaps. Wir haben die Flexibilität dieses Diagrammtyps bei der Arbeit mit Datums- und Zeitfeldern hervorgehoben.
Eine weitere regelmäßige Herausforderung bei der Arbeit mit Datumsangaben ist der Vergleich von Vorjahren mit dem aktuellen Jahr bis heute. Wir haben dir eine Berechnung gezeigt, mit der du die bisherigen Jahreswerte eines beliebigen Datums berechnen kannst. Diese Berechnung kann in Aggregatberechnungen verwendet werden und dient dazu, ein Diagramm zu erstellen, das den Fortschritt zu einer Gesamtsumme zeigt. Wir haben dieselbe Year-to-date-Berechnung erweitert, um Liniendiagramme anzupassen und faire Vergleiche zu ermöglichen.
Wir haben uns auch angeschaut, wie du mit Hilfe von LOD und Tabellenberechnungen automatisierte Berichte erstellen kannst. Durch die Verwendung von diskreten Datumswerten und der Funktion LAST()
kannst du ganz einfach die letzten N Monate anzeigen. Wir haben auch gezeigt, wie du eine Tabellenberechnung verwenden kannst, um Berechnungen über den Monat und das Jahr hinweg durchzuführen.
Zum Abschluss des Kapitels haben wir über nicht-gregorianische Kalender gesprochen. Der gregorianische Kalender ist der Standard, aber einige Unternehmen haben Geschäftsjahre, die in anderen Monaten als dem Januar beginnen. Wir sind sogar über den traditionellen Kalender hinausgegangen und haben den 4-5-4-Kalender besprochen, der im Einzelhandel und bei Unternehmen, die Konsumgüter verpacken, üblich ist.
Im nächsten Kapitel geht es um Leistungskennzahlen (KPIs). KPIs sind eigenständige Messgrößen, die deine Zielgruppe nutzen kann, um das Tagesgeschäft zu steuern oder strategische Entscheidungen zu treffen. Während sich KPIs auf die Kennzahl selbst konzentrieren, werden sie oft durch einen bestimmten Zeitraum definiert. Wenn du dich mit den Datumsfeldern in Tableau vertraut gemacht hast, wird es dir leicht fallen, dynamische, automatisierte KPIs zu erstellen.
Get Tabelle Strategies now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.