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列。