索引匹配跨多列

我有一个索引匹配匹配问题,我一直没能find答案在研究。 虽然解决scheme可能实际上可能会不同于索引匹配匹配公式 – 我可以尝试一些比我目前的解决方法更有效的方法。

我有一个从我的公司的数据工作表。 我们销售一种产品(我们称之为可乐零度),然后跟踪推广的周数以及我们通过向零售商出售多less利润。 例如,可口可乐的促销活动从1月的第一个星期开始,3周后结束,我们每个星期的促销活动的毛利为100美元。 然后我有一个外部数据库,每星期都会格式化销售数据,告诉我每星期有多less单位的可乐零售。 我的内部数据有成千上万条这样的产品,但是这些促销被合并在一个行上,无论它是否运行超过一周,使得与外部数据库的匹配变得困难。 我需要创build一个查找我们的毛利每星期的促销。

我附上了一个工作簿的示例图像+我尝试做的两个数据表,总结如下。 在内部数据表中,我已经列出了所有星期列出的促销信息,并将它们与产品代码连接在一起,以便能够逐周匹配外部数据表中的数据。 然后,我的查找基本上逐一检查每一列,直到find一个与Week_Product Code连接匹配的地方。

示例从Excel工作簿Screengrab

我目前的解决scheme在技术上是可行的,但是当考虑到多个零售商时,由于数据可以在10K-200K行的任何地方,所以我的最终公式是非常缓慢和麻烦的。 我希望find一个更有效的公式来完成查找。

外部数据表中的当前解决scheme列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"))) 

我在J2使用这个公式来使用SUMPRODUCT

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

而且 ,您不需要这些连接的查找列:

在这里输入图像说明

那么,那很有趣。