KNOWLEDGE BASE

Kombinieren mehrerer Datumsfelder


Veröffentlicht: 24 Apr 2017
Zuletzt geändert am: 09 Apr 2024

Frage

Wie werden mehrere Datumsfelder in einer einzelnen Achse oder einer einzelnen Datumskopfzeile kombiniert?

Jede Bestellung weist beispielsweise ein Feld "[Bestelldatum]" und ein Feld "[Versanddatum]" auf. Das Endziel besteht darin, ein Liniendiagramm oder eine Kreuztabelle für die Anzahl der in jedem Monat aufgegebenen und versandten Bestellungen anzuzeigen. Wenn "[Bestelldatum]" als Achse oder Kopfzeile verwendet wird, ist die Anzahl der jeden Monat versandten Bestellungen falsch und umgekehrt.

Umgebung

Tableau Desktop

Antwort

In der angehängten Beispielarbeitsmappe wird der Beispieldatensatz "Superstore" verwendet, um alle Optionen zu veranschaulichen.
ZUM ANZEIGEN DER LÖSUNG KLICKEN
Option 1: Pivotieren der Datumsfelder
  1. Pivotieren Sie die Datumsfelder, damit nur ein Feld mit Datumsdaten und ein zweites Feld wie "Ereignis" vorhanden ist, das beschreibt, ob das Ereignis "Bestellung aufgegeben" oder "Bestellung versandt" lautet. Hinweis: Bei einigen Datenquellen kann das Pivotieren direkt in Tableau Desktop vorgenommen werden. Ausführliche Anweisungen finden Sie unter Pivotieren von Daten von Spalten in Zeilen.
  2. Klicken Sie mit der rechten Maustaste und ziehen Sie "[Pivot Field Values]" auf den Container "Zeilen".
  3. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "MY(Pivot Field Values)" aus und klicken Sie auf "OK".
  4. Klicken Sie im Datenbereich mit der rechten Maustaste auf "[Pivot Field Names]" und wählen Sie "Aliasse…" aus.
  5. Geben Sie im Dialogfeld "Aliasse bearbeiten" einen aussagekräftigeren Alias für "Bestelldatum" und "Versanddatum" ein und klicken Sie auf "OK".
  6. Ziehen Sie "[Pivot Field Names]" in den Container "Spalten".
  7. Klicken Sie mit der rechten Maustaste und ziehen Sie "[Order ID]" zu "Text" auf der Karte "Markierungen".
  8. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "CNTD(Order ID)" aus und klicken Sie auf "OK".
ZUM ANZEIGEN DER LÖSUNG KLICKEN
Option 2: Verwenden einer LOD-Berechnung
Für diese Option muss jedes Datumsfeld mindestens einen Datensatz für jede Datenpartition in der Ansicht aufweisen. In diesem Beispiel steht jede Zeile für einen Monat. Daher müssen "[Bestelldatum]" und "[Versanddatum]" mindestens eine Bestellung für jeden Monat aufweisen.
  1. Wählen Sie ein Datumsfeld aus, um die Datumsachse oder -kopfzeile zu erstellen. In diesem Beispiel wird "[Bestelldatum]" verwendet.
  2. Klicken Sie mit der rechten Maustaste und ziehen Sie das [Bestelldatum] in den Zeilen-Container.
  3. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "MY(Order Date)" mit dem blauen #-Symbol aus und klicken Sie auf "OK".
  4. Klicken Sie mit der rechten Maustaste und ziehen Sie "[Order ID]" zu "Text" auf der Karte "Markierungen".
  5. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "CNTD(Order ID)" aus.
  6. Klicken Sie mit der rechten Maustaste in der Ansicht auf die Kopfzeile "Distinct count of Order ID" und wählen Sie "Alias bearbeiten…" aus.
  7. Geben Sie im Dialogfeld "Alias bearbeiten" einen neuen Namen ein und klicken Sie auf "OK".
  8. Erstellen Sie ein berechnetes Feld mit einem Namen wie "Orders Shipped" mit einer Berechnung ähnlich der folgenden:

    MIN(
    IF DATETRUNC('month', [Bestelldatum]) = DATETRUNC('month', [Versanddatum])
    THEN { FIXED DATETRUNC('month', [Versanddatum]) : COUNTD([Order ID]) }
    END
    )


    9. Doppelklicken Sie im Datenbereich auf "[Orders Shipped]", um das Feld der Ansicht hinzuzufügen.

     
