Loading

Entfernen von doppelten Daten in Tableau Prep

Veröffentlichungsdatum: Jan 31, 2024
Aufgabe
So entfernen Sie doppelte Daten in Tableau Prep. 

Doppelte Daten können aus unterschiedlichen Gründen auftreten. Und die beste Möglichkeit, solche Datenduplikate aufzulösen, ist immer fallabhängig. Im Folgenden werden die in diesem Artikel beschriebenen Szenarien aufgeführt:
  • Beim Verknüpfen von Tabellen, die eine 1:many- oder eine many:many-Beziehung ("1:viele" und "viele:viele") aufweisen, werden die Kennzahlenwerte der Ausgabe doppelt dargestellt.
  • Wenn Sie zwei oder mehr Tabellen verknüpfen, wiederholen sich möglicherweise Inhalte in den Tabellen, und diese werden in der Ausgabe doppelt aufgeführt.
Schritte
Duplikate können für beliebige Szenarien mithilfe der Methode unter Bereinigen (Beheben) von Abweichungen desselben Werts manuell entfernt werden.

ZUM ERWEITERN DER SCHRITTE KLICKEN
Szenario 1:Duplizierte Kennzahlen aus einer Verknüpfung
In der Tableau Prep-Arbeitsmappe "duplicates from join.tfl" wird in der Tabelle "January Inventory" (Januarbestand) jedes Produkt einmal mit seinem Gesamtbestand angegeben. In der Tabelle "January Orders" (Januarbestellungen) finden sich möglicherweise viele Zeilen für ein Produkt, wenn mehrere Bestellungen des gleichen Produkts vorliegen. Nach der Verknüpfung der Tabellen "Sales" (Umsatz) und "Inventory" (Bestand) liegt die Kennzahl [Inventory] (Bestand) doppelt vor. Im ersten Schema wird das Problem dargestellt.

Option 1: Verwenden Sie eine Vereinigung anstelle einer Verknüpfung.

Hinweis: Keiner der Werte von [Inventory] (Bestand) wird direkt mit Daten aus der Tabelle "January Orders" (Januarbestellungen) verbunden. Dadurch entstehen möglicherweise Probleme beim Erstellen von Berechnungen ohne Aggregationen oder in Ansichten, in denen eine höhere Detailebene angezeigt wird, als in dem(n) Feld(ern) der Join-Klausel, in diesem Beispiel [Product] (Produkt).

Option 2: Erstellen Sie eine Berechnung zur gleichmäßigen Verteilung von Kennzahlwerten.

Durch einen Aggregationsschritt lässt sich die Anzahl an Bestellungen pro Produkt ermitteln und anschließend durch die Anzahl an Bestellungen teilen. Das finale Ergebnis: Für jede Bestellung wird eine gleichmäßige Verteilung des Bestands dargestellt. Beispiel: Es gibt zwei Bestellungen für Hüte. [Inventory] (Bestand) beträgt für jede Hutbestellung "100". [New Inventory] (Neuer Bestand) beträgt für jede Bestellung "50".

Hinweis: Auf diese Weise werden in einer Ansicht unter Umständen falsche Bestandsinformationen angezeigt, wenn nur einige Bestellungen eines Produkts herausgefiltert werden.
  1. Erstellen Sie einen INNER-Verknüpfung für "January Inventory" (Januarbestand) und "January Orders" (Januarbestellungen) für [Product] = [Product] ((Produkt)=(Produkt)).
  2. Fügen Sie die Aggregation aus Verknüpfung 2 hinzu.
  3. Gehen Sie während des Schritts "Aggregate 1" (Aggregat 1) wie folgt vor:
    1. Ziehen Sie jedes [Product] (Produkt) auf "Gruppierte Felder".
    2. Ziehen Sie [Order ID] (Bestell-ID) auf "Aggregierte Felder".
    3. Ändern Sie die Aggregation für "Order ID" (Bestell-ID) in "Count Distinct".
    4. Benennen Sie "Order ID" (Bestell-ID) um, beispielsweise in "Orders per Product" (Bestellungen pro Produkt).
      • Nutzen Sie anstelle von [Order ID] (Bestell-ID) das Feld aus der anderen Tabelle, das für jede Zeile über einen eindeutigen Wert verfügt.
      • Wenn keine eindeutige Kennung vorhanden ist, fügen Sie vor dem Erstellen des Aggregationsschrittes einen Schritt zum Erstellen eines berechneten Felds hinzu, in dem die Dimensionen zusammengefügt werden, die erforderlich sind, um im Ergebnis einen eindeutigen Wert für jede Zeile zu erhalten.
      • Beispiel: STR([Order ID])+STR([Date])
  4. Ziehen Sie "Join 2" (Verknüpfung 2) über "Aggregate 1" (Aggregat 1) und legen "Join 2" (Verknüpfung 2) auf "New Join" (Neue Verknüpfung) ab.
  5. Erstellen Sie während des Schritts "Verknüpfung 3" eine LEFT-Verknüpfung für [Product] = [Product] ((Produkt)=(Produkt)).
  6. Fügen Sie einen Schritt aus Verknüpfung 3 hinzu.
  7. Während des Schritts "Clean 1" (Bereinigen 1) klicken Sie auf die Schaltfläche "Berechnetes Feld erstellen".
  8. Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor, und klicken Sie dann auf "OK":
    1. Benennen Sie das berechnete Feld. In diesem Beispiel wird das berechnete Feld mit "New Inventory" (Neuer Bestand) bezeichnet.
    2. Erstellen Sie im Formelfeld eine Berechnung ähnlich der folgenden:
      [Inventory]/[Orders per Product]

