回覆列表
  • 1 # EXCEL資料處理與分析

    有是有,不過不是在excel裡,在Power Pivot用DAX函式就可以

    你可以用countrows(values([列]))

    來計算不重複VALUES函式就是去除重複的函式

  • 2 # 套路Excel

    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函式求和,消除了重複次數的影響。得出去重複後的結果。

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

    單條件不重複計數:

    Function getdiscount(rng1 As Range, rng2 As Range, rng3 As Range)Dim arr, brr, s, d As Object, i&, k&Set d = CreateObject("scripting.dictionary")arr = rng1.Valuebrr = rng2.Values = rng3.Valuek = 0For i = 1 To UBound(arr)If arr(i, 1) = s ThenIf Not d.exists(s) Thenk = k + 1d(s) = brr(i, 1)ElseIf InStr(d(s), brr(i, 1)) = 0 Then d(s) = d(s) & "," & brr(i, 1): k = k + 1End IfEnd IfNextIf k = 0 Thengetdiscount = ""Elsegetdiscount = kEnd If"如條件出錯不處理也可以是getdiscount = k,k=0Set d = Nothing

    End Function

    使用方法可看我的回答。

    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)

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

    建立透視表時,勾選載入到資料模型。

    預設是沒有去重複計數的。

    滑鼠右鍵--值欄位設定

    選擇非重複計數即可。

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

  • 中秋節和大豐收的關聯?
  • 是周杰倫唱的其中有一句是雨下著夜?