Überprüfen Sie, ob der Zellenwert in der Spalte vorhanden ist, und ermitteln Sie dann den Wert der nächsten Zelle


89

Nachdem ich überprüft habe, ob ein Zellenwert in einer Spalte vorhanden ist, muss ich den Wert der Zelle neben der übereinstimmenden Zelle abrufen . Zum Beispiel überprüfe ich, ob der Wert in in cell A1vorhanden ist column B, und nehme an , dass er übereinstimmt B5, dann möchte ich den Wert in cell C5.

Um die erste Hälfte des Problems zu lösen, habe ich dies getan ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

...und es hat funktioniert. Dank einer früheren Antwort auf SO konnte ich dann auch die Zeilennummer der passenden Zelle erhalten:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

Um den Wert der nächsten Zelle zu ermitteln, habe ich natürlich versucht ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

... und es funktioniert nicht.

Was vermisse ich? Wie hänge ich die Spaltennummer an die zurückgegebene Zeilennummer an, um das gewünschte Ergebnis zu erzielen?

Antworten:


99

Verwenden Sie eine andere Funktion wie VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))

1
Vielen Dank! Das funktioniert auch! Und ich denke, es wäre besser, VLOOKUP(A1, B:C, 2, FALSE)einen festen Bereich zu verwenden, anstatt ihn zu verwenden (um ein wachsendes Lookup-Array aufzunehmen)?
SNag

1
Ja, ich habe diesen festen Bereich nur als Test verwendet. Bearbeitet es in meiner Antwort.
CustomX

Du brauchst IFERRORhier nicht. Ohne funktioniert es einwandfrei, da der VLOOKUP nur ausgeführt wird, wenn eine Übereinstimmung vorliegt.
SNag

Hoppla! Ich habe anscheinend in der falschen Spalte getestet: P In der Tat funktioniert es auch ohne IFERROR perfekt: P
CustomX

3
Das ist älter als alt, aber ich wollte nur sagen, dass ich das seit Jahren benutze und es nervt mich wirklich, dass Sie nie die beste Antwort erhalten haben. Ich finde es toll, dass die Tabelle für den Vergleich mehrerer Spalten skalierbar ist.
DuffDuff

36

Nach der Antwort von Thielemans habe ich das einfach gemacht

=VLOOKUP(A1, B:C, 2, FALSE) 

funktioniert gut und macht das, was ich wollte, außer dass es #N/Afür Nicht-Übereinstimmungen zurückkehrt; Daher ist es für den Fall geeignet, dass bekannt ist, dass der Wert definitiv in der Nachschlagespalte vorhanden ist.

Bearbeiten (basierend auf dem Kommentar von t.thielemans):

Um #N/ANichtübereinstimmungen zu vermeiden , gehen Sie wie folgt vor :

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")

3
Verwenden Sie dies stattdessen IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Ich habe dies auch zu meiner Antwort hinzugefügt. 0 ist ein beliebiger Wert, den Sie möchten :) (Wenn Sie diesen im Code verwenden, wird keine Übereinstimmung
angezeigt,

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.