DISTINCT函數(shù)
DISTINCT函數(shù),隸屬于“篩選”類(lèi)函數(shù)。微軟將其劃分為兩種模式,列與表模式。但是白茶覺(jué)得微軟哪怕是不區(qū)分出來(lái),相信大家也是了解的。
用途:去除表或列中的重復(fù)項(xiàng)。
語(yǔ)法
DAX=
DISTINCT(表or列)
參數(shù)
DISTINCT參數(shù)可以是表,也可以是列;表達(dá)式也是可以的。
返回結(jié)果
去除重復(fù)值的表或列。當(dāng)表為單列單行時(shí),可以作為值使用。
注:
列模式下,返回結(jié)果受到篩選上下文影響;
要與VALUES函數(shù)進(jìn)行區(qū)分。
例子
模擬數(shù)據(jù):
這是白茶隨機(jī)模擬的數(shù)據(jù),紅色框?yàn)橹貜?fù)數(shù)據(jù),藍(lán)色框?yàn)榫S度不存在的數(shù)據(jù)。
例子1:
DISTINCT例子1 =
DISTINCT ( '例子' )
結(jié)果:
去除了2020-1-1的重復(fù)數(shù)據(jù)。
例子2:
DISTINCT例子2 =
IF ( HASONEVALUE ( '維度'[類(lèi)別] ), DISTINCT ( '例子'[類(lèi)別] ) )
結(jié)果:
可以用作文本型數(shù)據(jù)。
例子3:
DISTINCT例子3 =
COUNTROWS ( DISTINCT ( '例子' ) )
結(jié)果:
可以用來(lái)統(tǒng)計(jì)表的行數(shù)。
關(guān)于DISTINCT函數(shù)的基本用法介紹完畢,下面白茶說(shuō)點(diǎn)別的。
代碼1:
統(tǒng)計(jì)行數(shù) =
COUNTROWS ( '例子' )
代碼2:
DISTINCT統(tǒng)計(jì) =
SUMX ( DISTINCT ( '維度'[類(lèi)別] ), CALCULATE ( COUNTROWS ( '例子' ) ) )
代碼3:
VALUES統(tǒng)計(jì) =
SUMX ( VALUES ( '維度'[類(lèi)別] ), CALCULATE ( COUNTROWS ( '例子' ) ) )
結(jié)果:

將三組代碼分別放到例子上下文和維度上下文的環(huán)境中,我們能夠很清楚的看到DISTINCT與VALUES的區(qū)別,就是對(duì)于重復(fù)值計(jì)數(shù)的問(wèn)題。
那二者之間究竟有哪些區(qū)別呢?
1、參數(shù):DISTINCT可以使用表達(dá)式作為參數(shù),而VALUES函數(shù)不可以。
2、計(jì)數(shù):DISTINCT去掉重復(fù)值計(jì)數(shù)時(shí),不會(huì)考慮重復(fù)項(xiàng)目;而VALUES會(huì)計(jì)算重復(fù)項(xiàng)目行數(shù)。
3、返回:DISTINCT返回的結(jié)果去掉重復(fù)項(xiàng),且去掉空值;而VALUES則只去掉重復(fù)項(xiàng),不去空值。
(注:第3點(diǎn)是高飛老師提出來(lái)的,涉及到數(shù)據(jù)完整性問(wèn)題以及真空判定問(wèn)題,白茶這里就不贅述了。)
小伙伴們?GET了么?
白茶會(huì)不定期的分享一些函數(shù)卡片
(文件在知識(shí)星球[PowerBI丨需求圈])
這里是白茶,一個(gè)PowerBI的初學(xué)者。
