Excel 检查列中是否存在单元格值,然后获取下一个单元格的值

Excel 检查列中是否存在单元格值,然后获取下一个单元格的值,excel,Excel,检查列中是否存在单元格值后,我需要获取匹配单元格旁边的单元格值。例如,我检查单元格A1中的值是否存在于列B中,并假设它与B5匹配,那么我需要单元格C5中的值 为了解决问题的前半部分,我做了这个 =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match") …而且成功了。然后,多亏了an,我还能够获得匹配单元格的行号: =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MAT

检查列中是否存在单元格值后,我需要获取匹配单元格旁边的单元格值。例如,我检查
单元格A1
中的值是否存在于
列B
中,并假设它与
B5
匹配,那么我需要
单元格C5
中的值

为了解决问题的前半部分,我做了这个

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
…而且成功了。然后,多亏了an,我还能够获得匹配单元格的行号:

=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))
…但它不起作用


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

使用不同的函数,如VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
这个怎么样

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))
结尾处的“3”表示C列。

之后,我刚刚开始工作

=VLOOKUP(A1, B:C, 2, FALSE) 
工作正常,做我想做的事情,只是它返回
#N/A
用于非匹配项;因此,它适用于已知值肯定存在于查找列中的情况

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

要避免对不匹配项不适用,请执行以下操作:

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

好极了我刚刚试过(基于),正要回答我自己的问题,但你抢先一步!谢谢,效果很好!谢谢这也行!我认为最好使用
VLOOKUP(A1,B:C,2,FALSE)
而不是使用固定范围(以适应不断增长的查找数组)?是的,只是将此固定范围用作测试。在我的回答中编辑了它。您不需要在这里输入错误。没有它,它可以正常工作,因为只有在有匹配的情况下才会执行VLOOKUP。哎呀!我似乎在错误的专栏中进行了测试:P确实没有IFERROR它也能完美工作:P这比旧的要老,但我只是想说我已经用了很多年了,它真的让我很烦,你从来没有得到最好的答案。我喜欢它使表可以伸缩以比较多个列。请改用它
IFERROR(VLOOKUP(A1,B:C,2,FALSE),0)
。我也在我的答案中添加了这一点。0是您想要的任何值:)(如果找不到匹配项,则在代码中使用此选项将导致不匹配;)您是一个救生员!谢谢