比较两列,并在Excel中返回特定的相邻单元格

我正在使用ifiserrormatchiserror函数的组合,不幸的是我找不到合适的公式。

比较两列进行匹配很容易。 一旦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行相同。 由于A4C5匹配,我想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近似匹配。