Analyse mit dem zweiten Datum in Tableau Desktop

Dies ist die zweite Stufe des Tutorials. Dabei wird davon ausgegangen, dass Sie die erste Stufe Auffinden des zweiten Datums mit Tableau Prep abgeschlossen haben.

In der ersten Stufe haben wir den Original-Datensatz geformt, um die Antworten auf die folgenden Fragen zu finden:

  1. Wie lang war die Zeitspanne in Tagen zwischen dem ersten und zweiten Verstoß für die einzelnen Fahrer?

  2. Vergleichen Sie die Bußgelder für die ersten und zweiten Verstöße. Besteht zwischen den Beträgen eine Korrelation?

  3. Welcher Fahrer hat insgesamt am meisten bezahlt? Wer hat am wenigsten bezahlt?

  4. Wie viele Fahrer haben mehrere Verstöße begangen?

  5. Wie hoch war das durchschnittliche Bußgeld für Fahrer, die nie die Verkehrsschule besucht haben?

Während wir diese Fragen untersuchen, wird deutlich, dass es für die von uns erstellte erste Datenstruktur Pro und Kontra gibt. Wir wechseln zu Tableau Prep Builder zurück und nehmen einige zusätzliche Umformungen vor. Anschließend untersuchen wir deren Auswirkungen auf dieselbe Analyse in Tableau Desktop. Schlussendlich betrachten wir einen reinen Tableau Desktop-Ansatz für die Analyse. Dabei verwenden wir Detailgenauigkeitsausdrücke (LOD) mit den Originaldaten.

Das Ziel dieses Tutorials besteht darin, verschiedene Konzepte im Kontext eines realen Szenarios vorzustellen und die unterschiedlichen Möglichkeiten durchzuspielen. Es geht nicht darum, die beste Möglichkeit festzustellen. Am Ende des Tutorials sollten Sie ein besseres Verständnis für die Auswirkungen der Datenstruktur auf die Berechnung und Analyse haben und besser mit den verschiedenen Aspekten von Tableau Prep und den Berechnungen in Tableau Desktop vertraut sein.

Hinweis: Für die Bearbeitung der Aufgaben in diesem Tutorial muss Tableau Prep Builder und optional Tableau Desktop installiert sein, und die Daten müssen heruntergeladen werden.

Bevor Sie mit diesem Tutorial fortfahren, schlagen Sie im Tableau Desktop- und Tableau Prep-Bereitstellungshandbuch(Link wird in neuem Fenster geöffnet) Informationen zum Installieren von Tableau Prep und Tableau Desktop nach. Andernfalls können Sie die kostenlosen Testversionen von Tableau Prep(Link wird in neuem Fenster geöffnet) und Tableau Desktop(Link wird in neuem Fenster geöffnet) herunterladen.

Der Datensatz wird aus der Datei Driver Infractions.tflx ausgegeben, die in der ersten Stufe erstellt wurde.

Analyse in Tableau Desktop

Da wir unsere Daten konfiguriert haben, verschieben wir sie nun nach Tableau Desktop. Einige Fragen lassen sich leicht beantworten, während für andere einige (oder umfassende) Berechnungen erforderlich sind. Versuchen Sie sich an den folgenden Fragen. Bei Problemen können Sie sie erweitern, um grundlegende Informationen zur weiteren Vorgehensweise zu erhalten.

Hinweis: Sie können die Arbeitsmappe Driver Infractions.twbx(Link wird in neuem Fenster geöffnet) herunterladen, um sich die Lösungen im Kontext anzusehen. Bedenken Sie, dass es Alternativen zum Interpretieren der Analyse oder Suchen nach Antworten geben kann.

1. Wie lang war die Zeitspanne in Tagen zwischen dem ersten und zweiten Verstoß für die einzelnen Fahrer?
  1. Um diese Frage in Tableau Desktop zu beantworten, verwenden wir die Funktion DATEDIFF. Diese Funktion nutzt drei Argumente in Form des Datumsteils, des Startdatums und des Enddatums. Da wir wissen möchten, wie viele Tage zwischen diesen Ereignissen liegen, verwenden wir die Datumskomponente 'day'. Das Start- und Enddatum im Datensatz lautet Datum des 1. Verstoßes und Datum des 2. Verstoßes.

  2. Die Berechnung lautet:

    Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction Date], [2nd Infraction Date])

  3. Daraus können wir eine Darstellung anhand der Fahrer-ID als Balkendiagramm erstellen. Beachten Sie, dass für sieben Fahrer kein zweiter Verstoß vorlag. Demzufolge sind sieben Nullen vorhanden.

    Balkendiagramm der Fahrer nach Zeit zwischen den Verstößen

2. Vergleichen Sie die Bußgelder für die ersten und zweiten Verstöße. Besteht zwischen den Beträgen eine Korrelation?
  1. Um diese Frage in Tableau Desktop zu beantworten, erstellen wir ein Streudiagramm für das 1. Bußgeld und 2. Bußgeld. Durch das Verschieben der Fahrer-ID in den Container Detail auf der Karte Markierungen können wir für jeden Fahrer eine Markierung erstellen.

  2. Wenn Sie eine Trendlinie hinzufügen möchten, verwenden Sie die Registerkarte Analysen im linken Bereich, und stellen Sie eine lineare Trendlinie dar. Beim Zeigen mit der Maus auf die Trendlinie sehen wir, dass der Bestimmtheitsmaßwert praktisch null ist und dass der p-Wert weit über der signifikanten Obergrenze liegt. Wir stellen fest, dass zwischen dem ersten und zweiten Bußgeld keine Korrelation existiert.

    Bei der Verwendung dieses Streudiagramms in einem Dashboard sollte die Trendlinie entfernt werden.

Streudiagramm der Beträge der 1. und 2. Geldbuße nach Fahrer-ID, mit der QuickInfo der Trendlinie

3. Welcher Fahrer hat insgesamt am meisten bezahlt? Wer hat am wenigsten bezahlt?

Wenn wir die Analyse detaillierter betrachten möchten, müssen wir möglicherweise einige Berechnungen anstellen.

  1. Um diese Frage in Tableau Desktop zu beantworten, müssen wir die Bußgelder für beide Verstöße in einem einzelnen Feld hinzufügen. Da für einige Fahrer möglicherweise kein zweiter Verstoß vorliegt, müssen wir die Null-Null-Funktion ZN verwenden, um jegliche Nullen für das 2. Bußgeld in Nullwerte zu konvertieren. Andernfalls führt dies zu Nullen, wenn es keine zweite Geldstrafe gibt.

  2. Die Berechnung lautet:

    Bezahlter Gesamtbetrag = [1st Fine Amount] + ZN([2nd Fine Amount])

  3. Wir können den Wert für Bezahlter Gesamtbetrag anhand der Fahrer-ID darstellen und das Balkendiagramm sortieren.

