我想看看如何得到這個公式正常工作的例子COUNTIF後filterlist的Excel
= SUMPRODUCT(小計(3,OFFSET($ P $ 7,ROW($ P $ 8:$ P $ 5500) -ROW($ P $ 7),, 1)), - ($ P $ 7:$ P $ 5500 =「74」))
即時通訊要嘗試實現的是計數範圍內的所有單元格,比 零,但我需要得到那個工作後,我應用過濾器。我已經看到了幾個例子,並沒有得到它的工作,與小計fx。
在此先感謝您的幫助!
我想看看如何得到這個公式正常工作的例子COUNTIF後filterlist的Excel
= SUMPRODUCT(小計(3,OFFSET($ P $ 7,ROW($ P $ 8:$ P $ 5500) -ROW($ P $ 7),, 1)), - ($ P $ 7:$ P $ 5500 =「74」))
即時通訊要嘗試實現的是計數範圍內的所有單元格,比 零,但我需要得到那個工作後,我應用過濾器。我已經看到了幾個例子,並沒有得到它的工作,與小計fx。
在此先感謝您的幫助!
工作例如:
O P
4
5 6
6
7 Filter Data
8 1 74
9 0 74
10 1 74
11 0 74
12 1 74
13 0 74
Formula in P5:
=SUMPRODUCT(SUBTOTAL(103,OFFSET($P$7,ROW($P$8:$P$20)-ROW($P$7),,1)),--($P$8:$P$20=74))
現在你可以過濾列O和P5只計算可見74
隨着SUBTOTAL函數103,我真的只算可見單元格。這意味着,手動隱藏的單元格也不計算在內。在函數3中,只有輸出過濾的單元格不計算在內。如果手動隱藏單元格,即使它們不可見,也會對它們進行計數。
而我已經使用值74而不是文本「74」。所以在我的例子中,P列包含數字,而不是文本。
工作原理:
內SUMPRODUCT的分子式爲:在陣列(矩陣)上下文。這意味着它們就像在數組公式中使用一樣處理。
在數組上下文中{ROW($P$8:$P$20)-ROW($P$7)}
得到ROW($P$8)-ROW($P$7) = 1, ROW($P$9)-ROW($P$7) = 2, ROW($P$10)-ROW($P$7) = 3
等等。
OFFSET($P$7,1,,1)
將獲得$ P $ 7 + 1Row = $ P $ 8,OFFSET($P$7,2,,1)
將獲得$ P $ 7 + 2Row = $ P $ 9等等。
所以{OFFSET($P$7,ROW($P$8:$P$20)-ROW($P$7),,1)}
得到{$P$8,$P$9,$P$10,...}
在SUBTOTAL(103, {$P$8,$P$9,$P$10,...})
它計數1,如果{$P$8,$P$9,$P$10,...}
是可見的,否則爲0。
所以SUMPRODUCT結果
SUMPRODUCT({1,0,1,0,1,0,0,...}, --($P$8:$P$20=74))
的{($P$8:$P$20=74)}
導致{TRUE,TRUE,TRUE,FALSE,TRUE,...}
依賴的,如果$ P $ 8:$ P $ 20 = 74。所述--
(*-1*-1
)得到該在數值上下文,使得TRUE = 1和FALSE = 0
所以SUMPRODUCT最終導致
SUMPRODUCT({1,0,1,0,1,0,0,...}, {1,1,1,1,1,1,0,...})
問候
阿克塞爾
謝謝你這麼多Axel,用你的例子我默默地明白了這一次,我沒有得到那個偏移行應該是我列的標題。我已經得到了一切正常運行,但是請你詳細解釋這部分背後的細節:OFFSET($ P $ 7,ROW($ P $ 8:$ P $ 20)-ROW($ P $ 7),, 1)), - - – 2014-09-19 18:21:25
對不起@修改了pnuts。 – 2014-09-19 16:10:54
正如所引用的公式總是會返回一個錯誤 - 這是因爲SUMPRODUCT需要處理相同大小的數組/範圍,但第一部分中有$ P $ 8:$ P $ 5500,第二部分中有$ P $ 7:$ P $ 5500 - 因爲這些尺寸與您獲得#VALUE的尺寸不一樣!錯誤 - 我注意到Axel的例子糾正了那個 – 2014-09-19 18:00:51