2016-02-28 151 views
0

我在編寫和索引匹配公式時遇到了3條錯誤。我有一些類似於綠色桌子的東西,想寫一個公式來獲得灰色表格。索引匹配3條件

在綠表中,每個「事件」都有一個開始和結束時間。所以在灰色時間系列中,時間必須在這些開始和結束時間之間。

enter image description here

+0

爲什麼不是1×1藍色? – Jeeped

+0

對於這個例子,時間(灰色)必須是「> StartTime」。 (not> =) – Sammy

+0

請參閱[爲什麼不顯示代碼和示例數據圖像](http://tinyurl.com/kdxb7le)。 – Jeeped

回答

1

嘗試在G4這個標準公式,

=IFERROR(INDEX($C:$C, AGGREGATE(15, 6, ROW($1:$7)/ 
    (($A$1:$A$7<$F4)*($B$1:$B$7>$F4)*($D$1:$D$7=G$3)), 1)), "") 

填寫向右和向下。

這與Two column lookup in table array using INDEX and MATCH實質上沒有什麼不同。

enter image description here

+0

這表明'AGGERATE'是**不是**避免數組公式的解決方案。因爲'= IFERROR(INDEX($ C:$ C,AGGREGATE(15,6,ROW($ 1:$ 1048576)/(($ A:$ A <$F4)*($B:$B> $ F4)*($ D:$ D = G $ 3)), 1)),「」)'與數組公式一樣耗時。 –

+1

Axel,AGGREGATE的處理方式與SUMPRODUCT相同;它不會像使用SUMIFS那樣截斷使用的範圍,等等。我從來沒有說過它,並且在這個解決方案中將處理範圍降低到7行。如果事實上,嵌套的基於IF的數組公式會稍微快一些,因爲如果第一個或第二個IF條件根本不處理,則第一個或第二個失敗。 – Jeeped

+0

是的,我正在處理大量數據,所以速度是一個問題。可能嘗試嵌套如果建議。 – Sammy

0

我想我會用VBA作爲@Jeeped建議。 但現在我嘗試了嵌套,如果像這樣在G4:

=IFERROR(INDEX($C$2:$C$7,MATCH(G$3,IF($F4>$A$2:$A$7,IF($F4<$B$2:$B$7,$D$2:$D$7,0),0),0)),"") 

不知道什麼是速度更好。