如果在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的最佳文章。