Excel:检查列中是否存在单元格值,然后获取NEXT单元格的值

在检查列中是否存在单元格值之后,我需要获取匹配单元格旁边单元格的值 。 例如,我检查cell A1的值是否存在于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)) 

…并不起作用。

我错过了什么? 如何将列号附加到返回的行号以实现所需的结果?

使用不同的function,如VLOOKUP:

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

在t.thielemans的回答之后 ,我就这样做了

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

工作正常,做我想要的,除了它返回#N/A为非匹配; 所以它适用于已知在查找列中肯定存在该值的情况。

编辑 (根据t.thielemans的评论):

为避免不匹配的#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列。