Balkendiagramm des gezahlten Betrags nach Fahrer-ID, wobei der Berechnungseditor für den gezahlten Betrag angezeigt wird

4. Wie viele Fahrer haben mehrere Verstöße begangen?
  1. Um diese Frage in Tableau Desktop zu beantworten, müssen wir eine raffiniertere Berechnung vom Typ IF ausführen, um zu vergleichen, ob die Typen des ersten und zweiten Verstoßes identisch sind. Ist dies der Fall, weisen wir den Wert "1" zu. Wenn sie nicht identisch sind, weisen wir den Wert "2" zu. Da uns nur Typen mit mehreren Verstößen wichtig sind, wird jedem anderen Ergebnis, z. B. einem zweiten Verstoßtyp mit dem Wert null, der Wert "1" zugewiesen.

  2. Die Berechnung lautet:

    Anzahl Verstoßtypen =

    IF [1st Infraction Type]=[2nd Infraction Type] THEN 1 
    ELSEIF [1st Infraction Type]!= [2nd Infraction Type] THEN 2 
    ELSE 1 END
  3. Wir können den Wert für Anzahl Verstoßtypen anhand der Fahrer-ID darstellen und das Balkendiagramm sortieren.

Balkendiagramm der Anzahl der Übertretungsarten nach Fahrer-ID, wobei der Berechnungseditor für die Anzahl der Übertretungsarten angezeigt wird

