我正在使用if
,vlookup
,match
,iserror
函数的组合,遗憾的是我无法找到正确的公式。
比较两列匹配很容易。一旦找到匹配,困难部分就会返回特定的细胞。
所以我正在处理的事情是这样的:
Header Column A Column B Column C Column D
Row 1 111 AAA 112
Row 2 222 BBB 111
Row 3 333 CCC 221
Row 4 444 DDD 333
我正在尝试将Column A
中的列值与Column C
进行匹配。因此,如果匹配,我希望Column B
中的相应值填入Column D
。这不是一个很好的解释,但允许我直观地向您展示我正在寻找的东西
Header Column A Column B Column C Column D
Row 2 111 AAA 112
Row 3 222 BBB 111 AAA
Row 4 333 CCC 221
Row 5 444 DDD 333 CCC
由于单元格A1
与单元格C3
匹配,我希望D
返回B2
与行5
相同。由于A4
和C5
匹配,我想要B5
如果这有意义,或者您需要进一步澄清,请告诉我。
答案 0 :(得分:8)
与this question非常相似,我建议在D栏中使用相同的公式,尽管对范围进行了一些更改:
=IFERROR(VLOOKUP(C1, A:B, 2, 0), "")
如果你想使用匹配,你也必须使用INDEX
,如下所示:
=IFERROR(INDEX(B:B, MATCH(C1, A:A, 0)), "")
但这对我来说真的很长,你需要知道如何正确使用两个函数(如果你不知道IFERROR
是如何工作的话,还是三个函数)!
注意:在某些情况下,=IFERROR()
可以替代=IF()
和=ISERROR()
:)
答案 1 :(得分:1)
以下是D1中的内容:=VLOOKUP(C1, $A$1:$B$4, 2, FALSE)
然后,您应该可以将其复制到D列的其余部分。
答案 2 :(得分:0)
在单元格D2中并向下复制:
=IF(COUNTIF($A$2:$A$5,C2)=0,"",VLOOKUP(C2,$A$2:$B$5,2,FALSE))
答案 3 :(得分:0)
我建议你交换B和C列,因为我会解释。 然后在D2类型: = VLOOKUP(A2,B2:C4,2,FALSE)
最后,复制剩余单元格的公式。
说明: VLOOKUP将首先在B2到C4(第二个参数)的范围内找到A2的值。注意: VLOOKUP始终会搜索此范围内的第一列。 这就是您在执行任何操作之前必须交换两列的原因。
找到完全匹配后,它将返回相邻单元格中的值(第三个参数)。
这意味着,如果您将1作为第三个参数,则该函数将返回该范围的第一列中的值(将与您要查找的值相同)。如果放2,它将返回范围中第二列的值(找到值的相邻单元格中的值 - 右侧)。
FALSE表示您找到完全匹配。如果您输入TRUE,您将搜索近似匹配。