检查Column中是否存在Cell值,然后获取NEXT Cell的值

SNa*_*Nag 87 excel

在检查列中是否存在单元格值之后,我需要获取匹配单元格旁边的单元格的值.例如,我检查是否cell A1存在值column B,并假设它匹配B5,然后我想要值cell C5.

要解决问题的前半部分,我这样做了......

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
Run Code Online (Sandbox Code Playgroud)

......而且它奏效了.然后,由于早先对SO的回答,我还能够获得匹配单元格的行号:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))
Run Code Online (Sandbox Code Playgroud)

很自然地,为了获得下一个细胞的价值,我试着......

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))
Run Code Online (Sandbox Code Playgroud)

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

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

Cus*_*omX 99

使用不同的函数,如VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
Run Code Online (Sandbox Code Playgroud)

  • 这比旧的旧,但我只是想说我多年来一直在使用它,这真的让我觉得你从来没有得到最好的答案.我喜欢它使表格可以比较多列. (3认同)

SNa*_*Nag 35

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

=VLOOKUP(A1, B:C, 2, FALSE) 
Run Code Online (Sandbox Code Playgroud)

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

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

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

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
Run Code Online (Sandbox Code Playgroud)

  • 使用它来代替`IFERROR(VLOOKUP(A1,B:C,2,FALSE),0)`.我也把这个添加到我的答案中.0是你想要的任何值:)(如果没有找到匹配,在代码中使用它将导致不匹配;) (3认同)

Vin*_*Tan 7

这个怎么样?

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))
Run Code Online (Sandbox Code Playgroud)

C列末尾的"3"表示C列.

  • 太棒了!我只是尝试了(基于[Excel:得到行和列号的单元格的内容](http://stackoverflow.com/q/4813888/979621)),并且即将回答我自己的问题,但是你打败了我!谢谢,它很棒! (2认同)