close
keyword:excel陣列公式



問題

我要設計一個函數程式,可是一直有錯誤,請高手幫我訂正!
目地:要算從c1-c100列中,算出大於19.99,小於或等於29.99,總共有幾個item
我用下面的方程式,可是有錯誤,可以幫我找蟲嗎?
=COUNTIF(C1:C100,">19.99,<=29.99")





回答:



CountIF 函數的語法不接受兩個以上的條件

因此使用陣列公式,可以有效快速處理多個條件的儲存格個數問題。

公式如下:

=SUM(IF((C1:C100>19.99)*(C1:C100<=29.99),1))

由於是陣列公式,完成時不是直接按 Enter 按鍵,需要按 Ctrl + Shift + Enter 否則會出現錯誤訊息。

說明如下:

(C1:C100>19.99) 陣列拆開之後就是 C1>19.99,C2>19.99,C2>19.99....C100>19.99
如果 C1>19.99 是「真」時,就傳回 True;否則傳回 False。而 True 在 Excel 中剛好是 1;而 False 是 0
因此,只有 True*True 才會得到 1。對於 IF 函數來說, 語法為 IF(判斷式,True,False) ,只有在判斷式的引數部份得到 True 時(也就是 1 時) ,才會將 True 的引數部份加以計算出結果。
(C1:C100>19.99)*(C1:C100<=29.99) 陣列拆開之後就是
(C1>19.99)*(C1<=29.99),(C2>19.99)*(C2<=29.99),(C3>19.99)*(C3<=29.99)...(C100>19.99)*(C100<=29.99),只有 (Cn>19.99)與(Cn<=29.99) 兩個都同時為真(True)時,才會得到 1。
SUM(IF((C1:C100>19.99)*(C1:C100<=29.99),1))
翻成口語,意義如下:
假如陣列 C1:C100>19.99 且 C1:C100<=29.99 得到真時,計算結果就得到 1,否則得到 0(此陣列公式已經將 [假] 的引數部分予以省略),再將陣列 1 或 0 部份使用 SUM 給予加總之。
arrow
arrow
    全站熱搜

    David 發表在 痞客邦 留言(0) 人氣()