星期四, 9月 04, 2008

[Excel]使用COUNTIF函數來統計符合條件數量

自從7月中不慎踏入萬紅叢中的護理站之後,"一點綠"就成了最好用的...職務代理人啦。:P
咳~扯遠了... 其實是又到月初要統計納入管理的結核病個案現況的時間了,娥姊靈光乍現的跑來問我有沒有Excel公式可以幫她挑出TB完治個案...,所以今天就來share怎麼使用Excel一個好用的函數-COUNTIF-配合動態條件來達到判斷某範圍內之儲存格的值是否符合特定準則,並計算符合之儲存格的數目 ^^。

--
首先,先說明一下COUNTIF函數代表的意義吧:
COUNTIF: 計算某限定範圍內符合準則的儲存格數量 (或者說... 出現的次數)
它的語法為COUNTIF(range,criteria)
其中「range」顧名思義就是「範圍」,在這裡表示欲計算符合準則之儲存格個數的儲存格範圍;「criteria」則是「條件、準則」的意思,在這裡指的是用以決定要將哪些儲存格列入計算的準則。而這些所謂的「條件、準則」可以是數字、表示式、文字或儲存格參照,但是不能直接放函數。criteria可以是59(數字)、"32"(引號內指的是文字)、">32"(表示式),或下圖範例中的"完治"、F2(儲存格),甚至是AVERAGE(函數)。
--
範例1:

範例2:

附帶一提的是,像上面的範例2...
如果只是單純要知道他們家有幾隻丁丁(智商≦60),那很簡單~
就是 =COUNTIF(B2:B6,">=60")
可是想知道有多少人智商高於家族平均?
就不是 =COUNTIF(B2:B6,">=AVERAGE(B2:B6)")這樣囉~!
因為Excel會把引號內的敘述(">=AVERAGE(B2:B6)")當做是單純的文字,而不會把 AVERAGE()當做函數去計算平均值。
所以正確的用法是~
=COUNTIF(B2:B6,">="&AVERAGE(B2:B6))
把AVERAGE()放在引號之外,先算出平均值,&運算子可以把AVERAGE算出來的平均值和">="連接成一組文字,再送給COUNTIF()去計算。這樣就可以讓COUNTIF()使用動態的條件,而不再是固定的數字、表示式或文字囉。

p.s.1 範例中D10(平均智商)僅供參考,實際使用上並不需要額外計算。
p.s.2 本文使用的COUNTIFS是office 2007特有的新函數~ (2003之前只有COUNTIF()而已 >"<).. 所以~再研究看看有沒有其他辦法吧。

5 則留言:

小毛兒 提到...

謝謝,幫助很大~~

eanily 提到...

千想萬想想不出...原來還要一個&啊...

大感謝!!!

Unknown 提到...

thank you! 很有用 :D

匿名 提到...

感謝您,圖文並茂解說得很詳盡。
但範例2中
=COUNTIF(B2:B6,">="&AVERAGE(B2:B6))
是否應為
=COUNTIF(B3:B15,">="&AVERAGE(B3:B15))

Chris 提到...

ㄟ~ 真的耶,我不小心寫錯了..
謝謝你的提醒,我立馬修正! :)