检查列中是否存在单元格值后,我需要获取匹配单元格旁边的单元格值。例如,我检查cell A1
中column B
中的值是否存在,并假设它与B5
匹配,那么我想要cell C5
中的值。
为解决问题的前半部分,我这样做了......
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
......它奏效了。然后,感谢earlier answer on 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))
......它不起作用。
我错过了什么?如何将列号附加到返回的行号以获得所需的结果?
答案 0 :(得分:99)
使用其他功能,例如VLOOKUP:
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
答案 1 :(得分:34)
在t.thielemans' answer之后,我只是
=VLOOKUP(A1, B:C, 2, FALSE)
工作正常并做我想要的,除了它返回#N/A
非匹配;所以它适用于已知该值肯定存在于查找列中的情况。
编辑(根据t.thielemans的评论):
要避免#N/A
不匹配,请执行以下操作:
=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
答案 2 :(得分:7)
这个怎么样?
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))
末尾的“3”表示C列。