5. Wie hoch war das durchschnittliche Bußgeld für Fahrer, die nie die Verkehrsschule besucht haben?
  1. Um diese Frage in Tableau Desktop zu beantworten, reicht es nicht aus, den Bußgeld-Gesamtbetrag einfach durch zwei zu teilen, da einige Fahrer nur einen Verstoß begangen haben. Wir können auch nicht das durchschnittliche Bußgeld pro Fahrer berechnen und den Durchschnitt dieser Werte verwenden, weil die Durchschnittsbestimmung von Durchschnittswerten zu Inkonsistenzen führen kann. Stattdessen müssen wir den bezahlten Gesamtbetrag von Fahrern berechnen, die nie eine Verkehrsschule besucht haben. Anschließend teilen wir diesen Wert durch die Gesamtzahl Verstöße, die mit diesen Bußgeldern in Verbindung steht.

    1. Zuerst müssen wir bestimmen, ob für die einzelnen Fahrer ein zweiter Verstoß vorliegt. Dabei können wir auf die Tatsache zurückgreifen, dass die Informationen in allen "2." Feldern null sind, wenn kein zweiter Verstoß vorliegt, und wir können mit der Erstellung der Berechnung beginnen.

      IFNULL([2nd Infraction Type], 'no')

      Dies gibt entweder einen Verstoßtyp (sofern vorhanden) oder "nein" zurück, wenn kein zweiter Verstoß vorlag.

    2. Als Nächstes müssen wir diese Information in die Anzahl Verstöße (1 oder 2) konvertieren. Wenn das Ergebnis unserer Berechnung vom Typ IFNULL "nein" lautet, sollte der Fahrer mit einem Bußgeld markiert werden. Alle anderen Ergebnisse sollen mit zwei Bußgeldern markiert werden. Die Berechnung lautet:

      Anzahl Verstöße =

      IF IFNULL([2nd Infraction Type], 'no') = 'no' THEN 1 
      ELSE 2 
      END
    3. Nun müssen wir den Bußgeld-Gesamtwert betrachten. Ähnlich wie bei Frage 3 oben fügen wir die ersten und zweiten Bußgeldbeträge hinzu und schließen den zweiten Betrag in eine ZN-Funktion ein. Da diese Berechnung jedoch auf Ebene des gesamten Datensatzes erfolgen soll, hat es sich bewährt, die Aggregationen, SUM, in der Berechnung selbst anzugeben. Die Berechnung lautet: 

      SUM([1st Fine Amount]) + SUM( ZN([2nd Fine Amount]) )

    4. Um es auf den Punkt zu bringen, teilen wir diesen Bußgeld-Gesamtwert durch unser neues Feld Anzahl Verstöße, um den durchschnittlichen Bußgeldbetrag zu ermitteln:

      Durchschnittliches Bußgeld = ( SUM([1st Fine Amount]) + SUM( ZN([2nd Fine Amount]) ) ) / SUM([Number of Infractions])

  2. Wir müssen noch die Fahrer herausfiltern, die je eine Verkehrsschule besucht haben. Diese Informationen werden jedoch auch in zwei Feldern gespeichert.

    1. Tableau ist hinsichtlich numerischer Berechnungen sehr effizient. Wir drücken dies in Zahlen aus, um eine möglichst gute Leistung zu erzielen. Um diese beiden Felder zu kombinieren, erstellen wir für jedes eine Berechnung mit der Aussage "Ja = 1" und "Nein = 0" (null ist ebenfalls = 0 für Fahrer ohne zweiten Verstoß). Durch die Summierung der Ergebnisse dieser Berechnungen wird deutlich, dass ein Fahrer mit dem Gesamtwert 0 nie eine Verkehrsschule besucht hat (während der Wert 1 oder 2 angibt, wie oft ein Fahrer teilgenommen hat). Anschließend können wir die Ergebnisse filtern, um nur Fahrer mit dem Wert 0 beizubehalten.

    2. Zu diesem Zeitpunkt verwenden wir eine Anweisung vom Typ CASE anstatt IF. Ihre Funktion ist sehr ähnlich, sie unterscheidet sich jedoch in ihrer Syntax. Der Beginn der Berechnung sollte wie folgt aussehen:

      CASE [1st Traffic School]
      WHEN 'Yes' THEN 1
      WHEN 'No' THEN 
      ELSE 0
      END
    3. Anschließend tun wir dasselbe für die 2. Verkehrsschule. Wir können beide Komponenten in dieselbe Berechnung einfließen lassen, indem wir jede CASE-Anweisung in Klammern einschließen und zwischen ihnen ein Plus hinzufügen. Wenn wir einige der Zeilenumbrüche entfernen, sieht die Berechnung wie folgt aus:

      Anzahl Besuche einer Verkehrsschule =

      (CASE [1st Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END)
      +
      (CASE [2nd Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END)
      
    4. Wenn wir die Anzahl der Besuche einer Verkehrsschule in den Bereich "Dimensionen" des Bereichs Daten ziehen (über der Linie), werden die Werte 0–2 diskret.

    5. Wenn wir nun nach der Anzahl Besuche einer Verkehrsschule filtern, können wir einfach die 0 auswählen und sicher sein, dass wir die Fahrer erhalten, die nie eine Verkehrsschule besucht haben.

  3. Um die ursprüngliche Frage zu beantworten, verschieben wir Durchschnittliches Bußgeld in den Container Text auf der Karte Markierungen.

    Da wir die Aggregationen in die Berechnungen integriert haben, lautet die Aggregation im Feld AGG. Sie lässt sich nicht ändern. Dies entspricht den Erwartungen.

Ansicht des durchschnittlich gezahlten Betrags in einer einzigen Zahl, wobei der Berechnungseditor geöffnet ist, um die Anzahl der Fahrschulbesuche anzuzeigen

Vertiefung – Pivotierte Daten

Obwohl die Daten, mit denen wir arbeiten, gut für die Beantwortung von Fragen zum ersten und zweiten Verstoß strukturiert sind, ist dies nicht die empfohlene Standardstruktur für Tableau Desktop. Je mehr unsere Analyse von grundlegenden Fragen zu den Datumsangaben der Verstöße abweicht, desto komplizierter werden unsere Berechnungen, um die relevanten Informationen in hilfreicher Form zu kombinieren.

Wenn Daten mit mehreren Spalten für denselben Datentyp gespeichert (z. B. zwei Spalten für Datum, zwei Spalten für Bußgeld usw.) und eindeutige Informationen im Feldnamen gespeichert werden (z. B. ob es sich um den ersten oder zweiten Verstoß handelt), ist dies in der Regel ein Indiz dafür, dass die Daten pivotiert werden sollten.

Eine mehrfache Pivotierung in Tableau Prep Builder eignet sich dafür sehr gut. Wir können das Ende des Tableau Prep-Schemas Fahrerverstoß, der im vorherigen Tutorial Auffinden des zweiten Datums mit Tableau Prep erstellt wurde, als Grundlage für unsere Arbeit verwenden.

Tipp: Stellen Sie sicher, dass Sie sich für die nächsten Schritte wieder in Tableau Prep befinden.

  1. Fügen Sie im letzten Bereinigungsschritt einen Schritt vom Typ Pivotieren hinzu, der für jedes duplizierte Feld eine Pivotierung vornimmt. Mithilfe des Plus-Symbols in der oberen rechten Ecke des Bereichs Pivotierte Felder können Sie weitere Pivotwerte hinzufügen. Alle Feldsätze (z. B. 1. und 2. Bußgeldbetrag) sollten zusammen pivotiert werden.

    Weitere Informationen zum Pivotieren finden Sie unter Bereinigen und Formen von Daten.

  2. Doppelklicken Sie im Bereich "Pivotierte Felder" unter der Spalte Pivot1-Namen auf die einzelnen Werte, und benennen Sie sie in 1. und 2. um.

    Konfigurationsbereich von Pivot 1 in Tableau Prep mit den fünf Pivots

Durch Entfernen der Null-Datumsangaben und durch Umbenennen und Neuanordnen der Felder können die Ergebnisse bereinigt werden.

  1. Fügen Sie nach der Pivotierung einen Bereinigungsschritt hinzu. Klicken Sie in der Spalte Datum des Verstoßes mit der rechten Maustaste auf die Null-Leiste, und wählen Sie Ausschließen aus.

  2. Doppelklicken Sie auf den Feldnamen Pivot1 Namen, und benennen Sie ihn um in Verstoßnummer.

  3. Ziehen Sie die Felder ggf., um sie wie unten gezeigt neu anzuordnen:

    Vorschau der pivotierten und bereinigten Daten

  1. Erstellen Sie in den neuen pivotierten Daten eine Ausgabe mit der Bezeichnung Pivotierte Fahrerverstöße, und verschieben Sie sie nach Tableau Desktop. (Vergessen Sie nicht, nach dem Hinzufügen des Schritts Ausgabe das Schema auszuführen.)

Mit dieser pivotierten Datenstruktur können wir uns nun erneut unsere fünf Fragen ansehen. Sie können bei Problemen alle Fragen erweitern, um grundlegende Informationen zur weiteren Vorgehensweise anzuzeigen.

Hinweis: Sie können die fertige Schemadatei Pivoted Driver Infractions.tflx herunterladen, um Ihre Arbeit zu prüfen. Sie können auch die Arbeitsmappe Pivoted Driver Infractions.twbx herunterladen, um sich die Lösungen im Kontext anzusehen. Bedenken Sie, dass es Alternativen zum Interpretieren der Analyse oder Suchen nach Antworten geben kann.

1. Wie lang war die Zeitspanne in Tagen zwischen dem ersten und zweiten Verstoß für die einzelnen Fahrer?
  1. Um diese Frage in Tableau Desktop zu beantworten, verwenden wir wie bei der ersten Frage auch die Funktion DATEDIFF . Für diese Funktion sind ein Start- und Enddatum erforderlich. Diese Informationen sind zwar in unseren Daten vorhanden, sie befinden sich jedoch alle in einem Feld. Wir müssen sie herausziehen und in zwei Feldern anordnen.

    1. Erstellen Sie zwei vorläufige berechnete Felder:

      1. Verstoßdatum = IF [Infraction Number] = "1st" THEN [Infraction Date] END

      2. Verstoßdatum = IF [Infraction Number] = "2nd" THEN [Infraction Date] END

    2. Da wir sicherstellen möchten, dass beide Werte für den Vergleich der einzelne Fahrer zur Verfügung stehen, müssen wir sie auf der Ebene der Fahrer-ID korrigieren.

      Hinweis: Sie glauben mir nicht? Führen Sie eine Berechnung vom Typ DATEDIFF durch, und lassen Sie diese beiden Felder dabei unverändert: Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction Date], [2nd Infraction Date])
      Sie erhalten überall Null-Ergebnisse, da Tableau versucht, in einer Datenstruktur einen Vergleich vorzunehmen, der wie folgt aussieht:
      Texttabelle mit NULL-Ergebnissen
      Hier kennt die Zeile, die das erste Datum kennt, nicht das zweite Datum und umgekehrt. Um dies zu umgehen, verwenden wir einen LOD-Ausdruck vom Typ FIXED, um diese erste und zweite Datumsangabe nach Fahrer-ID in Verbindung zu bringen.

    3. Bearbeiten Sie die Berechnung wie folgt:

      1. Verstoßdatum = { FIXED [Driver ID] : MIN ( IF [Infraction Number] = "1st" THEN [Infraction Date] END ) }

      2. Verstoßdatum = { FIXED [Driver ID] : MIN ( IF [Infraction Number] = "2nd" THEN [Infraction Date] END ) }

      Hinweis: Beim Einbetten in einen LOD-Ausdruck muss die ursprüngliche IF-Berechnung aggregiert werden. Es kann eine beliebige einfache Aggregation verwendet werden, bei der der Datenwert erhalten bleibt (Aggregationen wie SUM, AVG oder MIN funktionieren, CNT oder CNTD jedoch nicht).

      Hinweis: Diese Berechnungen können auch in Tableau Prep Builder erstellt werden. Weitere Informationen zu LOD-Ausdrücken in Prep finden Sie unter Erstellen von Detailgenauigkeits-, Rang- und Kachelberechnungen.

    4. Nun können wir die Berechnung DATEDIFF wie folgt erstellen:

      Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction Date], [2nd Infraction Date])

      • Wenn Sie Wochen oder Monate untersuchen möchten, ändern Sie einfach die Datumskomponente (momentan 'day').

      • Es wäre auch möglich, eine einzelne Berechnung für alles zu erstellen, indem Sie die FIXED-Berechnungen direkt unter DATEDIFF platzieren: 

        DATEDIFF ( 'day',

        { FIXED [Driver ID] : MIN ( IF [Infraction Number] = "1st" THEN [Infraction Date] END ) },

        { FIXED [Driver ID] : MIN ( IF [Infraction Number] = "2nd" THEN [Infraction Date] END ) }

        )

    5. Stellen Sie Zeit zwischen Verstößen in Spalten und die Fahrer-ID in Zeilen dar.