ZUM ANZEIGEN DER LÖSUNG KLICKEN
Option 3: Verwenden des Datumsgerüsts
Diese Option erfordert, dass sich ein Datumsfeld immer vor einem anderen Datumsfeld befindet, und funktioniert am besten, wenn die beiden Datumsfelder einen Bereich definieren.
  1. Erstellen Sie eine Tabelle mit einer Masterliste aller möglichen Datumswerte, die mit der ursprünglichen Datenverbindung verknüpft wird. In diesem Beispiel heißt die Tabelle "Master Date List".
  2. Navigieren Sie zur Registerkarte "Datenquelle" in Tableau Desktop.
  3. Fügen Sie dem Leinwandbereich die Tabelle "Sheet 1" hinzu.
  4. Führen Sie im Dialogfeld "Verknüpfen" Folgendes durch:
    1. Wählen Sie "Links" aus.
    2. Wählen Sie "Order Date" unter "Datenquelle" aus.
    3. Wählen Sie unter "Sheet 1" die Option "Datum" aus.
    4. Klicken Sie auf das Gleichheitszeichen, und wählen Sie <= aus.
    5. Klicken Sie unter "Datenquelle" auf "Neue Join-Klausel hinzufügen", und wählen Sie "Versanddatum" aus.
    6. Wählen Sie unter "Sheet 1" die Option "Datum" aus.
    7. Klicken Sie auf das Gleichheitszeichen und wählen Sie >= aus.
  5. Wählen Sie "Analyse" > "Berechnetes Feld erstellen" aus.
  6. Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor und klicken Sie dann auf "OK":
    1. Geben Sie einen Namen für das berechnete Feld ein. In diesem Beispiel heißt das berechnete Feld "Orders Placed".
    2. Erstellen Sie im Formelfeld eine Berechnung ähnlich der folgenden:
      COUNTD(
      IF DATETRUNC('month', [Bestelldatum]) = DATETRUNC('month', [Datum])
      THEN [Order ID]
      END
      )
  7. Erstellen Sie ein berechnetes Feld mit einem Namen wie "Orders Shipped" mit einer Berechnung ähnlich der folgenden:
    COUNTD(
    IF DATETRUNC('month', [Versanddatum]) = DATETRUNC('month', [Datum])
    THEN [Order ID]
    END
    )
  8. Klicken Sie mit der rechten Maustaste und ziehen Sie "[Datum]" in den Container "Zeilen".
  9. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "MY(Date)" aus, und klicken Sie auf OK.
  10. Ziehen Sie "[Orders Placed]" zu "Text" auf der Karte "Markierungen".
  11. Doppelklicken Sie im Datenbereich auf "[Orders Shipped]", um das Feld der Ansicht hinzuzufügen.
ZUM ANZEIGEN DER LÖSUNG KLICKEN
Option 4: Verwenden einer Datenverschmelzung
Diese Option kann für einen Bereich mit Datumswerten nicht verwendet werden.
  1. Erstellen Sie eine Tabelle mit einer Masterliste aller möglichen Datumswerte und erstellen Sie eine neue Verbindung mit dieser Liste. In diesem Beispiel heißt die Verbindung "Sheet1 (master date list)".
  2. Navigieren Sie zu "Daten" > "Sample - Superstore" > "Duplizieren". In diesem Beispiel habe ich die beiden Kopien von "Sample - Superstore" der Klarheit halber "Sample - Superstore (link on order date)" und "Sample - Superstore (link on ship date)" genannt.
  3. Navigieren Sie zu "Daten" > "Beziehungen bearbeiten…".
  4. Führen Sie im Dialogfeld "Beziehungen" Folgendes aus:
    1. Wählen Sie als primäre Datenquelle "Sheet1 (master date list)" aus.
    2. Wählen Sie als zweite Datenquelle "Sample - Superstore (link on order date)" aus.
    3. Wählen Sie das Optionsfeld "Benutzerdefiniert" aus.
    4. Klicken Sie auf "Hinzufügen…".
  5. Führen Sie im Dialogfeld "Feldzuordnung hinzufügen/bearbeiten" Folgendes aus:
    1. Klicken Sie auf den Pfeil neben "Datum", um die Datumsoptionen zu erweitern.
    2. Wählen Sie die Datumsebene aus, die mit der in der Ansicht verwendeten Datumsebene mit der höchsten Genauigkeit übereinstimmt. In diesem Beispiel verwendet die Ansicht "MY(Date)".
    3. Klicken Sie im rechten Bereich auf den Pfeil neben "Order Date".
    4. Wählen Sie die übereinstimmende Datumsebene für "Order Date" aus.
    5. Klicken Sie auf "OK"
  6. Wiederholen Sie die Schritte 4–5 für "Sample - Superstore (link on ship date)" als sekundäre Datenquelle und fügen Sie eine Beziehung für "MY(Datum) = MY(Versanddatum)" hinzu.
  7. Klicken Sie auf "OK", um das Dialogfeld "Beziehungen" zu schließen.
  8. Klicken Sie in einem neuen Arbeitsblatt mit der rechten Maustaste und ziehen Sie "[Date]" aus der Datenverbindung "Sheet 1 (master date list)" in die Ansicht.
  9. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "MY(Date)" aus, und klicken Sie auf OK.
  10. Klicken Sie mit der rechten Maustaste in der Ansicht auf die Kopfzeile "Distinct count of Order ID" und wählen Sie "Alias bearbeiten…" aus.
  11. Geben Sie im Dialogfeld "Alias bearbeiten" einen aussagekräftigeren Namen ein und klicken Sie auf "OK".
  12. Klicken Sie mit der rechten Maustaste und ziehen Sie "[Order ID]" aus der Datenverbindung "Sample - Superstore (link on order date)" zu "Text" in der Bezeichnung "Markierungen".
  13. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "CNTD(Order ID)" aus und klicken Sie auf "OK".
  14. Klicken Sie mit der rechten Maustaste und ziehen Sie "[Order ID]" aus der Datenverbindung "Sample - Superstore (link on ship date)" zu "Text" in der Bezeichnung "Markierungen".
  15. Wählen Sie im Dialogfeld "Feld ablegen" den Eintrag "CNTD(Order ID)" aus und klicken Sie auf "OK".
  16. Ziehen Sie "CNTD(Order ID)" von "Detail" auf der Karte "Markierungen" über die Zahlen in der Ansicht und legen Sie das Feld ab.
  17. Geben Sie im Dialogfeld "Alias bearbeiten" einen aussagekräftigeren Namen ein und klicken Sie auf "OK".

