Da möchte man zwei Tabellen verbinden und Power Pivot meckert, dass die Schlüssel doppelt vorkommen. Fachlich sollten die Schlüssel aber eindeutig sein. Wir zeigen Ihnen, wie man Dubletten findet.
Ausgangssituation
Wir haben eine Tabelle importiert – eine Spalte ist der Schlüssel und sollte daher eindeutig sein. Scheinbar ist dem nicht so. Vielleicht stimmt im Quellsystem bereits etwas nicht. Man muss die Dublette aber erst mal finden, damit man der Ursache auf den Grund gehen kann – bei 100.000 Zeilen kann man nicht einfach sortieren und dann durch die Daten scrollen, in der Hoffnung, dass die Dubletten auffallen. Folgende Daten liegen uns vor (hier sieht man natürlich gleich die Dublette – eben nur ein Beispiel):
Mit Countrows() auf Dubletten-Suche
Wir legen zuerst eine berechnete Spalte an – und testen Countrows() auf uns selbst: Damit haben wir in jeder Zeile die Anzahl aller Zeilen. Wenn Sie jeweils “1” als Ergebnis in jeder Zeile erwartet hätten, lesen Sie die Artikel zu Kontexten. Wir bekommen offenbar alle Zeilen gezählt – wir brauchen einen Filter.
Countrows() + Filter()
Im Artikel über Filter haben wir beschrieben, was ein solcher Filter macht – er filtert nach hinterlegten Kriterien eine Tabelle und gibt diese zurück. Countrows() zählt dann die Anzahl der gefilterten Tabelle. Wie aber formulieren wir den Filter? Die Auftragsnummer muss mit der betrachteten Auftragsnummer übereinstimmen – ein Versuch: Filter() ist ein Iterator, das heißt er iteriert über jede Zeile und prüft den Ausdruck – ist dieser gültig, wird die Zeile in die Ergebnismenge aufgenommen. Bei jeder Zeile stimmt aber die Auftragsnummer mit sich selbst überein. Irgendwie müssen wir aus dem Iterator wieder in die aktuell betrachtete Zeile schauen und nicht auf die Zeile, die der Iterator durchläuft.
Earlier()
Diese Funktion haben wir im Artikel über Kontexte beschrieben. Hier haben wir erneut eine sinnvolle Anwendung. Mit Earlier() verlassen wir explizit den Kontext der Countrows()-Funktion und gehen zurück in den Zeilenkontext. Die Funktion, die uns das gewünschte Ergebnis liefert, sieht damit folgendermaßen aus: Über den Datenfilter in der berechneten Spalte können jetzt alle gefiltert werden, die 2 oder mehr als Wert haben – damit haben wir die Dubletten.
Kommentar hinterlassen
eine fertige Lösung haben wir nicht parat, aber folgende Hinweise sollten Dir weiterhelfen.
Als Ansatzpunkt empfehle ich dir folgenden Artikel: http://sqlblog.com/blogs/marco_russo/archive/2014/03/31/calculate-distinct-count-in-a-group-by-operation-in-power-query-powerquery-powerbi.aspx Um den Count gleichzeitig mit den anderen Daten zu sehen musst Du Deine ursprüngliche Abfrage mit dem gruppierten Ergebnis noch zusammenführen.
Eine etwas kompliziertere Lösung, bei der die Duplikate indiziert werden findest du hier: https://social.technet.microsoft.com/Forums/en-US/5a89b690-abbf-4c0d-a0a2-a01fdfe0e4eb/restart-numbering-for-each-change-in?forum=powerquery
Viele Grüße Andreas
you made my day!!! Nach der Funktion, um die Anzahl der Duplikate zu zählen habe ich seit Stunden gesucht. Vielen Dank