Die Ergebnisse sind identisch mit der Ausgabe mit der nicht pivotierten Datenstruktur.

2. Vergleichen Sie die Bußgelder für die ersten und zweiten Verstöße. Besteht zwischen den Beträgen eine Korrelation?
  1. Um diese Frage in Tableau Desktop zu beantworten, verwenden wir eine sehr ähnliche Logik wie bei der vorherigen Frage. Mithilfe der Verstoßnummer bestimmen wir, ob es sich bei einer bestimmten Zeile um den ersten oder zweiten Verstoß handelt. Dann entnehmen wir den Bußgeldbetrag entsprechend.

    1. Wenn lediglich ein Streudiagramm erstellt werden soll, können wir den LOD-Teil überspringen und lediglich die Berechnung IF verwenden:

      1. Bußgeld = IF [Infraction Number] = "1st" THEN [Fine Amount] END

      2. Bußgeld = IF [Infraction Number] = "2nd" THEN [Fine Amount] END

    2. Wenn Sie jedoch den Betrag für das erste und zweite Bußgeld für einen einzelnen Fahrer vergleichen und den Unterschied anzeigen möchten, stehen wir vor demselben Null-Problem wie bei den Datumsangaben. Es kann nicht schaden, diese Berechnungen in einen LOD-Ausdruck vom Typ FIXED einzuschließen. Daher ist es eine gute Ideen, dies von vornherein zu tun:

      1. Bußgeld = { FIXED [Driver ID] : MIN ( IF [Infraction Number] = "1st" THEN [Fine Amount] END ) }

      2. Bußgeld = { FIXED [Driver ID] : MIN ( IF [Infraction Number] = "2nd" THEN [Fine Amount] END ) }

      Diese Berechnungen können auch in Tableau Prep Builder erstellt werden. Weitere Informationen zu LOD-Ausdrücken in Prep finden Sie unter Erstellen von Detailgenauigkeits-, Rang- und Kachelberechnungen.

    3. Erstellen Sie ein Streudiagramm mit dem 1. Bußgeld in Spalten und dem 2. Bußgeld in Zeilen und erstellen Sie eine lineare Trendlinie wie zuvor.

Die Ergebnisse sind identisch mit der Ausgabe mit der nicht pivotierten Datenstruktur.

3. Welcher Fahrer hat insgesamt am meisten bezahlt? Wer hat am wenigsten bezahlt?
  1. Für die Beantwortung dieser Frage in Tableau Desktop ist die pivotierte Datenstruktur ideal geeignet. Wir müssen lediglich die Fahrer-ID und den Bußgeldbetrag in ein Balkendiagramm überführen. Die Standard-Aggregation lautet bereits SUM, sodass der vom Fahrer gezahlte Gesamtbetrag automatisch dargestellt wird.

Die Ergebnisse sind identisch mit der Ausgabe mit der nicht pivotierten Datenstruktur.

4. Wie viele Fahrer haben mehrere Verstöße begangen?
  1. Für die Beantwortung dieser Frage in Tableau Desktop ist die pivotierte Datenstruktur ideal geeignet. Wir müssen lediglich die Fahrer-ID und eine Anzahl der Unterschiede für den Verstoßtyp als Balkendiagramm ausgeben und haben somit unsere Antwort.

Die Ergebnisse sind identisch mit der Ausgabe mit der nicht pivotierten Datenstruktur.