Zusätzliche Informationen

Hinweise zu Option 2 (LOD-Ausdruck):
  • Jedes Datumsfeld muss mindestens einen Datensatz für die in der Ansicht verwendete Datumsebene haben.
  • Der Ausdruck FIXED gibt die eindeutige Gesamtanzahl versandter Bestellungen für jeden Monat in [Ship Date] unabhängig davon zurück, wo der Monat für [Versanddatum] in der Ansicht angezeigt wird. Beispielsweise wurden im Februar versandte Bestellungen im Januar und Februar aufgegeben. Daher würde der Ausdruck FIXED selbst 59 Bestellungen in "MY(Bestelldatum) = Januar" und "MY(Bestelldatum) = Februar" zurückgeben.
  • Die gesamte IF-Anweisung ist in MIN() umhüllt, um einen Fehler zu vermeiden, bei dem LOD-Ausdrücke doppelte Werte in einer IF-Anweisung zurückgeben.

Hinweise zu Option 3 (Datumsgerüst):
  • Alle Datumswerte können auch auf einer höheren Datumsebene wie dem ersten Tag jedes Monats aufgeführt werden. Verwenden Sie dann in den Schritten 4-2 und 4-5 eine Verknüpfungsberechnung, die das Datum in der ursprünglichen Tabelle auf die richtige Datumsebene festlegt, beispielsweise DATETRUNC('month', [Bestelldatum]).
  • Wenn es nicht möglich ist, der ursprünglichen Datenquelle mit den Datumswerten eine Tabelle hinzuzufügen, sollten Sie eine datenbankübergreifende Verknüpfung zu einer externen Tabelle erstellen, in der die Datumswerte enthalten sind. Zum Verwenden der Ungleichheiten in Join-Klauseln in der Funktion für datenbankübergreifende Verknüpfungen muss ein Upgrade auf Tableau Desktop 10.5 oder höher vorgenommen werden.
  • Bei dieser Option werden die Daten dupliziert, was sich möglicherweise auf andere Ansichten auswirkt, die dieselbe Datenquelle verwenden.
  • Ab Tableau Prep 2021.3.1 ist es nicht möglich, ein Datumsgerüst in Tableau Prep zu erstellen, ohne eine Datumsliste anzulegen. Anleitungen finden Sie unter Auffüllen von Lücken in sequentiellen Daten.
Hinweis zu Option 4 (Datenverschmelzung):
  • Bei der Datenverschmelzung gibt es viele Beschränkungen. Hilfe bei möglichen Problemen finden Sie unter Problembehandlung bei der Datenverschmelzung.
  • Die zu verknüpfenden Datumswerte müssen genau mit der im Dialogfeld "Beziehungen" ausgewählten Datumsebene mit der höchsten Detailgenauigkeit übereinstimmen.
  • Beim Erstellen von Beziehungen zwischen Feldern aus unterschiedlichen Datenquellen kann jedes Feld nur jeweils einem anderen Feld zugeordnet werden. Aus diesem Grund war es notwendig, die ursprüngliche Datenquelle zu duplizieren.
  • Alle [Order Date] zugeordneten Felder müssen aus der Kopie der ursprünglichen Datenquelle abgerufen werden, die mit "MY(Datum) = MY(Bestelldatum)" verknüpft ist, und umgekehrt für alle Felder, die [Versanddatum] zugeordnet sind.

Anzeigen von aktiven Datensätzen im zeitlichen Verlauf
Verschmelzen von Daten
Erstellen von Detailgenauigkeitsausdrücken in Tableau
CASE- und IF-Statements mit Detailgenauigkeitsausdruck geben unerwartete Ergebnisse zurück
Hat dieser Artikel das Problem gelöst?