在检查列中是否存在单元格值之后,我需要获取匹配单元格旁边的单元格的值.例如,我检查是否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)
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)
这个怎么样?
=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列.
| 归档时间: |
|
| 查看次数: |
778976 次 |
| 最近记录: |