5. Wie hoch war das durchschnittliche Bußgeld für Fahrer, die nie die Verkehrsschule besucht haben?
  1. Um diese Frage in Tableau Desktop zu beantworten, reicht es nicht aus, den Bußgeld-Gesamtbetrag einfach durch zwei zu teilen, da einige Fahrer nur einen Verstoß begangen haben. Wir können auch nicht das durchschnittliche Bußgeld pro Fahrer berechnen und den Durchschnitt dieser Werte verwenden, weil die Durchschnittsbestimmung von Durchschnittswerten zu Inkonsistenzen führen kann. Stattdessen müssen wir den bezahlten Gesamtbetrag von Fahrern berechnen, die nie eine Verkehrsschule besucht haben. Anschließend teilen wir diesen Wert durch die Gesamtzahl Verstöße, die mit diesen Bußgeldern in Verbindung steht.

    1. Zuerst müssen wir bestimmen, ob für die einzelnen Fahrer ein zweiter Verstoß vorliegt. Dabei können wir auf die Tatsache zurückgreifen, dass das Datum des 2. Verstoßes null ist, wenn kein zweiter Verstoß vorliegt, und wir können mit der Erstellung der Berechnung beginnen:

      IFNULL(STR([2nd Infraction Date]), 'no')

      Dadurch wird entweder das Datum des zweiten Verstoßes (sofern vorhanden) oder "nein" zurückgegeben, wenn kein zweiter Verstoß vorlag.

      Hinweis: Der STR-Teil dieser Berechnung wird benötigt, weil für IFNULL der Datentyp in den zugehörigen Argumenten konsistent sein muss. Da für Nullwerte die Zeichenfolge "nein" zurückgegeben werden soll, müssen wir auch das Datum in eine Zeichenfolge konvertieren.

    2. Als Nächstes müssen wir diese Information in die Anzahl Verstöße (1 oder 2) konvertieren. Wenn das Ergebnis unserer Berechnung vom Typ IFNULL "nein" lautet, sollte der Fahrer mit einem Bußgeld markiert werden. Alle anderen Ergebnisse sollen mit zwei Bußgeldern markiert werden. Die Berechnung lautet:

      Anzahl Verstöße =

      IF IFNULL(STR([2nd Infraction Date]), 'no')= 'no' THEN 1 
      ELSE 2 
      END
      
    3. Nun müssen wir den durchschnittlichen Bußgeldbetrag betrachten. Wir verfügen bereits über ein einzelnes Feld für den Bußgeldbetrag. Wir müssen dieses lediglich durch das neue Feld Anzahl Verstöße teilen und dabei beide Felder in SUM einschließen: 

      Durchschnittliches Bußgeld = (SUM([Fine Amount]) / SUM([Number of Infractions])

  2. Zudem müssen wir die Fahrer herausfiltern, die eine Verkehrsschule besucht haben. Es sieht so aus, als könnten wir das Feld Verkehrsschule verwenden und nach Verkehrsschule = nein filtern. Dies würde jedoch nach Verstößen filtern, die nicht mit der Verkehrsschule verbunden sind, und nicht nach Fahrern, die nie eine Verkehrsschule besucht haben. Wenn ein Fahrer wegen eines Verstoßes in die Verkehrsschule ging, aber nicht wegen des anderen, soll an dieser Stelle keiner der beiden Verstöße berücksichtigt werden – dieser Fahrer war in der Verkehrsschule und passt daher nicht zu den Parametern der Frage.

    Wir möchten also die Fahrer herausfiltern, die eine Verkehrsschule besucht haben. Hinsichtlich der Daten möchten wir die Fahrer herausfiltern, für die in einer beliebigen Zeile ein "Ja" für Verkehrsschule angezeigt wird (unabhängig davon, mit welchem Verstoß sie verknüpft ist). Wir sollten unsere Berechnung mithilfe einer einfachen Ansicht stufenweise erstellen, um die Ereignisse verfolgen zu können:

    1. Zunächst möchten wir wissen, ob bei einem Fahrer für die Verkehrsschule ein "Ja" angezeigt wird. Ziehen Sie die Fahrer-ID zu Zeilen und Verkehrsschule zu Spalten. Wir erhalten eine Texttabelle mit dem Platzhaltertext "Abc", der die relevanten Werte für die einzelnen Fahrer angibt.

    2. Als Nächstes möchten wir eine Berechnung erstellen, die angibt, ob der Wert für Verkehrsschule "Ja" lautet. Die erste Stufe der Berechnung lautet wie folgt:

      An Verkehrsschule teilgenommen = CONTAINS([Traffic School), 'Yes')

      Wenn wir An Verkehrsschule teilgenommen in den Container Farbe auf der Karte Markierungen verschieben, stellen wir fest, dass die Beschriftung für jede Markierung in der Spalte "Nein" richtigerweise „False" und für alle Markierungen in der Spalte "Ja" richtigerweise "True" lautet.

    3. Wir möchten jedoch diese Informationen auf Ebene des Fahrers und nicht auf Ebene des Verstoßes anzeigen. Bei einem Berechnungsversuch eines Ergebnisses mit einer anderen Detailgenauigkeit als der Basisstruktur der Daten liegt die Verwendung eines LOD-Ausdrucks nahe. Wir verwenden dafür einen LOD-Ausdruck vom Typ FIXED . Wir wissen jedoch, dass der Teil mit dem Aggregationsausdruck einer Detailgenauigkeit aggregiert werden muss. Zuvor haben wir MIN verwendet. Ob dies hier funktioniert? Wir ändern die Berechnung wie folgt: 

      An Verkehrsschule teilgenommen = { FIXED [Driver ID] : MIN( CONTAINS([Traffic School], 'Yes'))}

      Eine Ansicht der Fahrer-ID nach Fahrschule, mit besuchter Fahrschule in Farbe

      Wenn wir diese Änderung auf die Ansicht anwenden, erreichen wir das Gegenteil von dem, was wir beabsichtigt haben. Fahrer mit einem "Nein" werden durchweg als "False" markiert. Stattdessen möchten wir für jeden Datensatz des jeweiligen Fahrers das "Ja" als "True" anzeigen. Was bewirkt MIN in dieser Situation? Die erste Antwort wird in alphabetischer Reihenfolge ausgewählt, demzufolge ist sie "Nein".

    4. Wie verhält es sich, wenn wir stattdessen MAX verwenden? Würde dadurch die letzte Antwort in alphabetischer Reihenfolge ausgewählt werden? Wir ändern die Berechnung wie folgt: 

      An Verkehrsschule teilgenommen = { FIXED [Driver ID] : MAX ( CONTAINS( [Traffic School], 'Yes') ) }

      Eine Ansicht der Fahrer-ID nach Fahrschule, mit besuchter Fahrschule in Farbe

      Jetzt wird es deutlich: Wenn die Daten eines Fahrers ein "Ja" enthalten, werden sie für den Besuch einer Verkehrsschule mit "True" markiert. Dies ist selbst für den Verstoß der Fall, der nicht mit einer Verkehrsschule in Zusammenhang steht.

    5. Wenn wir An Verkehrsschule teilgenommen in den Container Filter verschieben und nur "False" auswählen, bleiben lediglich die Fahrer übrig, die noch nie eine Verkehrsschule besucht haben.

  3. Um die ursprüngliche Frage zu beantworten, verschieben wir Durchschnittliches Bußgeld bei aktiviertem Filter in den Container Text auf der Karte Markierungen. Da wir die Aggregationen in die Berechnungen integriert haben, lautet die Aggregation im Feld AGG. Sie lässt sich nicht ändern. Dies entspricht den Erwartungen.

Die Ergebnisse sind identisch mit der Ausgabe mit der nicht pivotierten Datenstruktur.

Vorteile von pivotierten Daten

Wenn wir wissen, dass wir lediglich Fragen beantworten müssen, auf die sich die Antwort mit dieser Struktur problemlos finden lässt, könnten wir die Original-Datenstruktur aus dem Tutorial beibehalten. Das pivotierte Datenformat ist jedoch flexibler. Obwohl dafür einige Berechnungen erforderlich sind, eignet sich der resultierende Datensatz nach deren Konfiguration gut, um erweiterte Fragestellungen zu beantworten.

Weitere Vertiefung – Nur Berechnungen

Wie verhält es sich, wenn Sie keinen Zugriff auf Tableau Prep Builder haben? Haben Sie schlichtweg Pech, wenn Sie nur die Originaldaten zur Verfügung haben? Keineswegs!

Mithilfe von Tableau Desktop und LOD-Ausdrücken lassen sich alle analytischen Fragestellungen beantworten. Wenn wir eine Verbindung zu der Originaldatei Traffic Violations.xlsx(Link wird in neuem Fenster geöffnet) herstellen, ähnelt dies stark dem pivotierten Datensatz – nur dass das wichtige Feld mit der Verstoßnummer fehlt. Daher müssen wir das Ergebnis der Aggregationsschritte über LOD-Ausdrücke imitieren.

Hinweis: Sie können die Arbeitsmappe LOD Driver Infractions.twbx(Link wird in neuem Fenster geöffnet) herunterladen, um sich die Lösungen im Kontext anzusehen. Bedenken Sie, dass es Alternativen zum Interpretieren der Analyse oder Suchen nach Antworten geben kann.

1. Wie lang war die Zeitspanne in Tagen zwischen dem ersten und zweiten Verstoß für die einzelnen Fahrer?
  1. Um diese Frage in Tableau Desktop zu beantworten, verwenden wir erneut die Funktion DATEDIFF . Für diese Funktion sind ein Start- und Enddatum erforderlich. Diese Informationen sind zwar in unseren Daten vorhanden, sie befinden sich jedoch alle in einem Feld. Wir müssen sie herausziehen und in zwei Feldern anordnen. Da wir sicherstellen möchten, dass beide Werte für den Vergleich der einzelne Fahrer zur Verfügung stehen, müssen wir sie auf der Ebene der Fahrer-ID korrigieren.

    1. Wir verwenden die folgende Berechnung, um nach dem Datum des ersten Verstoßes zu suchen:

      1. Verstoß = { FIXED [Driver ID] : MIN ( [Infraction Date] ) } 

    2. Um das Datum des zweiten Verstoßes kümmern wir uns schrittweise.

      1. Zunächst müssen wir die Datumsangaben untersuchen, die größer als das erste Datum sind:

        IF [Infraction Date] > [1st Infraction] THEN [Infraction Date] END

      2. Dadurch erhalten wir jedoch alle Verstöße nach dem ersten, und wir möchten nur den zweiten Verstoß. Es geht also um den kleinsten Wert dieser Datumsangaben. Schließen Sie den gesamten Ausdruck in MIN ein:

        MIN( IF [Infraction] : [1st Infraction] THEN [Infraction Date] END )

      3. Außerdem möchten wir für jeden Fahrer das Datum des zweiten Verstoßes erneut berechnen. Hier kommen LOD-Ausdrücke ins Spiel. Wir nehmen auf Ebene der Fahrer-ID Korrekturen vor:

        2. Verstoß = { FIXED [Driver ID] : MIN ( IF [Infraction Date] > [1st Infraction] THEN [Infraction Date] END ) }

    3. Nun können wir die Berechnung DATEDIFF erstellen:

      Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction], [2nd Infraction])

