我是新來的Stackoverflow,所以請讓我知道如果沒有足夠的信息。過去我通過使用StackOverflow獲得了許多有益的見解,但是我找不到任何有用的線索,所以我希望你能幫助我。使用sumproduct Excel 2013高級日期範圍查找
我一直在一個excel(2013)問題一段時間了。我試圖建立一個營銷議程來存儲和跟蹤我們的郵件活動。活動本身是通過另一個系統發送的,但我們錯過了提前計劃我們的郵件活動的能力。由於我們活躍於歐洲的不同市場,因此我們決定發佈一個普通郵件(針對所有地區)和針對特定地區的郵寄活動(兩者都在同一議程中)。除此之外,我們還希望展示郵件重點(不同品牌)。我的想法是儘可能地將其視爲可視的(以使其適用於所有用戶)。我添加了一張小圖片來顯示我想要的最終結果(但此時沒有任何數據)。
此時,用戶要使用一個(谷歌)的形式進入活動信息並將此數據被下載到工作表(這樣做的所有用戶可以添加新的廣告活動,每個人總有進入最最近的數據)。這部分運作良好。
我正在使用助手錶來檢查日期是否屬於廣告系列範圍,如果確實屬於廣告系列範圍,它應該返回郵寄ID(也是行號)。我有另一種形式使用這些數據來搜索正確的品牌並以可視化方式顯示(使用大量條件格式)。
問題出現在輔助工具表中(當我檢查日期是否屬於活動範圍時)。我已經能夠用下面的公式得到它的工作(或多或少):
=IF(SUMPRODUCT(--(CountryHelper!$C$2:$C$100<=$B4);--(CountryHelper!$D$2:$D$100>=$B4);RIJ(CountryHelper!$C$2:$C$100))=0;"";INDEX(CountryHelper!$A$2:$A$100;SOMPRODUCT(--(CountryHelper!$C$2:$C$100<=$B4);--(CountryHelper!$D$2:$D$100>=$B4);ROW(CountryHelper!$A$2:$A$100))))
在這個公式中,CountryHelper!C:C被引用的郵件campaing的起始日期。 D:D將引用EndDates的列,並且A:A具有郵寄ID。單元格B4是需要檢查的日期。
起初它看起來很完美。如果日期落在日期範圍內,則會返回該ID。稍微玩了一下後,這個問題就暴露出來了。它只適用於不重疊的日期,一旦日期重疊excel會將行號添加到一起,它不會再工作。
是否有可能獲得sumproduct配方工作並返回第一個ID。我知道我必須再製作2個返回第二和第三個ID的公式(我確定我們沒有超過3個重疊日期)。這也是我迷失方向的一部分。我試圖使用MIN和MAX變化機智以下SUMPRODUCT式:
=SUMPRODUCT(--(CountryHelper!$C$2:$C$100<=$B4);--(CountryHelper_RSEU!$D$1:$D$100>=$B4);ROW(CountryHelper!$C$1:$C$100))
這將返回0(與MIN)或100(最大)。我認爲這是由公式引起的(目前它只搜索前99行)。我也冒險進入VBA/UDF來完成這項工作,但據我所知,這是不可能的。
無論如何,我對這個漫長的故事感到抱歉,我希望我的問題很明確,你可以幫助我。如果您需要更多信息。
謝謝!
empty Marketing Agenda overview
嗨阿克塞爾,非常感謝您的快速回復。您的解決方案運作良好這種情況下使用數組公式的區別是什麼?我對數組公式還是有點新的。 – Martijn 2014-11-24 12:44:14
請參閱我編輯的答案。 – 2014-11-24 13:35:57
嗨Axel,非常感謝,這解釋了很多關於數組公式如何工作以及Excel如何處理它們的信息。無論如何,再次感謝,祝你有美好的一天! – Martijn 2014-11-24 14:00:37