函数周期表丨筛选丨表&值丨DISTINCT

DISTINCT函数

DISTINCT函数,隶属于“筛选”类函数。微软将其划分为两种模式,列与表模式。但是白茶觉得微软哪怕是不区分出来,相信大家也是了解的。

用途:去除表或列中的重复项。

语法

DAX=
DISTINCT(表or列)

参数

DISTINCT参数可以是表,也可以是列;表达式也是可以的。

返回结果

去除重复值的表或列。当表为单列单行时,可以作为值使用。

注:

列模式下,返回结果受到筛选上下文影响;

要与VALUES函数进行区分。

例子

模拟数据:

这是白茶随机模拟的数据,红色框为重复数据,蓝色框为维度不存在的数据。

例子1:

DISTINCT例子1 =
DISTINCT ( '例子' )

结果:

去除了2020-1-1的重复数据。

例子2:

DISTINCT例子2 =
IF ( HASONEVALUE ( '维度'[类别] ), DISTINCT ( '例子'[类别] ) )

结果:

可以用作文本型数据。

例子3:

DISTINCT例子3 =
COUNTROWS ( DISTINCT ( '例子' ) )

结果:

可以用来统计表的行数。

关于DISTINCT函数的基本用法介绍完毕,下面白茶说点别的。


代码1:

统计行数 =
COUNTROWS ( '例子' )

代码2:

DISTINCT统计 =
SUMX ( DISTINCT ( '维度'[类别] ), CALCULATE ( COUNTROWS ( '例子' ) ) )

代码3:

VALUES统计 =
SUMX ( VALUES ( '维度'[类别] ), CALCULATE ( COUNTROWS ( '例子' ) ) )

结果:

将三组代码分别放到例子上下文和维度上下文的环境中,我们能够很清楚的看到DISTINCT与VALUES的区别,就是对于重复值计数的问题。

那二者之间究竟有哪些区别呢?

1、参数:DISTINCT可以使用表达式作为参数,而VALUES函数不可以。

2、计数:DISTINCT去掉重复值计数时,不会考虑重复项目;而VALUES会计算重复项目行数。

3、返回:DISTINCT返回的结果去掉重复项,且去掉空值;而VALUES则只去掉重复项,不去空值。

(注:第3点是高飞老师提出来的,涉及到数据完整性问题以及真空判定问题,白茶这里就不赘述了。)

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fabric丨白茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值