原文標(biāo)題:《比數(shù)據(jù)透視表更逆天,Excel 神技超級透視表來了!》
大家好,我是正在研究超級透視表的小爽~
小 A 作為一位銷售,每天都會收到當(dāng)天的銷售明細(xì)數(shù)據(jù),然后他想要知道當(dāng)天每個(gè)產(chǎn)品的客戶數(shù)有多少,以便后面設(shè)計(jì)銷售方案。
因?yàn)?strong>一個(gè)客戶在當(dāng)天可能對同個(gè)產(chǎn)品多次下單,而數(shù)據(jù)源中存在產(chǎn)品大類和客戶 ID 字段,所以他需要根據(jù)產(chǎn)品大類對客戶 ID 去除重復(fù)值,然后進(jìn)行計(jì)數(shù)。
關(guān)于去除重復(fù)計(jì)數(shù),Excel 中有一個(gè)很經(jīng)典的用法,
是利用 SUMPRODUCT 和 COUNTIF/COUNTIFS 函數(shù)完成的。
=SUMPRODUCT(1/COUNTIF(統(tǒng)計(jì)區(qū)域統(tǒng)計(jì)區(qū)域))
針對這個(gè)問題,小 A 作為一個(gè) Excel 函數(shù)高手,之前都是這么做的:
如下圖,G2 單元格輸入公式如下:
=SUMPRODUCT(IFERROR(1/COUNTIFS($A$2:$A$20001,$A$2:$A$20001,$D$2:$D$20001,F2)*EXACT($D$2:$D$20001,F2),0))
這樣做可以是可以,不過一旦數(shù)量比較多,尤其是數(shù)組公式,表格就變得特別卡。
他知道,如果是 OFFICE 365,用 UNIQUE 函數(shù)和 FILTER 函數(shù)也可以做,但是公司用的不是 OFFICE 365。
公式如下:
=COUNTA(UNIQUE(FILTER($A$2:$A$20001,$D$2:$D$20001=F2)))
所以,小 A 就跑來問我,有沒有更好的方法呢?
我:可以用超級透視表啊~
小 A:數(shù)據(jù)透視表我用過,超級透視表是啥??
我:這就帶你看看超級透視表的世界!
1、非重復(fù)計(jì)數(shù)
我們先插入一個(gè)普通數(shù)據(jù)表。
將大類拖拽到行區(qū)域,將客戶 ID 拖拽搭配值區(qū)域。
單擊值區(qū)域其中一個(gè)單元格,鼠標(biāo)右鍵-「值匯總依據(jù)」。
我們可以發(fā)現(xiàn):值匯總區(qū)域是有非重復(fù)計(jì)數(shù)的,但是它是灰色的,不能選中使用。
那想要使用它的話,應(yīng)該怎么辦呢?
我們重新創(chuàng)建一個(gè)數(shù)據(jù)透視表,這次我們勾選「將此數(shù)據(jù)添加到數(shù)據(jù)模型」,把普通透視表變身成為超級透視表。
同樣,我們將大類拖拽到行區(qū)域,客戶 ID 拖拽到值區(qū)域。
單擊值區(qū)域單元格-鼠標(biāo)右鍵-值匯總區(qū)域,這里可以看到非重復(fù)計(jì)數(shù)功能現(xiàn)在可以使用了。
我們選擇非重復(fù)計(jì)數(shù)。
此時(shí)我們可以看到非重復(fù)計(jì)數(shù)的結(jié)果已經(jīng)出來了。
是不是很簡單呢?
不需要復(fù)雜的數(shù)組公式,通過點(diǎn)點(diǎn)鼠標(biāo),我們就搞定了非重復(fù)計(jì)數(shù)。
作為一個(gè)補(bǔ)充,后面我來簡單介紹一下這背后的計(jì)算原理,有興趣的小伙伴可以繼續(xù)往下瞧瞧。
2、知識拓展
如果你仔細(xì)觀察,可能會發(fā)現(xiàn)一個(gè)問題。
我們對 ID 數(shù)據(jù)進(jìn)行求和(紅色邊框內(nèi)),結(jié)果為 16205,這時(shí)我們會發(fā)現(xiàn)結(jié)果與總計(jì)的值不一樣。
這是什么緣故呢?難道是因?yàn)槌壨敢暠恚≒owerPivot)出 bug 了?
要理解這個(gè)問題,我們需要了解超級數(shù)據(jù)透視表的度量值概念。
度量值:是數(shù)據(jù)分析中使用的計(jì)算。
包括使用數(shù)據(jù)分析表達(dá)式 (DAX) 公式創(chuàng)建的求和、平均值、最小值、最大值、計(jì)數(shù)或更高級的計(jì)算。
注:度量值的公式無論怎么編寫,運(yùn)算結(jié)果一定是個(gè)單值。
我們進(jìn)入 Power Pivot 界面:
在 Power Pivot 選項(xiàng)卡中,單擊【管理】,進(jìn)入 PP 中。
單擊顯示隱式度量值,我們可以看到:
我們剛剛使用的是匯總自帶的隱性度量值,非重復(fù)計(jì)數(shù),
它使用的 Dax 函數(shù)是 DISTINCTCOUNT 函數(shù)。
DISTINCTCOUNT 函數(shù)是用來統(tǒng)計(jì)去除重復(fù)后,唯一值的數(shù)量。參數(shù)結(jié)構(gòu)如下:
=DISTINCTCOUNT(去除的列名,或者表名稱)
如下圖:
以電腦的數(shù)據(jù)為例(篩選環(huán)境為電腦)。
超級透視表的計(jì)算原理是:
先對數(shù)據(jù)表中大類列的電腦進(jìn)行篩選,再針對篩選后所形成的表執(zhí)行度量值公式:=DISTINCTCOUNT (表 [客戶 ID]),也就是對客戶 ID 進(jìn)行非重復(fù)計(jì)數(shù),結(jié)果為 1860。
同理,由于總計(jì)的數(shù)據(jù)沒有篩選環(huán)境,所以 6080 是對整個(gè)數(shù)據(jù)表中的客戶 ID 直接進(jìn)行去重計(jì)數(shù)的結(jié)果。
因?yàn)橐粋€(gè)客戶 ID 可能同時(shí)買了別的產(chǎn)品大類,所以直接求和的數(shù)據(jù)(16205)一般會比總計(jì)的數(shù)據(jù)(6080)大。
如下圖:客戶 ID22601449,同時(shí)購買了食品,手機(jī),箱包。
總計(jì)直接去重的話,會直接把這三個(gè)訂單當(dāng)成一個(gè)訂單。而直接求和的話,就是三個(gè)訂單。
如果想要讓總計(jì)中的數(shù)據(jù),為大類中求和的數(shù)據(jù)結(jié)果,而不是總表客戶 ID 去重的計(jì)數(shù),我們就需要自己編寫度量值了,這個(gè)如果有同學(xué)想知道的話,我們后面有機(jī)會再聊聊。
3、總結(jié)一下
本文介紹了數(shù)據(jù)透視表中的值匯總依據(jù):非重復(fù)計(jì)數(shù)
? 普通數(shù)據(jù)透視表沒有辦法使用非重復(fù)計(jì)數(shù)。
? 超級透視表(Power pivot)可以使用非重復(fù)計(jì)數(shù)。
?? 創(chuàng)建超級透視表:只需要在插入數(shù)據(jù)透視表中,勾選將此數(shù)據(jù)添加到數(shù)據(jù)模型中。
非重復(fù)計(jì)數(shù)使用到的對應(yīng) Dax 函數(shù)是:DISTINCTCOUNT 函數(shù)
該函數(shù)只需要一個(gè)參數(shù),列名或者表名。
=DISTINCTCOUNT(去除的列名,或者表名稱)
?? 超級透視表的計(jì)算原理:先對外部的篩選環(huán)境進(jìn)行篩選,然后利用度量值公式計(jì)算,這也就是為什么上面案例中,總計(jì)的值跟數(shù)據(jù)求和結(jié)果不一樣的緣故。
本文可能難度稍高,但重在引導(dǎo)大家認(rèn)識超級透視表這個(gè)強(qiáng)大的工具!
大家在工作中,非重復(fù)計(jì)數(shù)一般用在哪些場景呢?
本文來自微信公眾號:秋葉 Excel (ID:excel100),作者:小爽
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。