2008年5月21日 星期三

[EXCEL] COUNTIF 配合動態條件

 
  相關函數COUNTIF() / SUMIF()

  想知道有多少人分數及格?簡單 =COUNTIF(B2:B6,">=60")

  想知道有多少人分數高於平均?應該是 =COUNTIF(B2:B6,">=AVERAGE(B2:B6)")

  Sorry 答錯了!觀念正確,但是用法錯誤。

##CONTINUE##
  COUNTIF() 的第二個參數 criteria 只能放數字、表示式或文字,但是不能直接放函數。像上面的用法,Excel 會把 ">=AVERAGE(B2:B6)" 當做是單純的文字,而不會把 AVERAGE() 當做函數去計算平均值。正確的用法是

  =COUNTIF(B2:B6,">="&AVERAGE(B2:B6))

  把 AVERAGE() 放在引號之外,先算出平均值,& 運算子可以把算出來的平均值和 ">=" 連接成一組文字,再送給 COUNTIF() 去計算。這樣就可以讓 COUNTIF() 使用動態的條件,而不再是固定的數字、表示式或文字了。

  圖中的 C 欄僅供參考用,實際使用上並不需要。

  同樣的方法,也可以用在 SUMIF() 上,試試看吧!

  對了,如果想知道分數高於平均的人名列表,可以參考這篇文章 [EXCEL] 用公式篩選資料

16 意見:

通達人 2008/9/17 上午11:49 提到...

請問一下,可以說一下在兩個變數的情況下,如何用countif來計算?

whitefox 2008/9/18 上午9:42 提到...

你是指兩個變數還是兩個條件?
如果是兩個變數的話, 直接套用文章中的用法即可,在 & 之後可以接多個變數。
如果是兩個條件的話, 我還想不出直接使用 COUNTIF() 的做法。你可以改用 SUMPRODUCT() 來做,請參考另一篇文章
[EXCEL] 多重條件查表法
http://whitefox-blog.blogspot.com/2006/10/excel_14.html。

匿名 2009/2/25 上午9:30 提到...

請問用=COUNTIF('9801'!$D$1:$D$500,"=*江永祿*")
其中的準則條件可以是某個儲存格嗎?
例如改成AD3這個儲存格內的文字
=COUNTIF('9801'!$D$1:$D$500,AD3)
我試過好像不行,請問是不是要加其他的東西?

匿名 2009/2/25 上午9:43 提到...

另外,=COUNTIF('9801'!$D$1:$D$500,"=*江永祿*")
其中的9801可以是某個儲存格內的數字嗎?
例如改成=COUNTIF('AF2'!$D$1:$D$500,"=*江永祿*")
其中AF2=9802;
這樣我就不用每次改工作表=9801,9802,9803....

whitefox 2009/2/25 上午11:14 提到...

你的問題就是這篇文章的重點。你可以試試這個公式:
=COUNTIF(INDIRECT(AF2&"$D$1:$D$500"),"="&AD3)
其中 INDIRECT() 的用法,可以參考這篇文章:
http://whitefox-blog.blogspot.com/2007/01/excel-indirect.html

匿名 2009/3/2 下午2:38 提到...

請問~我有一份問卷請各系所填寫,匯出的檔案,是將全校填寫的問卷全部放在一起,我應如何利用excel抓出各系的資料,分開做統計分析

whitefox 2009/3/2 晚上7:05 提到...

呃!這個問題有點太大了,真不知道該從何回答起。

匿名 2009/3/3 上午8:54 提到...

您好~全校資料是很寵大,我對excel的觀念弱,所以想請你指點我一下,或我應該如何找出方法

whitefox 2009/3/3 上午11:32 提到...

設計 Excel 表格這種事,透過網路是很難溝通清楚的。我的建議是,先找身邊懂 Excel 的朋友把表格設計出來,如果有清楚具體的公式和問題無法解決,再透過網路來溝通。

匿名 2009/3/6 上午11:38 提到...

你的問題就是這篇文章的重點。你可以試試這個公式:
=COUNTIF(INDIRECT(AF2&"!$D$1:$D$500"),"="&AD3)
再請問一下,如果AD3中的文字,要設定為是D1~D500中的關鍵字,加上* *符號,好像又不行?

匿名 2009/3/6 下午4:20 提到...

上ㄧ篇問的不大清楚:
=COUNTIF(INDIRECT(AF2&"!$D$1:$D$500"),"="&AD3)
我想問->D1~D500中只要包含有AD3中的文字就抓進來計算,之前可以用**來處理,不知道現在該怎麼加入**符號。
謝謝回答

whitefox 2009/3/7 凌晨1:14 提到...

試試把 "="&AD3 改成 "=*"&AD3&"*"

Unknown 2009/3/17 上午9:47 提到...

您好,不好意思,我想請問一下,若我想計算
[A欄位=小明, 且B欄位=Pass]共有幾個?
我試過使用: [=COUNTIF(A1:A100,"小明"&COUNTIF(B1:B100,"Pass"))], 但算出來是錯的,不知我還能如何修改?謝謝您喔.

whitefox 2009/3/18 上午9:19 提到...

如果是兩個條件的話, 我還想不出直接使用 COUNTIF() 的做法。你可以改用 SUMPRODUCT() 來做,請參考另一篇文章
[EXCEL] 多重條件查表法
http://whitefox-blog.blogspot.com/2006/10/excel_14.html。

匿名 2009/10/22 下午1:21 提到...

請問一下 如果 我有個問題 是當 I7=Close && N7=Hight 時 要加1 range 是 7~500
要如何使用Countif ?? 或是有什麼好方法? 謝謝!!

whitefox 2009/10/22 晚上7:38 提到...

請參考上一則回覆 (2009/3/18)