Die Ergebnisse sind identisch mit den Ergebnissen, die mit den anderen beiden Datenstrukturen erzielt wurden.

2. Vergleichen Sie die Bußgelder für die ersten und zweiten Verstöße. Besteht zwischen den Beträgen eine Korrelation?
  1. Um diese Frage in Tableau Desktop zu beantworten, verwenden wir eine ähnliche Logik wie bei der pivotierten Datenversion dieser Frage. Mithilfe der für Frage 1 erstellten Felder 1. Verstoß und 2. Verstoß bestimmen wir, ob es sich bei einer bestimmten Zeile um den ersten oder zweiten Verstoß handelt. Dann entnehmen wir den Bußgeldbetrag entsprechend.

    1. Wenn lediglich ein Streudiagramm erstellt werden soll, können wir den LOD-Teil überspringen und lediglich eine Berechnung vom Typ IF verwenden:

      1. Bußgeld = IF [1st Infraction] = [Infraction Date] THEN [Fine Amount] END

      2. Bußgeld = IF [2nd Infraction] = [Infraction Date] THEN [Fine Amount] END

    2. Wenn Sie jedoch den Betrag für das erste und zweite Bußgeld für einen einzelnen Fahrer vergleichen und den Unterschied anzeigen möchten, bekommen wir wie bei der ersten Datenstruktur Probleme mit den Nullen. Es kann nicht schaden, diese Berechnungen in einen LOD-Ausdruck vom Typ FIXED einzuschließen. Daher ist es eine gute Ideen, dies von vornherein zu tun:

      1. Bußgeld = { FIXED [Driver ID] : MIN ( IF [1st Infraction] = [Infraction Date] THEN [Fine Amount] END ) }

      2. Bußgeld = {FIXED [Driver ID] : MIN( IF [2ndInfraction] = [Infraction Date] THEN [Fine Amount] END ) }

Die Ergebnisse sind identisch mit den Ergebnissen, die mit den anderen beiden Datenstrukturen erzielt wurden.

3. Welcher Fahrer hat insgesamt am meisten bezahlt? Wer hat am wenigsten bezahlt?
  1. Um diese Frage in Tableau Desktop zu beantworten, müssen wir zunächst etwas über die reine LOD-Methode wissen. Beide Methoden greifen auf gefilterte Tableau Prep-Datensätze zurück, bei denen es sich nicht um den ersten oder zweiten Verstoß für einen Fahrer handelt. Die LOD-Methode in Tableau Desktop behält alle Datensätze bei. Wenn wir eine Visualisierung von SUMME(Bezahlter Betrag) nach Fahrer-ID erstellen, würde die reine Tableau Desktop-Version demnach höhere Beträge für Fahrer mit mehr als zwei Verstößen anzeigen. Um einen Wert für Bezahlter Gesamtbetrag aus allen Daten zu erhalten, der mit den anderen Methoden übereinstimmt, müssen wir nicht das Originalfeld Bußgeldbetrag verwenden, sondern stattdessen wie bei der ersten Datenstruktur das erste und zweite Bußgeld addieren.

  2. Mit den Feldern, die wir für Frage 2 erstellt haben, addieren wir die beiden Bußgeldbeträge. ZN ist notwendig, um ein Nullergebnis für alle Fahrer zu verhindern, die nur einen Verstoß aufweisen. Die Berechnung lautet: 

    Bezahlter Gesamtbetrag = [1st Fine Amount] + ZN([2nd Fine Amount])

Die Ergebnisse sind identisch mit den Ergebnissen, die mit den anderen beiden Datenstrukturen erzielt wurden.

