2012-10-16 22 views
79

Nach dem Überprüfen, ob ein Zellenwert in einer Spalte vorhanden ist, muss ich den Wert der Zelle neben der entsprechenden Zelle abrufen. Zum Beispiel überprüfe ich, ob der Wert in cell A1 in column B existiert, und unter der Annahme, dass es B5 entspricht, dann möchte ich den Wert in cell C5.Excel: Überprüfen Sie, ob Zelle Wert in Spalte vorhanden ist, und dann den Wert der Zelle NEXT

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

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

tat ... und es funktionierte. Dann dank ein earlier answer on SO, war ich auch in der Lage, die Zeilennummer der passenden Zelle zu erhalten:

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

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

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

... und es funktioniert nicht.

Was fehlt mir? Wie füge ich die Spaltennummer an die zurückgegebene Zeilennummer an, um das gewünschte Ergebnis zu erzielen?

Antwort

31

Nach t.thielemans' answer arbeitete ich, dass nur

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

funktioniert gut und das tut, was ich wollte, mit der Ausnahme, dass es wieder #N/A für Nicht-Übereinstimmungen; also ist es für den Fall geeignet, wo bekannt ist, dass der Wert definitiv in der Nachschlagespalte existiert.

bearbeiten (basierend auf t.thielemans' Kommentar):

Um #N/A für Nicht-Übereinstimmungen zu vermeiden, tun:

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

Verwenden Sie stattdessen "IFERROR (SVERWEIS (A1, B: C, 2, FALSE), 0)". Ich fügte das auch meiner Antwort hinzu. 0 ist der von Ihnen gewünschte Wert :) (Verwenden Sie dies im Code wird zu No Match führen, wenn keine Übereinstimmung gefunden wird;) – CustomX

91

eine andere Funktion, wie VLOOKUP Verwendung:

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

Dank! Das klappt auch! Und ich denke, es wäre besser, "SVERWEIS (A1, B: C, 2, FALSCH)" zu verwenden, anstatt einen festen Bereich zu verwenden (um ein wachsendes Nachschlage-Array aufzunehmen)? – SNag

+1

Ja, habe gerade diesen festen Bereich als Test verwendet. Bearbeitet es in meiner Antwort. – CustomX

+0

Sie brauchen hier nicht 'IFERROR'. Es funktioniert ohne es, weil der SVERWEIS nur ausgeführt wird, wenn es eine Übereinstimmung gibt. – SNag

6

Wie wäre das?

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

Die „3“ am Ende bedeutet für Spalte C

+2

Fantastisch! Ich habe gerade genau das versucht (basierend auf [Excel: Inhalt einer Zelle bekommen die Zeilen- und Spaltennummern] (http://stackoverflow.com/q/4813888/979621)), und war im Begriff, meine eigene Frage zu beantworten, aber Du warst schneller als ich! Danke, es funktioniert super! – SNag

Verwandte Themen