Excel關於非重複計數的幾種計算方法

Excel EXCEL數據處理與分析 2019-05-20

在做客戶分析的時候經常會遇到客戶數的計算:

  • 一段時間內購買商品的客戶數;
  • 一段時間內購買商品的次數;

是兩個不同的概念,一段時間內購買商品的客戶數是一個需要去掉重複項的計數,因為可能存在,同一位客戶多次購買的情況;一段時間內購買商品的次數,是一個簡單的計數,統計過往銷售的次數。

今天我們的問題就是如何計算,一段時間內購買商品的客戶數?

Excel關於非重複計數的幾種計算方法

兩個小問題:

  • 上表時間段內的購買商品客戶數;
  • 購買A、B類商品的客戶數;

Excel公式計算非重複計數

通常大家比較關注如何使用公式來計算出結果,Excel中編寫公式來計算非重複計數,對於初學者來說是個不小的難題,其實也不用太糾結與公式的原理,重在結果。

不懂原理又要能計算出結果,最好的辦法就是模仿別人的公式,網上搜索一下,就會有很多答案,可以找來幾個模仿一下。

我認為有兩種公式可以拿來試一試:

  • SUMPRODUCT+COUNTIFS組合
  • COUNT+MATCH+ROW組合

這兩個組合各有特色,SUMPRODUCT組合不用三鍵的數組公式,但是需要選擇好區域,不然會出錯;COUNT組合需要用CTRL+SHIFT+ENTER三鍵數組公式,不用太在意選取區域。

第一個小問題:客戶數,相當於沒有條件來計算非重複客戶計數。

=SUMPRODUCT(1/COUNTIFS(B2:B23,B2:B23))
=COUNT(0/(MATCH(B2:B23,B2:B23,)=ROW(1:22)))
Excel關於非重複計數的幾種計算方法

兩個組合都能夠計算出正確結果,但是使用SUMPRODUCT要注意數據區域選取。

Excel關於非重複計數的幾種計算方法

第二個問題:A、B商品的購買客戶數

=SUMPRODUCT(($C$2:$C$23=I7)/COUNTIFS($B$2:$B$23,$B$2:$B$23,$C$2:$C$23,$C$2:$C$23))
=COUNT(0/(($C$2:$C$23=I7)*MATCH($B$2:$B$23&$C$2:$C$23,$B$2:$B$23&$C$2:$C$23,)=ROW($1:$22)))
Excel關於非重複計數的幾種計算方法

根據條件來計算客戶的非重複計數:

  • SUMPRODUCT組合:條件需要添加兩次,在“/”左側添加一次,在COUNTIFS中還需要添加一次。
  • COUNT組合:條件同樣是兩次,MATCH前面一次,MATCH中用"&"符號再連接一次。

條件的寫法也不同,一種是等於單值的樣子,一種是全範圍選取。

Power Query中計算非重複計數

第一個問題:客戶非重複計數

第一步:刪除其他列,添加自定義列

Excel關於非重複計數的幾種計算方法

第二步:分組

Excel關於非重複計數的幾種計算方法

第二問題:購買A、B類客戶的非重複計數

刪除其他列只保留,客戶名稱和商品分類,分組

Excel關於非重複計數的幾種計算方法

Power Query中計算非重複計數,要比用公式簡單的多,只是簡單的操作就可以得到結果,當然,後臺使用的是M函數Table.Group、Table.Distinct、Table.RowCount

Excel關於非重複計數的幾種計算方法

不用管函數是如何運作的,只要知道在分組操作中,選取非重複行計數,就能夠獲得想要的結果。

Power Pivot 中計算非重複計數

Power Pivot中只需要寫一個度量值就可以了,在Power Pivot中由專門的分重複計數的DAX函數DISTINCTCOUNT,也可以通過COUNTROWS+VALUES組合函數來計算非重複計數。

客戶數:=DISTINCTCOUNT([客戶名稱])
客戶數1:=countrows(VALUES('表1'[客戶名稱]))
Excel關於非重複計數的幾種計算方法

這個度量值的結果,可以通過透視表來檢驗:

Excel關於非重複計數的幾種計算方法

總結一下,對銷售數據進行分析,Excel中最好的辦法就是使用Power Pivot來建模分析,所以非重複計數,DAX函數最簡單,其次是Power Query中的分組操作,最後才是Excel公式,大家可以根據自己的應用場景來選擇非重複計數的方法。

也許不久的將來,微軟也會給Excel添加Distinct函數,來進行非重複計數

相關推薦

推薦中...