有老師先前問了這樣的問題,想要在成績報表上計算報告已繳交和未繳交人數。參考下圖,成績報表上有成績者表示已繳交(包含0分),成績留空者表示未繳交。該如何計算這兩種人數?
透過本篇文章也可以對計算符合特定條件者計算數量做個總複習。
計算時要注意的地方:
(1) 人名是文字格式
(2) 成績是數字格式
(3) 儲存格留白的內容不可視為0
以下列出 5 種不同方式:
1. 利用 COUNT 和 COUNTA
已繳交:=COUNT(C4:C22)
未繳交:=COUNTA(B4:B22)-COUNT(C4:C22)
未繳交 = 以名字的總數 - 成績的總數
2. 利用 SUM+IF
已繳交:=SUM(IF(C4:C22<>"",1,0))
未繳交:=SUM(IF(C4:C22="",1,0))
將儲存格內容為空白者視為 0,非空白者視為 1,再加總。
3. 使用 SUM
已繳交:=SUM((C4:C22<>"")*1)
未繳交:=SUM((C4:C22="")*1)
判斷儲存格內容是否為空白者,傳回 TRUE/FALSE 陣列,透過「*1」運算,轉換為 1/0 陣列,再加總。
4. 使用 SUMPRODUCT
已繳交:=SUMPRODUCT((C4:C22<>"")*1)
未繳交:=SUMPRODUCT((C4:C22="")*1)
判斷儲存格內容是否為空白者,傳回 TRUE/FALSE 陣列,透過「*1」運算,轉換為 1/0 陣列,再加總。
5.使用 FILTER+COUNT
已繳交:=COUNT(FILTER(C4:C22,C4:C22<>""))
未繳交:=COUNTA(FILTER(C4:C22,C4:C22=""))
已繳交者利用 FILTER 函數篩選儲存格內容不為空白者,利用 COUNT 函數計算數量。
未繳交者利用 FILTER 函數篩選儲存格內容為空白者,利用 COUNTA 函數計算數量。
6. 使用 SUM+ISBLANK
已繳交:=SUM(NOT(ISBLANK(C4:C25))*1)
未繳交:=SUM(ISBLANK(C4:C25)*1)
已繳交者利用 ISBLANK 函數+NOT函數判斷儲存格內容不為空白者,利用 SUM 函數計算數量。
未繳交者利用 ISBLANK 函數判斷儲存格內容為空白者,利用 SUM 函數計算數量。