91

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

......它不起作用。

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

4

3 回答 3

100

使用不同的函数,例如 VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
于 2012-10-16T13:11:18.583 回答
39

t.thielemans 的回答之后,我就这样工作了

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

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

编辑(基于 t.thielemans 的评论):

为避免#N/A不匹配,请执行以下操作:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
于 2012-10-16T13:51:57.733 回答
7

这个怎么样?

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

末尾的“3”表示 C 列。

于 2012-10-16T13:21:21.073 回答