Excel CountA與CountBlank函數的使用方法,含CountA(1:1)、CountA($A:$A)、跨表、自動求和與分段統計
在 excel 中,CountA函數用于統計除空單元外各種單元格的個數,它與Count函數的區別是,CountA統計為文本和邏輯值的單元格,而Count函數不統計。CountBlank函數專用于統計空單元格的個數,包括公式返回的空單元格。
如果不統計 0 和公式返回空值的單元格,可以用 CountA + CountBlank + CountIf 組合實現;如果要實現添加數據后自動求和,可以用 OffSet + CountA函數組合;如果要實現分段統計,可以用 If + Mod + CountA + Row函數組合。
一、excel CountA函數與CountBlank函數的語法
(一)CountA函數
1、表達式:COUNTA(Value1, [Value2], ...)
中文表達式:CountA(值1, [值2], ...)
2、說明:
A、CountA函數統計數字、日期、文本、邏輯值(True 和 False)、空值(如公式返回的空值"")和錯誤值,它們可以是單元格或數組;而Count函數只統計數字、日期和能轉為數字的單元格。
B、CountA函數至少要有一個 Value 參數,最多只能有 255 個 Value 參數。
(二)CountBlank函數
1、表達式:COUNTBLANK(Range)
中文表達式:COUNTBLANK(范圍)
2、說明:
A、CountBlank函數統計空單元格、空文本(即""),不統計有 0 值的單元格。
B、運行CountBlank函數,需要關閉迭代計算,方法為:依次選擇“文件”→ 選項 → 公式 → “計算選項”下 → 不勾選“啟用迭代計算”→ 確定。
二、Excel CountA函數的使用方法及實例
(一)統計既有文本又有數字單元格區域的實例
1、雙擊 D8 單元格,輸入公式 =COUNTA(D1:D7),按回車,返回統計結果 7;操作過程步驟,如圖1所示:
圖1
2、D1 至 D7 中有一個文本單元格和 6 個數字單元格,統計結果為 7,說明文本和數字都統計了。
(二)統計空值和錯誤值、不統計空單元格的實例
1、雙擊 A4 單元格,把公式 =COUNTA(A1:A3) 復制到 A4,按回車,返回統計結果 2;雙擊 A1,里面什么都沒有為空單元格;雙擊 A2,里面是一個 If 公式返回空值;再雙擊 A1,輸入 5,統計結果變為 3;操作過程步驟,如圖2所示:
圖2
2、當 A1 為空時,統計結果為 2,當 A1 輸入 5 后,統計結果為 3,說明空單元格不統計,但公式返回的空值統計。
(三)統計一行不為空的單元格總數實例
1、統計第一行不為空的單元格總數。雙擊 A8 單元格,把公式 =COUNTA(1:1) 復制到 A8,按回車,返回統計結果 4;再次雙擊 A8,在兩個 1 前都添加 $,按回車,也返回 4;操作過程步驟,如圖3所示:
圖3
2、公式說明:
公式 =COUNTA(1:1) 中的 1:1 表示引用第一行;=COUNTA(:) 中的 : 也表示引用第一行,所不同的是 1:1 是相對引用,而 : 是絕對引用;如果公式要往下拖且要求拖到第幾行統計該行的單元格總數,則應該使用 =COUNTA(1:1),因為往下拖時,1:1 會變為 2:2,3:3 等。
提示:公式 =COUNTA(1:1) 和 =COUNTA(:) 不能寫到第一行,否則無法統計出正確的結果。
(四)統計一列不為空的單元格總數實例
1、統計第一列不為空的單元格總數。雙擊 B8 單元格,把公式 =COUNTA(A:A) 復制到 B8,按回車,返回統計結果 7;再雙擊 B8,在兩個A 前都加 $,按回車,同樣返回 7;操作過程步驟,如圖4所示:
圖4
2、公式 =COUNTA(A:A) 中 A:A 表示對 A 列的引用,=COUNTA($A:$A) 也表示對 A 列的引用;A:A 與 $A:$A 區別也是前者為相對引用后者為絕對引用;另外,公式也不能寫到 A 列,否則也會返回不正確的值。
(五)跨表統計實例
1、假如要統計“水果銷量表1和水果銷量表2”中的 B2:B7 的單元格總數。當前在“水果銷量表1”,單擊“水果銷量表2”標簽切掉到該工作簿,雙擊 A8 單元格,把公式 =COUNTA(水果銷量表1:水果銷量表2!B2:B7) 復制到 A8,按回車,返回統計結果 12;操作過程步驟,如圖5所示:
圖5
2、公式說明:
公式 =COUNTA(水果銷量表1:水果銷量表2!B2:B7) 中“水果銷量表1:水果銷量表2”表示引用兩個工作簿,! 用于工作簿與引用單元格之間作為分隔符,引用兩個工作簿單元格區域相同時,可以把工作簿寫在一起,否則要把工作簿分開寫。
三、Excel CountBlank函數的使用方法及實例
(一)統計所有空單元格實例
1、雙擊 A5 單元格,把公式 =COUNTBLANK(A1:A4) 復制到 A5,按回車,返回統計結果 2;雙擊 A1,里有一個 If 返回空值 "" 公式,再雙擊 A3,是一個空單元格;操作過程步驟,如圖6所示:
圖6
2、A1:A4 有兩個空單元格,一個是公式返回的空值單元格,另一個是沒有輸入任何文字的空單元,兩個都被統計了,說明CountBlank函數都統計它們。
(二)CountA + CountBlank + CountIf函數組合實現不統計 0 和公式返回空值的單元格實例
1、雙擊 A5 單元格,把公式 =COUNTA(A1:A4)-COUNTBLANK(A1:A4)-COUNTIF(A1:A4,"=0") 復制到 A5,按回車,返回統計結果 2;雙擊 A1 單元格,里面是一個返回空值 "" 的 If 公式;操作過程步驟,如圖7所示:
圖7
2、公式 =COUNTA(A1:A4)-COUNTBLANK(A1:A4)-COUNTIF(A1:A4,"=0") 說明:
=COUNTA(A1:A4) 用于統計 A1:A4 中包含文本、數值、空單元格的個數,結果為 4;COUNTBLANK(A1:A4) 用于統計 A1:A4 中空單元格的個數,結果為 1;COUNTIF(A1:A4,"=0") 用于統計 A1:A4 中值為 0 的單元格個數,結果為 1;把各部分統計結果相減,即 4 - 1 - 1,所以最終統計結果為 2。
四、Excel CountA函數的擴展使用實例
(一)OffSet + CountA函數組合實現添加數據后自動求和
1、假如要實現在表格最后一行添加銷量后自動求和。雙擊 E2 單元格,把公式 =SUM(OFFSET(D1,1,,COUNTA(D:D)-1)) 復制到 E2,按回車,返回求和結果 6607;雙擊 D8,輸入 783,按回車,E2 中的值自動變為 7390,說明累加了新輸入的 783;操作過程步驟,如圖8所示:
圖8
2、公式 =SUM(OFFSET(D1,1,,COUNTA(D:D)-1)) 說明:
A、COUNTA(D:D) 用于統計 D 列有內容的單元格總數,結果為 7,正好是 D1:D7 的單元格總數;再用 7 減 1,結果為 6。
B、則 OFFSET(D1,1,,COUNTA(D:D)-1) 變為 OFFSET(D1,1,,6),接著以 D1 為基準,返回 D1 下 1 行 0 列且高度為 6 的單元格引用,即對 D2:D7 的引用。
C、則公式變為 =SUM(D2:D7),最后用 Sum 對 D2:D7 求和,最終結果為 6607。當在最后一行 D8 輸入 783 后,COUNTA(D:D) 的統計結果變為 8,8 減 1 后變為 7,則 OffSet 返回 D2:D8,因此在表格后每添加一行,公式都會把銷量自動計入求和。
(二)If + Mod + CountA + Row函數組合實現分段統計
1、假如要統計“1月和2月”的銷量個數。雙擊 E2 單元格,把公式 =IF(MOD(ROW()-2,4)=0,COUNTA(OFFSET($D$2:$D$5,INT((ROW()-2)/4)*4,)),"") 復制到 E2,按回車,返回統計結果 3;選中 E2,把鼠標移到 E2 右下角,鼠標變為加號后,按住左鍵,往下拖一直拖到最后一行,則分別統計出“1月和2月”的銷量個數,操作過程步驟,如圖9所示:
圖9
2、公式 =IF(MOD(ROW()-2,4)=0,COUNTA(OFFSET($D$2:$D$5,INT((ROW()-2)/4)*4,)),"") 說明:
A、公式中的 4 表示一段為四行,ROW() 返回公式所在的行號 2,則 (ROW()-2)/4 返回 0;Int函數用于取整,則 INT(0) 返回 0。
B、則 OFFSET($D$2:$D$5,INT((ROW()-2)/4)*4,) 變為 OFFSET($D$2:$D$5,0*4,),接著用 OffSet 返回以 D2:D5 左上角的單元格 D2 為基準、D2 下 0 行 0 列且高度和寬度與 D2:D5 一樣的單元格引用,即返回 D2:D5。
C、則 COUNTA(OFFSET($D$2:$D$5,INT((ROW()-2)/4)*4,)) 變為 COUNTA($D$2:$D$5),進一步計算,對 D2:D5 進行統計,結果為 3。
D、則公式變為 =IF(MOD(ROW()-2,4)=0,3,"");由于 ROW() 返回 2,因此 MOD(ROW()-2,4) 變為 MOD(2-2,4),接著用Mod函數把 0 與 4 取模,結果為 0;則公式變為 =IF(0=0,3,""),由于 If 條件 0=0 成立,所以返回 3。
E、當公式在 E6 時,ROW() 返回 6,代入 INT((ROW()-2)/4) 為 INT((6-2)/4),進一步計算變為 INT(1),結果為 1;則 OFFSET($D$2:$D$5,INT((ROW()-2)/4)*4,) 變為 OFFSET($D$2:$D$5,1*4,),接著,返回以 D2:D5 左上角的單元格 D2 為基準、D2 下 4 行 0 列且高度和寬度與 D2:D5 一樣的單元格引用,即返回 D6:D9,以下的計算方法跟上面一樣。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。