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 A1
vorhanden 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?
VLOOKUP(A1, B:C, 2, FALSE)
einen festen Bereich zu verwenden, anstatt ihn zu verwenden (um ein wachsendes Lookup-Array aufzunehmen)?IFERROR
hier nicht. Ohne funktioniert es einwandfrei, da der VLOOKUP nur ausgeführt wird, wenn eine Übereinstimmung vorliegt.Nach der Antwort von Thielemans habe ich das einfach gemacht
funktioniert gut und macht das, was ich wollte, außer dass es
#N/A
fü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/A
Nichtübereinstimmungen zu vermeiden , gehen Sie wie folgt vor :quelle
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 ÜbereinstimmungWie wäre es damit?
Die "3" am Ende bedeutet für Spalte C.
quelle