2017-02-08 144 views
1

我有一個索引匹配匹配問題,我一直沒有找到答案在研究。雖然解決方案可能實際上可能與索引匹配匹配公式不同 - 我可以嘗試一些比我目前的解決方法更有效的方法。索引匹配跨多列匹配

我有一張工作表,上面有我公司的數據。我們銷售一種產品(我們稱之爲可樂零度),並跟蹤推廣活動的週數以及我們向零售商出售多少利潤。例如,可口可樂公司的促銷活動從1月的第一週開始,3周後結束,我們每週促銷活動的毛利爲100美元。然後,我有一個外部數據庫,每週都會格式化銷售數據,告訴我每週有多少單位的可口可樂零售。我的內部數據有成千上萬行,有數十種產品,但是無論是否運行超過一週,促銷都合併到一行中,因此難以匹配外部數據庫。我需要爲促銷每週的毛利創造一個查找。

我附上了工作簿的示例圖像+我嘗試做的兩張數據表,總結如下。 在內部數據表中,我已經列出了所有宣傳推廣活動的週數,並將其與產品代碼連接起來,以便能夠逐周與外部數據中的數據進行匹配片。然後,我的查找基本上一個接一個地檢查每一列,直到找到一個與Week_Product Code連接匹配的地方。

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"))) 
+0

考慮一個數據透視表? –

+0

是的,我確實嘗試了一個數據透視表,但是我的數據設置不好,因爲我沒有在上面的屏幕截圖中顯示,我將重複幾周,並且有一些字段應該不是總結(如他們將在一個數據透視表中)。我修了很多,但沒有奏效。 (還是)感謝你的建議。 – Dammitjay

回答

0

SUMPRODUCT用這個公式來工作,J2

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

,你不需要這些串接查詢列:

enter image description here

好吧,那很有趣。

+0

這工作!非常感謝你。一方面說明 - 我一開始並沒有爲我工作,但我發現原因是因爲我的數據集中存在#N/A字段,實際上並不是這樣。所以刪除了那些#N/A的和繁榮!我們很高興去。再次感謝。 – Dammitjay