4. Wie viele Fahrer haben mehrere Verstöße begangen?
  1. Um diese Frage in Tableau Desktop zu beantworten, sind Fahrer-ID und Anzahl der Unterschiede für den Verstoßtyp nicht ausreichend. Da dieser Datensatz Verstöße enthält, die über den zweiten hinausgehen, können für einige Fahrer mehr als zwei Verstoßtypen vorliegen. Um die Ergebnisse den anderen Methoden zuzuordnen, müssen wir den Umfang auf die ersten beiden Verstöße beschränken.

  1. Dazu können wir den 1. und 2. Verstoßtyp entnehmen, in LOD-Ausdrücke einschließen, um ihn für den Fahrer auf FIXED festzulegen, und anschließend eine Berechnung vom Typ IF verwenden, um die Typen zu zählen:

    1. 1. Verstoßtyp = { FIXED [Driver ID] : MIN ( IF [1st Infraction] = [Infraction Date] THEN [Infraction Type] END ) }

    2. 2. Verstoßtyp = { FIXED [Driver ID] : MIN ( IF [2nd Infraction] = [Infraction Date] THEN [Infraction Type] END ) }

    3. Anzahl Verstoßtypen =

      IF [1st Infraction Type] = [2nd Infraction Type] THEN 1 
      ELSEIF [1st Infraction Type] != [2nd Infraction Type] THEN 2
      ELSE 1 END 

      Hinweis: Sie können auch mehrere dieser Berechnungen als einzelnes Feld erstellen, indem Sie die ersten Berechnungen direkt in der umfassenderen Berechnung verschachteln. Die kombinierte Berechnung würde hier wie folgt aussehen:
      IF
      {FIXED [Driver ID] : MIN(IF [1st Infraction]=[Infraction Date] THEN [Infraction Type] END)}
      =
      {FIXED [Driver ID] : MIN(IF [2nd Infraction]=[Infraction Date] THEN [Infraction Type] END)}
      THEN 1

      ELSEIF
      {FIXED [Driver ID] : MIN(IF [1st Infraction]=[Infraction Date] THEN [Infraction Type] END)}
      !=
      {FIXED [Driver ID] : MIN(IF [2nd Infraction]=[Infraction Date] THEN [Infraction Type] END)}
      THEN 2

      ELSE 1
      END


      Sie erscheint zwar nicht auf Anhieb sinnvoll, funktioniert jedoch bei Bedarf. (Beachten Sie, dass Zeilenumbrüche und einige Leerzeichen keine Auswirkung darauf haben, wie eine Berechnung von Tableau interpretiert wird.)

  2. Wir können den Wert für Anzahl Verstoßtypen anhand der Fahrer-ID darstellen und das Balkendiagramm sortieren.

Die Ergebnisse sind identisch mit den Ergebnissen, die mit den anderen beiden Datenstrukturen erzielt wurden.

5. Wie hoch war das durchschnittliche Bußgeld für Fahrer, die nie die Verkehrsschule besucht haben?
  1. Um diese Frage in Tableau Desktop zu beantworten, reicht es nicht aus, den Bußgeld-Gesamtbetrag einfach durch zwei zu teilen, da einige Fahrer nur einen Verstoß begangen haben. Wir können auch nicht das durchschnittliche Bußgeld pro Fahrer berechnen und den Durchschnitt dieser Werte verwenden, weil die Durchschnittsbestimmung von Durchschnittswerten zu Inkonsistenzen führen kann. Stattdessen müssen wir den bezahlten Gesamtbetrag von Fahrern berechnen, die nie eine Verkehrsschule besucht haben. Anschließend teilen wir diesen Wert durch die Gesamtzahl Verstöße, die mit diesen Bußgeldern in Verbindung steht.

    1. Zuerst müssen wir bestimmen, ob für die einzelnen Fahrer ein zweiter Verstoß vorliegt. Dabei können wir auf die Tatsache zurückgreifen, dass die Informationen in allen "2." Feldern null sind, wenn kein zweiter Verstoß vorliegt, und wir können mit der Erstellung der Berechnung beginnen.

      IFNULL([2nd Infraction Type], 'no')

      Dies gibt entweder einen Verstoßtyp (sofern vorhanden) oder "nein" zurück, wenn kein zweiter Verstoß vorlag.

    2. Als Nächstes müssen wir diese Information in die Anzahl Verstöße (1 oder 2) konvertieren. Wenn das Ergebnis unserer Berechnung vom Typ IFNULL "nein" lautet, sollte der Fahrer mit einem Bußgeld markiert werden. Alle anderen Ergebnisse sollen mit zwei Bußgeldern markiert werden. Die Berechnung lautet:

      Anzahl Verstöße =

      IF IFNULL([2nd Infraction Type], 'no') = 'no' THEN 1
      ELSE 2
      END
    3. Für die Option "Bezahlter Gesamtbetrag" können wir die Berechnung aus Frage 3 verwenden. Um es auf den Punkt zu bringen, teilen wir diesen Bußgeld-Gesamtwert durch unser neues Feld Anzahl Verstöße, um den durchschnittlichen Bußgeldbetrag zu ermitteln:

      Durchschnittliches Bußgeld = SUM([Total Amount Paid]) / SUM([Number of Infractions])

  2. Zudem müssen wir die Fahrer herausfiltern, die eine Verkehrsschule besucht haben. Da dieser Datensatz einige Fahrer mit einem dritten oder vierten Verstoß enthält, können wir nicht dieselbe Methode wie bei der pivotierten Datenstruktur verwenden. Stattdessen wenden wir dieselben Methode wie bei den nicht pivotierten Daten an. Sie wird im Folgenden zusammengefasst:

    1. Zunächst müssen wir zwei Berechnungen erstellen, um zu bestimmen, ob bei dem ersten und zweiten Verstoß eine Verkehrsschule involviert war oder nicht: 

      1. Verkehrsschule = { FIXED [Driver ID] : MIN (IF [1st Infraction] = [Infraction Date] THEN [Traffic School] END ) }

      2. Verkehrsschule = { FIXED [Driver ID] : MIN (IF [2nd Infraction] = [Infraction Date] THEN [Traffic School] END ) }

    2. Anschließend fügen wir diese Werte hinzu, um den Gesamtwert der Besuche einer Verkehrsschule zu ermitteln. 

      Anzahl Besuche einer Verkehrsschule =

      (CASE [1st Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END)
      +
      (CASE [2nd Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END)
    3. Wenn wir die Anzahl Besuche einer Verkehrsschule in den Bereich Dimensionen des Bereichs Daten ziehen, werden die Werte 0–2 diskret.

    4. Wenn wir nun nach der Anzahl Besuche einer Verkehrsschule filtern, können wir einfach die 0 auswählen und sicher sein, dass wir die Fahrer erhalten, die nie eine Verkehrsschule besucht haben.

  3. Um die ursprüngliche Frage zu beantworten, verschieben wir Durchschnittliches Bußgeld in den Container Text auf der Karte Markierungen. Da wir die Aggregationen in die Berechnungen integriert haben, lautet die Aggregation im Feld AGG. Sie lässt sich nicht ändern. Dies entspricht den Erwartungen.

Die Ergebnisse sind identisch mit den Ergebnissen, die mit den anderen beiden Datenstrukturen erzielt wurden.

Denken Sie unbedingt daran, dass diese Lösung viele verschachtelte Berechnungen und LOD-Ausdrücke enthält. Je nach Größe des Datensatzes und Komplexität der Daten können Leistungsprobleme auftreten.

Reflexion der Methoden

Welchen Weg sollten Sie also einschlagen? Das hängt ganz von Ihnen und den Ihnen zur Verfügung stehenden Tools ab.

  • Wenn Sie auf LOD-Ausdrücke verzichten möchten, sollten Sie die Lösung der Datenformung wählen. Dabei können jedoch für einige Analysen Berechnungen erforderlich sein (Analyse in Tableau Desktop).

  • Wenn Sie die Daten formen können und mit Berechnungen, einschließlich LOD-Ausdrücken, vertraut sind, bietet eine Kombination aus beidem die größte Flexibilität (Vertiefung – Pivotierte Daten).

  • Wenn Sie sich mit LOD-Ausdrücken auskennen, die Leistung nur minimal beeinträchtigt wird und/oder Sie keinen Zugriff auf Tableau Prep haben, ist eine ausschließlich auf LOD-Ausdrücken basierende Lösung eine praktikable Option (Weitere Vertiefung – Nur Berechnungen).

Es ist zumindest nützlich, zu verstehen, wie die Aggregation in Tableau Prep und Detailgenauigkeitsausdrücke in Tableau Desktop miteinander zusammenhängen und inwiefern sie sich auf die Datenanalyse auswirken. Wie bei den meisten Dingen in Tableau gibt es für jede Aufgabe mehrere mögliche Ansätze. Untersuchen Sie alle Optionen, um die Konzepte zu kombinieren und die für Sie beste Lösung zu finden.

Verwendete Berechnungen:

Fahrerverstöße

  • Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction Date], [2nd Infraction Date])

  • Bezahlter Gesamtbetrag = [1st Fine Amount] + ZN([2nd Fine Amount])

  • Anzahl Verstoßtypen = IF [1st Infraction Type]=[2nd Infraction Type] THEN 1 ELSEIF [1st Infraction Type]!= [2nd Infraction Type] THEN 2 ELSE 1 END

  • Anzahl Verstöße = IF IFNULL([2nd Infraction Type], 'no') = 'no' THEN 1 ELSE 2 END

  • Durchschnittliches Bußgeld = ( SUM([1st Fine Amount]) + SUM( ZN([2nd Fine Amount]) ) ) / SUM([Number of Infractions])

  • Anzahl Besuche einer Verkehrsschule = (CASE [1st Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END) + (CASE [2nd Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END)

Pivotierte Fahrerverstöße

  • 1. Verstoß = {FIXED [Driver ID] : MIN(IF [Infraction Number] = "1st" THEN [Infraction Date] END)}

  • 2. Verstoß = {FIXED [Driver ID] : MIN(IF [Infraction Number] = "2nd" THEN [Infraction Date] END)}

  • Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction], [2nd Infraction])

  • 1. Bußgeld = {FIXED [Driver ID] : MIN( IF [Infraction Number] = "1st" THEN [Fine Amount] END ) }

  • Anzahl Verstöße = IF IFNULL(STR([2nd Infraction]), 'no')= 'no' THEN 1 ELSE 2 END

  • Durchschnittliches Bußgeld = SUM([Fine Amount])/SUM([Number of Infractions])

  • An Verkehrsschule teilgenommen = { FIXED [Driver ID] : MAX( CONTAINS([Traffic School], 'Yes'))}

