Lösungsweg
Das Arbeitsblatt Demonstration zeigt den Lösungsweg. Es werden einige Hilfsspalten für Nebenrechnungen benötigt (Spalten A, B, C und D). In Zelle A2 wird die Zeilenanzahl der Ursprungstabelle mit der Formel 65536-COUNTBLANK(Ausgangssituation!C:C)-1 ermittelt. (Hinweis: Der Wert 65536 ist für Excel 2003, nicht für Excel 2007 zutreffend.)
In Spalte C wird in der obersten Zelle zunächst als Startwert die Zeilennummer der ersten Tabellenzeile eingetragen. In den folgenden Zeilen sollen die Positionen der folgenden Unikate in der Ursprungstabelle ermittelt werden. Für Duplikate wird die Position 0 vergeben.
Die Formel in B3 lautet
=WENN(UND(NICHT(ISTLEER(Ausgangssituation!C3)); Ausgangssituation!C3<>""; ISTNV(VERGLEICH(Ausgangssituation!C3; BEREICH.VERSCHIEBEN(Ausgangssituation!$C$2; 0;0; ZEILE(Ausgangssituation!C3)-$B$2,1); 0))),ZEILE(Ausgangssituation!C3);0).
Diese Formel untersucht, ob drei Kriterien (UND) erfüllt sind. Die ersten beiden Kriterien fragen, ob die aktuelle Zelle in der Ursprungstabelle nicht leer ist bzw. eine leere Zeichenkette enthält. Das soll verhindern, dass leere Zellen oder leere Zeichenketten als Unikat gezählt werden.
Das dritte Kriterium ist die Prüfung, ob der Wert der aktuellen Zelle in der Ursprungstabelle weiter oben (BEREICH.VERSCHIEBEN) schon einmal vorgekommen ist (VERGLEICH). Wenn das nicht zutrifft, handelt es sich um ein Unikat, und die Zeilennummer wird eingetragen, sonst 0.
In der Hilfsspalte C wird mit der Formel WENN(B2<>0,"U","D") ein Kennzeichen eingetragen, ob es sich um ein Unikat ("U") oder Duplikat ("D") handelt. In D2 wird zunächst die Startzeile eingetragen. Darunter werden die Positionen der Unikate aufgelistet. Das erledigt die Formel
=WENN(ODER(D2=MAX(B:B),D2=0);0; BEREICH.VERSCHIEBEN(BEREICH.VERSCHIEBEN($B$2;D2-2;0;1;1); VERGLEICH("U",BEREICH.VERSCHIEBEN($C$2; D2-1,0;$A$2-D2+1,1);0);0;1;1))
Die Formel prüft zunächst, ob die bisher ermittelte Position bereits die letzte Position (MAX) oder 0 (Ende-Kennzeichen) ist. Wenn ja, wird 0 gesetzt. Sonst wird die nächste Position aus Spalte B übernommen, für die der Wert in Spalte C "U" ist.
Hinweise/Bemerkungen
Die Spalten A, B, C und D sind Hilfsspalten und können ausgeblendet werden. Das Ergebnis ist im Arbeitsblatt Ergebnis beispielhaft dargestellt.
Die Ergebnistabelle kann maximal so viel Zeilen haben wie die Ursprungstabelle. Deshalb wurden hier 20 Zeilen für das Ergebnis eingetragen. Wenn die Ursprungstabelle variabel ist, muss immer in der Ergebnistabelle geprüft werden, ob genügend viele Zeilen da sind. Dazu muss Spalte D eingeblendet sein. Das erste Auftreten von 0 kennzeichnet das Ende der Unikat-Liste.
Das Ergebnis sehen Sie in der folgenden Abbildung:
Die Lösung stammt von wilfert.de und wird mit ausdrücklicher Genehmigung auf Excel-Inside.de veröffentlicht.
Hier können Sie die Beispieldatei herunterladen.