2017-07-11 55 views
2

我不知道如果我理解FILTER如何工作。
我只想SUM只有滿足FILTER這兩個條件的結果並得到8+10=18,但似乎我得到8+9+10=27,就好像忽略了第一個條件一樣。由兩個條件篩選然後SUM結果

兩個=SUM(FILTER(E1:E10,MATCH(D1:D10, G1:G4), E1:E10 > 7))=SUM(FILTER(E1:E10,MATCH(D1:D10, G1:G4) * (E1:E10 > 7)))回報27

有什麼想法?

這裏是一個example和截圖 enter image description here

回答

2

關鍵的東西是把第三個參數爲MATCH函數指定完全匹配

=SUM(FILTER(E1:E10,MATCH(D1:D10, G1:G4,0), E1:E10 > 7)) 

否則你得到最大價值的位置小於或等於查找值:例如對於「G」,你會得到一個匹配的「D」,它會返回4.因此,原始公式中的匹配函數總是返回一個數字> = 1,將其視爲True。

有趣的是,上述公式的工作原理實際上是因爲不匹配會返回#N/A,但顯然它被視爲假 - 我不知道這是否記錄在案。

我總是把

=SUM(FILTER(E1:E10,isnumber(MATCH(D1:D10, G1:G4,0)), E1:E10 > 7)) 

,以使其更清晰。

+0

謝謝@湯姆,我完全錯過了事實,MATCH實際上是在選擇一切 – Ionut