Проверьте, существует ли значение ячейки в столбце, а затем получите значение следующей ячейки


после проверки, если значение ячейки существует в столбце, мне нужно получить значение ячейки рядом с соответствующей ячейки. Например, я проверяю, если значение на column B, и предполагая, что он соответствует B5, Я хочу, чтобы значение cell C5.

чтобы решить первую половину задачи, я сделал это...

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

...и это сработало. Затем, благодаря более раннему ответу на SO, я также смог получить номер строки соответствия сотовый:

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

поэтому, естественно, чтобы получить значение следующей ячейки, я пробовал...

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

...и это не работает.

что я упустил? Как добавить номер столбца к номеру строки, возвращенному для достижения желаемого результата?

3 83

3 ответа:

используйте другую функцию, например VLOOKUP:

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

после ответ т. Тилемана, Я работал, что просто

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

работает нормально и делает то, что я хотел, за исключением того, что он возвращает #N/A для несоответствий; поэтому он подходит для случая, когда известно, что значение определенно существует в столбце поиска.

Edit (на основе комментария т. Тилемана):

Чтобы избежать #N/A для не-Игр, сделайте следующее:

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

Как насчет этого?

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

"3" в конце означает для столбца C.