Extrahieren Sie eine Liste eindeutiger Werte aus zwei Spalten ohne Array-Formel oder VBA

Extrahieren Sie eine Liste eindeutiger Werte aus zwei Spalten ohne Array-Formel oder VBA

Ich habe zwei Datenspalten, A und B. Ich möchte diese Spalten so zusammenführen, dass nur die eindeutigen Werte in der endgültigen Liste enthalten sind. Im Moment verwende ich eine Array-Formel aushttps://www.get-digital-help.com/2009/06/16/extract-an-unique-distinct-list-from-two-columns-using-excel-2007-array-formula/:

{=IFERROR(IFERROR(INDEX($A$2:$A$20, MATCH(0, COUNTIF($C$1:C1, $A$2:$A$20), 0)), INDEX($B$2:$B$7, MATCH(0, COUNTIF($C$1:C1, $B$2:$B$7), 0))), "")} 

Obwohl das wunderbar funktioniert, möchte ich Array-Formeln möglichst vermeiden, da sie unsere ohnehin schon schlechten PCs deutlich verlangsamen. Wir können aus bestimmten Gründen auch kein VBA verwenden, also ist das auch keine Option.

Gibt es eine Möglichkeit, dies zu tun?

Antwort1

Nun, ich habe eine Möglichkeit gefunden, es zu tun, die im Moment zu funktionieren scheint, aber schön ist es ganz sicher nicht.

Spalte A enthält einen Datensatz, beispielsweise insgesamt 200 Werte.

Spalte B enthält einen zweiten Datensatz, beispielsweise 175 Werte.

Spalte C prüft, ob der Wert in Spalte B in Spalte A vorhanden ist

 =IF(COUNTIF($A$2:$A$750,B2)>0,"Match","No Match")

In Spalte E steht eine Zählung, die lediglich festhält, wo wir uns relativ zum Ende des Datensatzes in Spalte A befinden.

=IF(A2=0,MAX($E$1:E1)+1,"")

Spalte F enthält eine Zählung, die immer dann erhöht wird, wenn Spalte C einen eindeutigen Wert angibt.

=IF(C2="No Match",MAX($F$1:F1)+1,"")

In Spalte G werden die beiden Datensätze kombiniert. Zuerst werden die Werte in A aufgelistet. Wenn das Ende der Liste erreicht ist und mit der Suche nach Nullen begonnen wird, wird der in Spalte E erstellte Index verwendet, um den ersten eindeutigen Wert in B zu finden, und dieser wird hochgezählt, bis der endgültige Wert erreicht ist.

=IF(A2=0,IF(E2>MAX(F:F),"",INDEX(B:B,MATCH(E2,F:F))),A2)

Antwort2

Es gibt eine gute Diskussion darüber, wie man eindeutige und unterschiedliche Werte extrahiert beidiese Excel-Tutorials-Website.

Und die Antwort auf Ihre Frage lautet ja, es geht lediglich darum, für jeden Teil einen zusätzlichen INDEX() zu verwenden. Hier ist die Änderung:

=IFERROR(INDEX($A$2:$A$20,MATCH(0,INDEX(COUNTIF($C$1:C1,$A$2:$A$20),0),0)),INDEX($B$2:$B$7,MATCH(0,INDEX(COUNTIF($C$1:C1,$B$2:$B$7),0),0)))

Ich habe das äußerste IFERROR() weggelassen. Hoffe, das hilft.

verwandte Informationen