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): Auftragstabelle

Mit Countrows() auf Dubletten-Suche

Wir legen zuerst eine berechnete Spalte an – und testen Countrows() auf uns selbst: Countrows in der berechneten Spalte 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: Countrows mit Filter 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: Vollständige Funktion mit Earlier Ü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.