如果在Excel中匹配三列,则返回一个值

我有两个Excel表,我需要匹配三个值返回第四。 类似的列是月,代理和子域。 第四列叫差异。

按照@MakeCents的build议,连接可以工作,但是如果你不想要帮助列, SUMPRODUCT就可以工作。

例:

 =SUMPRODUCT(--(A2:A12="d"),--(B2:B12="S"),--(C2:C12="Apr"),D2:D12) 

将search范围A2:A12作为“d”,B2:B12作为“S”,C2:C12作为“Apr”,并且返回对应于全部3为真的那个值的fom D2:D12。 如果多行匹配,则会为所有匹配的行添加D2:D12中的值。

--用于将真/假结果更改为0和1以用于乘法

SUMPRODUCT限制

  • build议明确指定范围; 只有列引用会更慢
    A1:A4000好, A:A不好)
  • 如果有任何值是错误的,它将返回一个错误
  • 它将仅返回数字结果 – 文本评估为零

尽pipe我相信@MakeCents对于如何做到这一点的评论/build议是我最好的方式,因为它是最简单的,但是使用Index()Match()可以以不同的方式完成这个任务(更多的处理器密集型Match()函数和数组公式。

例如,假设您要匹配的3列数据是列AC,并且您希望返回Sheet1中列D的匹配值

现在,您希望匹配的3个值位于Sheet2的单元格A1,B1和C1中,可以使用以下公式:

 =INDEX(Sheet1!D:D,MATCH(1,(Sheet1!A:A=A1)*(Sheet1!B:B=B1)*(Sheet1!C:C=C1),0)) 

并按Ctrl + Shift + Enter 数组公式

希望这可以帮助!

尝试这个

 =IF(A4=Data!$A$4:$A$741,IF(B4=Data!$B$4:$B$741,"Hai")) 

您正在查找具有多个条件查找

其中最强大的select之一

 =INDEX(D:D,SUMPRODUCT(--(A:A="d"),--(B:B="S"),--(C:C="Apr"),ROW(D:D)),0) 

它不需要作为数组公式input 。 取自[1](blogs.office.com) 。

另请参阅此非常完整的答案 ,该答案总结了用多种标准执行查找的此选项和其他选项。

PS1:请注意,我使用了全列的引用。

PS2:在输出列不包含数字的情况下,这可以被认为是Sean解决scheme的增强。

参考

[1]这篇文章是由JP Pinto写的,这是大白鲨奖的得主,这篇文章是关于VLOOKUP周期间关于VLOOKUP的最佳文章。