欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

為什么Excel里面沒有去重計數函數?該怎么辦?

錢瀠龍2年前24瀏覽0評論

Excel里是沒有去重復計數的函數。

但去重復計數,從來就不是什么大問題。

如下圖,對A1:A6單元格去重復計數。

要理解這個函數組合,也十分容易。

COUNTIF(A1:A6,A1:A6)理解理解為:對A1:A6中每個單元格都進行計數,AS計數為1,DSD計數為2.....依次類推,得出:{1;2;2;1;2;2},也就是如下圖中輔助列這樣的結果:

得出{1;2;2;1;2;2}這個結果后,再用1/{1;2;2;1;2;2},這樣返回結果:

{1;0.5;0.5;1;0.5;0.5},也就是重復幾次就變成幾分之一,重復1次就1/1,重復2次就是1/2,通過這樣轉換,將重復次數都分成1/重復次數;重復幾次就分成幾份,合起來就是1。

然后用SUMPRODUCT函數求和,消除了重復次數的影響。得出去重復后的結果。



上面只是單純的去重計數。如果需要按條件去重統計,則可以使用下面的自定義函數:

單條件不重復計數:

Functiongetdiscount(rng1AsRange,rng2AsRange,rng3AsRange)Dimarr,brr,s,dAsObject,i&,k&Setd=CreateObject("scripting.dictionary")arr=rng1.Valuebrr=rng2.Values=rng3.Valuek=0Fori=1ToUBound(arr)Ifarr(i,1)=sThenIfNotd.exists(s)Thenk=k+1d(s)=brr(i,1)ElseIfInStr(d(s),brr(i,1))=0Thend(s)=d(s)&","&brr(i,1):k=k+1EndIfEndIfNextIfk=0Thengetdiscount=""Elsegetdiscount=kEndIf'如條件出錯不處理也可以是getdiscount=k,k=0Setd=Nothing

EndFunction

使用方法可看我的回答。

https://www.wukong.com/question/6590332823037542670/


此外,去重復計數,應用輔助列的方法,將更加簡單強大。

輔助列公式為:=COUNTIF(A$1:A1,A1)

然后用sumif或者countif函數統計輔助列為1的求和或計數。

又如,單條件進行不重復計數。

輔助列公式如下:=COUNTIFS(A$2:A2,A2,B$2:B2,B2)

然后使用countifs函數計數即可。

函數公式為:=COUNTIFS(A2:A7,E2,C2:C7,1)


當然,不重復計數還可以使用數據透視表--非重復計數來實現。

創建透視表時,勾選加載到數據模型。

默認是沒有去重復計數的。

鼠標右鍵--值字段設置

選擇非重復計數即可。


更多不重復計數的內容,視乎實際情況而選擇用合適的方法。