LOD-Fahrerverstöße

  • 1. Verstoß = {FIXED [Driver ID] : MIN([Infraction Date])}

  • 2. Verstoß = { FIXED [Driver ID] : MIN( IF [Infraction Date] > [1st Infraction] THEN [Infraction Date] END ) }

  • Zeit zwischen Verstößen = DATEDIFF('day', [1st Infraction], [2nd Infraction])

  • 1. Bußgeld = {FIXED [Driver ID] : MIN( IF [1st Infraction] = [Infraction Date] THEN [Fine Amount] END ) }

  • 2. Bußgeld = {FIXED [Driver ID] : MIN( IF [2nd Infraction] = [Infraction Date] THEN [Fine Amount] END ) }

  • Bezahlter Gesamtbetrag = [1st Fine Amount] + ZN([2nd Fine Amount])

  • 1. Verstoßtyp = {FIXED [Driver ID] : MIN( IF [1st Infraction] = [Infraction Date] THEN [Infraction Type] END ) }

  • 2. Verstoßtyp = {FIXED [Driver ID] : MIN( IF [2nd Infraction] = [Infraction Date] THEN [Infraction Type] END ) }

  • Anzahl Verstoßtypen = IF [1st Infraction Type]=[2nd Infraction Type] THEN 1 ELSEIF [1st Infraction Type]!= [2nd Infraction Type] THEN 2 ELSE 1 END

  • Anzahl Verstöße = IF IFNULL([2nd Infraction Type], 'no') = 'no' THEN 1 ELSE 2 END

  • Durchschnittliches Bußgeld = SUM ([Total Amount Paid]) / SUM([Number of Infractions])

  • 1. Verkehrsschule = {FIXED [Driver ID] : MIN (IF [1st Infraction] = [Infraction Date] THEN [Traffic School] END ) }

  • 2. Verkehrsschule = {FIXED [Driver ID] : MIN (IF [2nd Infraction] = [Infraction Date] THEN [Traffic School] END ) }

  • Anzahl Besuche einer Verkehrsschule = (CASE [1st Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END) + (CASE [2nd Traffic School] WHEN 'Yes' THEN 1 WHEN 'No' THEN 0 ELSE 0 END)

Hinweis: Besonderer Dank geht an Ann Jackson, die in ihrem Blog "Workout Wednesday" der Frage Do Customers Spend More on Their First or Second Purchase?(Link wird in neuem Fenster geöffnet) (Geben Kunden beim ersten oder zweiten Einkauf mehr Geld aus?) nachgeht, und Andy Kriebel für den Tableau Prep-Tipp Returning the First and Second Purchase Dates(Link wird in neuem Fenster geöffnet) (Zurückgeben des Datums für den ersten und zweiten Kauf), auf denen die ursprüngliche Idee für dieses Tutorial beruht. Durch Klicken auf diese Links verlassen Sie die Tableau-Website. Tableau kann keine Verantwortung für die Richtigkeit oder Aktualität der von externen Anbietern unterhaltenen Seiten übernehmen. Bei Fragen zu den Inhalten wenden Sie sich direkt an den Besitzer der Website.

Vielen Dank für Ihr Feedback!Ihr Feedback wurde erfolgreich übermittelt. Vielen Dank.