如果三列匹配excel,则返回一个值

时间:2013-08-21 13:57:26

标签: excel function excel-formula lookup vlookup

我有两个excel表格,我需要匹配三个值才能返回第四个值。类似的列是月,代理和子域。第四列称为差异。

4 个答案:

答案 0 :(得分:8)

根据@MakeCents的建议,

Concatenate可以正常工作,但是如果你不想要一个帮助列,那么SUMPRODUCT就可以了。

示例:

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

将搜索范围A2:A12表示“d”,B2:B12表示“S”,C2:C12表示“4月”,并返回值fom D2:D12,其对应于所有3都为真的位置。如果多行匹配,则会在D2:D12中为所有匹配的行添加值。

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

SUMPRODUCT

的限制
  • 建议明确指定范围;它会慢一些 列参考文献
    A1:A4000 没关系, A:A 不是)
  • 如果值的 任何 错误,则会返回错误
  • 仅返回数字结果 - 文本评估为零

答案 1 :(得分:1)

虽然我相信@MakeCents关于如何做到这一点的评论/建议是因为它是最简单的,但你可以使用{{1}以不同的方式实现这一点(尽管处理器密集程度更高) }和Index()函数和数组公式。

例如,假设您要查找的3列数据是A-C列,并且您希望从Sheet1中的D列返回匹配值

现在,你想要匹配的3个值在单元格A1,B1和& Sheet2的C1,您可以使用以下公式:

Match()
按<{1}} + =INDEX(Sheet1!D:D,MATCH(1,(Sheet1!A:A=A1)*(Sheet1!B:B=B1)*(Sheet1!C:C=C1),0)) + Ctrl

输入其作为阵列公式

希望这有帮助!

答案 2 :(得分:1)

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

最强大的选项之一

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

无需输入数组公式。 取自[1] (blogs.office.com)

另请参阅this very complete answer,其中总结了使用多个条件执行查找的此选项和其他选项。

PS1:请注意,我根据this使用了对完整列的引用。

PS2:对于输出列不包含数字的情况,可以将此视为the solution by Sean的增强。

参考

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

答案 3 :(得分:0)

试试这个

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