我有两个 Excel 表,我需要匹配三个值才能返回第四个。类似的列是月份、代理和子域。第四列称为差异。
4 回答
根据@MakeCents 的建议,连接会起作用,但如果您不想要帮助列,SUMPRODUCT
也可以。
例子:
=SUMPRODUCT(--(A2:A12="d"),--(B2:B12="S"),--(C2:C12="Apr"),D2:D12)
将在 A2:A12 范围内搜索“d”,在 B2:B12 范围内搜索“S”,在 C2:C12 范围内搜索“Apr”,并返回对应于所有 3 个为真的 D2:D12 的值。如果多行匹配,它将为所有匹配的行添加 D2:D12 中的值。
用于将--
True/False 结果更改为 0 和 1 以用于乘法
的限制SUMPRODUCT
- 建议明确指定范围;仅使用列引用会更慢
(A1:A4000可以,A:A不行) - 如果任何值是错误 ,它将返回错误
- 它只会返回数字结果 - 文本被评估为零
尽管我相信@MakeCents 关于如何执行此操作的评论/建议是我会采用的方法,因为它是最简单的,但您可以使用Index()
andMatch()
函数和数组公式以不同的方式完成此操作(尽管处理器密集度更高)。
例如,假设您要匹配的 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
希望这可以帮助!
您正在寻找具有多个条件的查找。
最强大的选择之一是
=INDEX(D:D,SUMPRODUCT(--(A:A="d"),--(B:B="S"),--(C:C="Apr"),ROW(D:D)),0)
它不需要作为数组公式输入。取自[1] (blogs.office.com)。
另请参阅这个非常完整的答案,它总结了这个和其他用于执行具有多个条件的查找的选项。
PS1:请注意,我使用了对完整列的引用,根据this。
PS2:对于输出列不包含数字的情况,这可以被认为是Sean 对解决方案的增强。
参考
[1] 这篇文章由大白鲨奖获得者 JP Pinto 撰写,该奖获得者是在 VLOOKUP 周期间撰写的关于 VLOOKUP 的最佳文章。
试试这个
=IF(A4=Data!$A$4:$A$741,IF(B4=Data!$B$4:$B$741,"Hai"))