In der Tableau Prep-Arbeitsmappe "duplicates from union.tfl" ist die Tabelle "January Orders" (Januarbestellungen) der erste Bestellungsbericht im Januar. Bei der Tabelle "January Orders (corrections)" (Januarbestellungen (Korrekturen)) handelt es sich um einen Bericht, der zu einem späteren Zeitpunkt mit einigen neuen Bestellungen freigegeben wird und auch Korrekturen für Bestellungen enthält, die in Tabelle "January Orders" (Januarbestellungen) bereits vorhanden sind. Wenn die beiden Tabellen vereinigt werden, werden die Zeilen beider Tabellen beibehalten. Auf diese Weise entstehen die doppelten Kennzahlen.
Das erste Schema in der Tabelle "duplicates from union.tfl" zeigt diese Problemstellung.
Option 1: Behalten Sie alle Daten aus einer Tabelle sowie die Daten aus einer anderen Tabelle, die in der ersten Tabelle nicht enthalten sind.
In diesem Beispiel werden alle Daten aus "January Orders (corrections)" (Januarbestellungen (Korrekturen)) und die Bestellungen aus "January Orders" (Januarbestellungen) benötigt, die in "January Orders (corrections" (Januarbestellungen (Korrekturen)) nicht enthalten sind.
- Erstellen Sie eine neue Verknüpfung zwischen "January Orders" (Januarbestellungen) und "January Orders (corrections)" "Januarbestellungen (Korrekturen)".
- Gehen Sie während des Schritts "Verknüpfung 1" wie folgt vor:
- Erstellen Sie für "Angewendete Join-Klauseln" eine Join-Klausel für [Order ID] = [Order ID] ((Bestell-ID)=(Bestell-ID)).
- Klicken Sie für "Verknüpfungstyp" auf die Bereiche des Venn-Diagramms, damit nur das Segment ganz links ausgefüllt wird. Tableau Prep bezeichnet das als "Nur verbleibende nicht zugeordnete"-Verknüpfung.
- Ziehen Sie "January Orders (corrections)" (Januarbestellungen (Korrekturen)) über Verknüpfung 1 und legen Sie die Tabelle auf "Neue Vereinigung" ab.
Option 2: Behalten Sie die Datensätze mit dem aktuellsten Datum bei.
Beispiel: Ms. Mouse (Fr. Maus) änderte ihre Bestellung, um einen weiteren Mantel hinzuzufügen, diese Änderung wurde aber fälschlicherweise unter "Januar Orders" (Januarbestellungen) erfasst. Die richtige Bestellung ist die mit dem aktuellsten Datum.
- Erstellen Sie eine FULL OUTER-Verknüpfung zwischen ///"January Orders" und ///"January Orders (corrections)" für [Order ID] = [Order ID]
- Fügen Sie einen Schritt aus Verknüpfung 2 hinzu.
- Führen Sie alle übereinstimmenden Felder zusammen, ausgenommen die Datumsfelder und Kennzahlenwerte:
- Klicken Sie im Profilbereich auf das Feld, dessen Werte Vorrang vor dem anderen Feld haben sollen.
- Halten Sie die Strg-Taste gedrückt und klicken Sie auf das übereinstimmende Feld.
- Klicken Sie mit der rechten Maustaste auf eines der Felder und wählen Sie "Felder zusammenführen".
- Beim Zusammenführen von Feldern behält Tableau Prep nicht beide Werte bei (wenn zwei unterschiedliche Werte vorhanden sind), sondern übernimmt den Wert des ersten ausgewählten Feldes, sofern vorhanden.
- Beispiel: Ms. Der Name von "Horse" (Pferd) wurde fälschlicherweise erfasst als Ms. (Frau) "House" (Haus) in der Tabelle "January Orders" (Januarbestellungen) und ihr richtiger Name taucht in "January Orders (corrections) (Januarbestellungen (Korrekturen)) auf. Beim Zusammenführen von [Customer] (Kunde) und [Customer-1] (Kunde-1) soll [Customer-1] (Kunde-1) zuerst ausgewählt werden.
- Sie können prüfen, welches Feld Vorrang vor einem anderen hat, und zwar anhand des Namens des zusammengeführten Felds. Der Name wird wie folgt formatiert: [erster Feldname und zweiter Feldname]. Der zuerst aufgeführte Feldname ist das Feld, das Vorrang vor dem anderen hat.
- Wenn die Felder in der falschen Reihenfolge zusammengeführt wurden, lässt sich das Zusammenführen rückgängig machen. Klicken Sie dafür mit der rechten Maustaste auf das Zusammenführungssymbol über dem Namen des zusammengeführten Felds im Profilbereich und wählen Sie "Entfernen".
- Klicken Sie auf die Schaltfläche "Berechnetes Feld erstellen".
- Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor, und klicken Sie dann auf "OK":
- Benennen Sie das berechnete Feld. In diesem Beispiel wird das berechnete Feld mit "Most Recent Date" (Aktuellstes Datum) benannt.
- Erstellen Sie im Formelfeld eine Berechnung ähnlich der folgenden:
IF [Date] > [Date-1]
THEN [Date]
ELSE IFNULL( [Date-1], [Date] )
END
- Die Berechnung oben gibt [Date] (Datum) zurück, wenn sie "größer" ist, bzw. [Date-1] (Datum-1), wenn die Datumsangaben aktueller sind. Anderenfalls gibt die Berechnung [Date-1] (Datum-1) zurück.
- Wenn beide Felder NULL sind, ist die erste Bedingung in keinem Fall erfüllt. Die IFNULL()-Funktion ersetzt [Date-1] (Datum-1) mit [Date] (Datum), wenn [Date-1] (Datum-1) gleich NULL ist. Sprich: Die Berechnung gibt immer einen Wert ungleich NULL zurück, sofern einer vorhanden ist.
- Entfernen Sie [Date] (Datum) und [Date-1] (Datum-1).
- Erstellen Sie ein berechnetes Feld mit einem Namen wie "New Cost" (Neue Kosten) mithilfe einer Berechnung ähnlich der Folgenden:
IF [Date] > [Date-1]
THEN [Cost]
ELSE IFNULL( [Cost-1], [Cost] )
END
- Entfernen Sie [Cost] (Kosten) und [Cost-1] (Kosten-1).
- Wiederholen Sie die Schritte 6-7 für jede Kennzahl.
Option 3: Jedes Duplikat soll individuell gehandhabt werden.
- Erstellen Sie eine FULL OUTER-Verknüpfung zwischen ///"January Orders" und ///"January Orders (corrections)" für [Order ID] = [Order ID]
- Fügen Sie einen Schritt aus Verknüpfung 3 hinzu.
- Führen Sie alle Felder zusammen, die entweder a) in beiden Tabellen den gleichen Wert aufweisen, oder wenn b) immer die Werte aus einer Tabelle verwendet werden sollen.
- Klicken Sie auf die Schaltfläche "Berechnetes Feld erstellen".
- Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor, und klicken Sie dann auf "OK":
- Benennen Sie das berechnete Feld. In diesem Beispiel wurde das berechnete Feld mit "New Cost" (Neue Kosten) benannt.
- Erstellen Sie im Formelfeld eine Berechnung ähnlich der folgenden:
CASE [Order ID-1 & Order ID]
WHEN 5 THEN [Date]
WHEN 9 THEN [Date]
ELSE IFNULL([Date-1],[Date])
END
- Die Berechnung oben liest jeden Wert von [Order ID-1 & Order ID] (Bestell-ID-1 und Bestell-ID) und gibt das angegebene Datumsfeld zurück. Um Arbeitsschritte zu vereinfachen, wurden nur die IDs angegeben, die [Date] (Datum) zurückgeben sollen. Alle verbleibenden IDs geben [Date-1] (Datum-1) zurück bzw. [Date] (Datum), wenn [Date-1] (Datum-1) aufgrund des ELSE-Statements NULL lautet.
- Der Wert [Order ID-1 & Order ID] (Bestell-ID-1 und Bestell-ID) wird im CASE-Statement genutzt, da dieses Feld für jede Datenzeile über einen eindeutigen Wert verfügt.
- Das bedeutet auch, dass alle neu hinzugefügten IDs bei einem erneuten Ausführen dieses Schemas [Date-1] (Datum-1) zurückgeben.
- Entfernen Sie [Date] (Datum) und [Date-1] (Datum-1).
- Wiederholen Sie die Schritte 4-6 für alle Felder, in denen Duplikate jeweils individuell geprüft werden müssen.