webentwicklung-frage-antwort-db.com.de

Wie kann man zwei Spalten in Excel (aus verschiedenen Tabellen) vergleichen und Werte aus einer entsprechenden Spalte kopieren, wenn die ersten beiden Spalten übereinstimmen?

Ich versuche, Spalte a in Blatt 1 mit Spalte a in Blatt 2 zu vergleichen und dann die entsprechenden Werte in Spalte b von Blatt 1 in Spalte b in Blatt 2 zu kopieren (wobei die Werte für Spalte a übereinstimmen). Ich habe versucht zu erfahren, wie man das macht, aber ich bin mir nicht sicher, ob ich versuchen sollte, ein Makro zu erstellen, oder ob es einen einfacheren Weg gibt, vielleicht VLOOKUP oder MATCH? Ich bin wirklich nicht mit der Funktionsweise dieser Funktionen vertraut.

Wenn es einen Unterschied macht, werden in Spalte b von Blatt 2 wiederholte Werte angezeigt. 

Blatt1

12AT8001    1
12AT8002    2
12AT8003    3
12AT8004    4
12AT8005    5
12AT8006    6

Blatt 2

12AT8001
12AT8001
12AT8001
12AT8001
12AT8001
12AT8002
12AT8002
12AT8002
12AT8002
12AT8002
12AT8003
12AT8003
12AT8003
12AT8003
12AT8003
7
kmcamara

Vlookup ist gut, wenn die Referenzwerte (Spalte A, Blatt 1) ​​aufsteigend sind. Eine weitere Option ist "Index and Match", die unabhängig von der Reihenfolge verwendet werden kann.

Dies ist, was Sie in Spalte B auf Blatt 2 einfügen würden

=INDEX(Sheet1!A$1:B$6,MATCH(A1,Sheet1!A$1:A$6),2)

Wenn Sie Sheet1!A$1:B$6 und Sheet1!A$1:A$6 als benannte Bereiche festlegen, wird dies etwas benutzerfreundlicher. 

5
MechEng

Wie kmcamara herausgefunden hat, ist dies genau die Art von Problem, die VLOOKUP lösen soll. Die Verwendung von vlookup ist wohl die einfachste der alternativen Möglichkeiten, die Aufgabe zu erledigen.

Zusätzlich zu den drei Parametern für lookup_value, dem zu durchsuchenden table_range und dem column_index für Rückgabewerte, verwendet VLOOKUP ein optionales viertes Argument, das die Excel-Dokumentation als "range_lookup" aufruft. 

Um auf die Erklärung von deathApril einzugehen: Wenn dieses Argument auf TRUE (oder 1) gesetzt oder weggelassen wird, muss der Tabellenbereich in aufsteigender Reihenfolge der Werte in der ersten Spalte des Bereichs sortiert werden, damit die Funktion das zurückgibt, was normalerweise verstanden wird der "richtige" Wert. Bei diesem Standardverhalten gibt die Funktion einen Wert zurück, der auf einer exakten Übereinstimmung basiert, falls einer gefunden wird, oder einer ungefähren Übereinstimmung, wenn keine exakte Übereinstimmung gefunden wird. 

Wenn die Übereinstimmung ungefähr ist, basiert der von der Funktion zurückgegebene Wert auf dem nächstgrößeren Wert, der unter dem Wert für lookup_value liegt. Wenn beispielsweise "12AT8003" in Tabelle 1 in Tabelle 1 fehlt, geben die Suchformeln für diesen Wert in Tabelle 2 "2" zurück, da "12AT8002" der größte Wert in der Suchspalte des Tabellenbereichs ist, der kleiner ist als "12AT8003". (Das Standardverhalten von VLOOKUP ist sehr sinnvoll, wenn beispielsweise die Steuersätze in einer Steuertabelle nachgeschlagen werden sollen.)

Wenn das vierte Argument jedoch auf FALSE (oder 0) gesetzt ist, gibt VLOOKUP einen nachgeschlagenen Wert nur dann zurück, wenn eine genaue Übereinstimmung vorliegt, und einen Fehlerwert von # N/A, falls dies nicht der Fall ist. Es ist jetzt üblich, ein exaktes VLOOKUP in eine IFERROR-Funktion zu packen, um das Nichtübereinstimmen mit Leichtigkeit zu erfassen. Vor der Einführung von IFERROR wurden keine Übereinstimmungen mit einer IF-Funktion mit der VLOOKUP-Formel einmal geprüft, um zu prüfen, ob eine Übereinstimmung vorliegt, und einmal, um den tatsächlichen Übereinstimmungswert zurückzugeben.

Die anfangs schwieriger zu beherrschende Lösung von deusxmach1na ist eine Variation einer Reihe von Alternativen zu VLOOKUP, mit der Werte für eine Spalte oder Liste an left der Suchspalte zurückgegeben werden können Eine exakte Übereinstimmung für mehr als ein Kriterium ist erforderlich oder wurde so modifiziert, dass OR sowie AND-Übereinstimmungsbedingungen zwischen mehreren Kriterien eingefügt werden.

Bei der Wiederholung der von kcamara gewählten Lösung lautet die VLOOKUP-Formel für dieses Problem:

   =VLOOKUP(A1,Sheet1!A$1:B$600,2,FALSE)
3
chuff

Erstellen Sie eine Wahrheitstabelle und verwenden Sie SUMPRODUCT, um die Werte abzurufen. Kopieren Sie das in Zelle B1 auf Sheet2 und kopieren Sie so weit Sie benötigen:
=SUMPRODUCT(--($A1 = Sheet1!$A:$A), Sheet1!$B:$B)
Der Teil, der die Wahrheitstabelle erstellt, ist:
--($A1 = Sheet1!$A:$A)
Dies gibt ein Array von 0 und 1 zurück. 1, wenn die Werte übereinstimmen, und 0, wenn sie nicht übereinstimmen. Dann wird das Komma danach im Grunde genommen das tun, was ich "lustige" Matrixmultiplikation nenne und das Ergebnis zurückgeben. Möglicherweise habe ich Ihre Frage falsch verstanden. Gibt es doppelte Werte in Spalte A von Sheet1?

0
deusxmach1na