在检查列中是否存在单元格值之后,我需要获取匹配单元格旁边的单元格的值。例如,我检查column B
中是否存在cell A1
中的值,并假设它与B5
匹配,那么我想要cell C5
中的值。
为了解决问题的前半部分,我这样做了…
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
...and它起作用了。然后,多亏了一个earlier answer on 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))
...and它不工作。
我遗漏了什么?如何将列号附加到返回的行号后才能达到预期效果?
发布于 2012-10-16 21:51:58
在t.thielemans' answer之后,我的工作只是
=VLOOKUP(A1, B:C, 2, FALSE)
它工作得很好,并且做了我想做的事情,除了它在不匹配时返回#N/A
;因此它适用于已知该值确实存在于查找列中的情况。
编辑(基于t.thielemans的评论):
要避免不匹配的#N/A
,请执行以下操作:
=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
发布于 2012-10-16 21:11:19
使用不同的函数,如VLOOKUP:
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
发布于 2012-10-16 21:21:21
这个怎么样?
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))
末尾的"3“表示C栏。
https://stackoverflow.com/questions/12915215
复制相似问题