索引匹配多个列的匹配

时间:2017-02-08 09:46:11

标签: excel excel-formula

我有一个索引匹配问题,我无法在研究中找到答案。虽然解决方案实际上可能与索引匹配匹配公式不同 - 我可以尝试比我当前的解决方法更有效的方法。

我有一张工作表,上面有我公司的数据。我们销售一种产品(让我们称之为Coke Zero),我们跟踪我们推销的周数以及通过将其出售给零售商而获得的利润。例如,可口可乐零的促销活动从1月的第一周开始,到3周后结束,我们每周促销活动的毛利润为100美元。然后我有一个外部数据库,每周都会格式化销售数据,告诉我每周销售的Coke Zero有多少单位。我的内部数据有数千条这样的产品线,有数十种产品,但是促销在一行中合并,无论它是否运行超过一周,都难以与外部数据库匹配。我需要为促销的每周创建一个查询我们的毛利润。

我附上了工作手册的示例图片+我试图做的两张数据表,总结如下。 在内部数据表中,我已经创建了右侧的其他列,列出了促销所在的所有周,并将它们与产品代码连接起来,以便能够逐周匹配外部数据数据表。然后我的查找基本上一个接一个地检查每一列,直到找到一个Week_Product代码连接的连接匹配的列。

Example Screengrab from Excel Workbooks

我目前的解决方案在技术上有效但我的最终公式确实很慢且很麻烦,因为在查看多家零售商时,数据可能是10K-200K线。我希望找到一个更有效的公式来完成查找。

外部数据表E列的当前解决方案:

=IF(ISNUMBER(MATCH(D2,'Internal Data'!$E:$E,0)),INDEX('Internal Data'!$D:$D,MATCH(D2,'Internal Data'!$E:$E,0)),
IF(ISNUMBER(MATCH(D2,'Internal Data'!$F:$F,0)),INDEX('Internal Data'!$D:$D,MATCH(D2,'Internal Data'!$F:$F,0)),
IF(ISNUMBER(MATCH(D2,'Internal Data'!$G:$G,0)),INDEX('Internal Data'!$D:$D,MATCH(D2,'Internal Data'!$G:$G,0)),
"0")))

1 个答案:

答案 0 :(得分:0)

我在SUMPRODUCT中使用此公式J2工作:

=SUMPRODUCT(--($B$2:$D$3=H2)*--($E$2:$E$3=I2)*$F$2:$F$3)

,您不需要这些连续的查找列:

enter image description here

嗯,这很有趣。