电竞比分网-中国电竞赛事及体育赛事平台

分享

COUNTIF函數(shù)高能應用,也許你還不知道

 刀叢里覓詩 2016-07-13

特別說明一下,本篇的內容難度系數(shù)高了一些,有小伙伴看到最后估計會騰云駕霧了,哈哈。

不過看不懂也沒關系,一口吃不成胖子,一天也減不成瘦子,先收藏一下備用,循序漸進慢慢學~~


一、不一樣的序號

如下圖所示,要在A列按部門輸入序號,不同部門的序號從1開始。

在A2單元格輸入公式,向下復制:

=COUNTIF(B$2:B2,B2)

COUNTIF函數(shù)的統(tǒng)計區(qū)域是B$2:B2,第一個B2是行絕對引用,第二個B2,是相對引用。當公式向下復制時,就會變成B$2:B3、B$2:B4……一個不斷擴展的區(qū)域,從這個動態(tài)區(qū)域中統(tǒng)計B列部門的個數(shù)。


二、計算不重復的人數(shù)

如下圖所示,要計算C列不重復的人數(shù)。

公式為:

=SUMPRODUCT(1/COUNTIF(C2:C14,C2:C14))


這是一個十分常用的統(tǒng)計不重復數(shù)據(jù)個數(shù)的公式。

其中包含了一個簡單的數(shù)學邏輯:

任意一個數(shù)據(jù)重復出現(xiàn)N次,N個1/N相加,結果就是為1。

公式中“COUNTIF(C2:C14,C2:C14)”部分是數(shù)組計算,作用是分別統(tǒng)計C2:C14單元格區(qū)域中每個元素出現(xiàn)的次數(shù)。

運算過程相當于:

=COUNTIF(C2:C14,C2)

=COUNTIF(C2:C14,C3)

……

=COUNTIF(C2:C14,C14)

返回內存數(shù)組結果為:

{1;1;1;2;1;3;2;1;3;1;1;1;3}

再使用1除以返回的內存數(shù)組,得到以下結果:

{1;1;1;0.5;1;0.33333;0.5;1;0.33333;1;1;1;0.33333}

用1除,即相當于計算COUNTIF函數(shù)所返回內存數(shù)組的倒數(shù)。


為便于理解,把這一步的結果中的小數(shù)部分使用分數(shù)代替,結果為:

{1;1;1;1/2;1;1/3;0.5;1;1/3;1;1;1;1/3}

如果單元格的值在區(qū)域中是唯一值,這一步的結果是1。

如果重復出現(xiàn)兩次,這一步的結果就有兩個1/2。

如果單元格的值在區(qū)域中重復出現(xiàn)3次,結果就有3個1/3…

即每個元素對應的倒數(shù)合計起來結果仍是1。

最后用SUMPRODUCT函數(shù)求和,得出不重復的人員總數(shù)。


三、提取不重復名單

如下圖所示,要提取C列不重復的名單。

公式為:

=INDEX(C:C,1+MATCH(,COUNTIF(E$1:E1,C$2:C$15),))&''

注意是數(shù)組公式,編輯完成后,要按Ctrl+Shift+回車。

首先利用COUNTIF函數(shù),在公式所在位置上方的單元格區(qū)域中,分別查找C$2:C$15單元格區(qū)域每個數(shù)據(jù)的個數(shù)。

公式返回一個由0和1構成的數(shù)組,如果C$2:C$15單元格區(qū)域的元素在公式上方出現(xiàn)過,結果就是1;如果沒出現(xiàn),結果就是0。

和第一個例子里一樣,COUNTIF函數(shù)的第一參數(shù)是一個擴展的區(qū)域,公式的提取結果會被重復利用。

再利用MATCH函數(shù),在COUNTIF函數(shù)返回的數(shù)組中查找第一個0的位置,也就是查找首次出現(xiàn)的數(shù)據(jù)所在的位置。

由于數(shù)據(jù)表的標題行占了1行,將這個數(shù)字加1,就是需要提取的不重復數(shù)據(jù)在數(shù)據(jù)表中列的位置。

再利用INDEX函數(shù),以MATCH函數(shù)的計算結果作為索引值,提取C列對應位置上的數(shù)據(jù)。

PS:這個函數(shù)從最后開始往上看,比較容易理解一些哦。

好了,今天的分享就是這些吧,堅持看完的小伙伴,別忘了轉發(fā)點贊哦,哈哈~~

作者:祝洪忠

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多