比较两列,并在Excel中返回特定的相邻单元格
我正在使用if
, iserror
, match
, iserror
函数的组合,不幸的是我找不到合适的公式。
比较两列进行匹配很容易。 一旦find了比赛,困难的部分已经返回一个特定的单元格。
所以我正在处理的是这样的:
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
的值
让我知道如果这是有道理的,或者如果你需要进一步澄清。
非常类似于这个问题 ,我会build议在列D相同的公式,虽然一些范围的变化:
=IFERROR(VLOOKUP(C1, A:B, 2, 0), "")
如果你想使用匹配,你也必须使用INDEX
,如下所示:
=IFERROR(INDEX(B:B, MATCH(C1, A:A, 0)), "")
但这对我来说真的很长,你需要知道如何正确使用两个函数(或三个,如果你不知道IFERROR
工作原理)!
注意: =IFERROR()
在某些情况下, =IFERROR()
可以代替=IF()
和=ISERROR()
这里是需要去的D1: =VLOOKUP(C1, $A$1:$B$4, 2, FALSE)
然后,您应该可以将其复制到D列的其余部分。
在单元格D2中复制下来:
=IF(COUNTIF($A$2:$A$5,C2)=0,"",VLOOKUP(C2,$A$2:$B$5,2,FALSE))
我build议你交换B和C列 ,理由是我会解释。 然后在D2中input: = VLOOKUP(A2,B2:C4,2,FALSE)
最后,复制剩余单元格的公式。
说明: VLOOKUP将首先在范围B2到C4(第二个参数)中findA2的值。 注意: VLOOKUP总是search该范围的第一列。 这就是为什么在做任何事情之前你必须交换两列。
一旦find完全匹配,它将返回相邻单元格中的值(第三个参数)。
这意味着,如果将1作为第三个参数,函数将返回范围第一列中的值(这与您正在查找的值相同)。 如果放2,它将返回范围第二列的值(相邻单元格的值 – find值的右侧)。
FALSE表示您正在查找完全匹配。 如果您inputTRUE,您将search近似匹配。