Option 3: Aggregieren Sie Daten, damit die Tabellen eine 1:1-Beziehung aufweisen.

  1. Fügen Sie von "Januar Orders 4" (Januarbestellungen 4) einen Aggregatschritt hinzu.
  2. Gehen Sie während des Schritts "Aggregate 2" (Aggregat 2) wie folgt vor:
    1. Ziehen Sie [Product] (Produkt) auf den Bereich "Gruppierte Felder".
    2. Ziehen Sie [Sales] (Umsatz), [Quantity] (Menge), [Order ID] (Bestell-ID) und [Customer] (Kunde) auf den Bereich "Aggregierte Felder".
    3. Klicken Sie im Feld [Customer] (Kunde) auf CNT und wählen Sie die Option "Count Distinct".
    4. Klicken Sie im Feld [Order ID] (Bestellt-ID) auf SUM und wählen Sie die Option "Count Distinct".
  3. Ziehen Sie "Aggregate 2" (Aggregat 2) über "January Inventory 4" (Januarbestand 4), um eine INNER-Verknüpfung für Product = Product (Produkt=Produkt) zu erstellen.
HINWEIS: Das Feld [Product] (Produkt) wurde in den Bereich "Gruppierte Felder" gezogen, da es das einzige Feld ist, das für eine Verknüpfung verwendet wurde. In der finalen Tabelle ist nur eine Zeile pro Produkt enthalten, d. h. Detailinformationen zu einzelnen Bestellungen gehen verloren.



Option 4: Nutzen Sie einen FIXED-Ausdruck in Tableau Desktop.

Eine ausführliche Anleitung finden Sie unter Entfernen von Datenduplikaten mit LOD-Berechnungen.

Der Vorteil des Ausdrucks "FIXED" in Tableau Desktop besteht darin, dass die Detailgenauigkeitsausdrücke (LOD) gesonderte Aggregationsregeln aufweisen. Daher könnte der Ausdruck "FIXED" genutzt werden, um für ein als Duplikat entferntes Bestandsfeld den nicht duplizierten Bestand für ein Produkt anzuzeigen, und zwar unabhängig davon, ob in der Ansicht nur eine oder mehrere Bestellungen für dieses Produkt vorhanden war(en).
 
ZUM ERWEITERN DER SCHRITTE KLICKEN
Szenario 2:Doppelte Datenquellen mit den gleichen Daten nach einer Datenquellenvereinigung
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.
  1. Erstellen Sie eine neue Verknüpfung zwischen "January Orders" (Januarbestellungen) und "January Orders (corrections)" "Januarbestellungen (Korrekturen)".
  2. Gehen Sie während des Schritts "Verknüpfung 1" wie folgt vor:
    1. Erstellen Sie für "Angewendete Join-Klauseln" eine Join-Klausel für [Order ID] = [Order ID] ((Bestell-ID)=(Bestell-ID)).
    2. 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.
  3. 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.
  1. Erstellen Sie eine FULL OUTER-Verknüpfung zwischen ///"January Orders" und ///"January Orders (corrections)" für [Order ID] = [Order ID]
  2. Fügen Sie einen Schritt aus Verknüpfung 2 hinzu.
  3. Führen Sie alle übereinstimmenden Felder zusammen, ausgenommen die Datumsfelder und Kennzahlenwerte:
    1. Klicken Sie im Profilbereich auf das Feld, dessen Werte Vorrang vor dem anderen Feld haben sollen.
    2. Halten Sie die Strg-Taste gedrückt und klicken Sie auf das übereinstimmende Feld.
    3. 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".
    4. Klicken Sie auf die Schaltfläche "Berechnetes Feld erstellen".
    5. Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor, und klicken Sie dann auf "OK":
      1. Benennen Sie das berechnete Feld. In diesem Beispiel wird das berechnete Feld mit "Most Recent Date" (Aktuellstes Datum) benannt.
      2. Erstellen Sie im Formelfeld eine Berechnung ähnlich der folgenden:
        IF [Date] > [Date-1]
        THEN [Date]
        ELSE IFNULL( [Date-1], [Date] )
        END
      3. 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.
      4. 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.
      5. Entfernen Sie [Date] (Datum) und [Date-1] (Datum-1).
    6. 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
      
    7. Entfernen Sie [Cost] (Kosten) und [Cost-1] (Kosten-1).
    8. Wiederholen Sie die Schritte 6-7 für jede Kennzahl.

Option 3: Jedes Duplikat soll individuell gehandhabt werden.

  1. Erstellen Sie eine FULL OUTER-Verknüpfung zwischen ///"January Orders" und ///"January Orders (corrections)" für [Order ID] = [Order ID]
  2. Fügen Sie einen Schritt aus Verknüpfung 3 hinzu.
  3. 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.
  4. Klicken Sie auf die Schaltfläche "Berechnetes Feld erstellen".
  5. Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor, und klicken Sie dann auf "OK":
    1. Benennen Sie das berechnete Feld. In diesem Beispiel wurde das berechnete Feld mit "New Cost" (Neue Kosten) benannt.
    2. 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.
  6. Entfernen Sie [Date] (Datum) und [Date-1] (Datum-1).
  7. Wiederholen Sie die Schritte 4-6 für alle Felder, in denen Duplikate jeweils individuell geprüft werden müssen.
Nummer des Knowledge-Artikels

001453799

Anhänge

duplicates from join.tflx

11 KB

duplicates from union.tflx

12 KB

 
Laden
Salesforce Help | Article