函数周期表丨筛选丨值丨HASONE二人组

HASONEFILTER函数与HASONEVALUE函数

严格来说,HASONEFILTER函数与HASONEVALUE函数属于“筛选判断”类函数,隶属于“”函数,当符合条件时,结果返回TRUE或FALSE。

用途:通常用来去掉总计栏合计。

语法

语法1:

DAX=
HASONEFILTER(<列>)

等同于以下代码:

COUNTROWS ( FILTERS ( <列> ) ) = 1

语法2:

DAX=
HASONEVALUE(<列>)

等同于以下代码:

COUNTROWS ( VALUES ( <列> ) ) = 1

参数

列:必须是现有物理列,不能是表达式。

返回结果

TRUE或FALSE。

区别

二者用途基本上是类似的,

区别在于HASONEFILTER受直接筛选影响;

而HASONEVALUE受交叉筛选影响。

例子

模拟数据:

这是白茶随机模拟的一组数据。

例子1:

代码1:

HASONEFILTER =
IF ( HASONEFILTER ( '例子'[类别] ), SUM ( '例子'[数据] ), BLANK () )

代码2:

HASONEVALUE =
IF ( HASONEVALUE ( '例子'[类别] ), SUM ( '例子'[数据] ), BLANK () )

结果:

当二者同处于参数上下文环境中,作用是一致的,就是去掉总计栏总计。

在这个上下文中,难以分辨二者的区别,换个上下文:

度量值白茶没有任何修改,还是上面的两组代码,小伙伴们思考一下问题出在哪里呢?

思考一下!

1

2

3

二者的区别在于受到筛选影响不同:

1、HASONEFILTER函数只受到直接筛选影响。

在上述图中,因为直接筛选条件**[类别]**并不在当前上下文中,默认筛选条件为空,因此HASONEFILTER返回结果为FALSE。

2、HASONEVALUE函数受到交叉筛选影响,且判断当前列是否存在唯一值,存在则返回TRUE,否则返回FALSE。

因为受到交叉筛选影响,此上下文中**[组别]筛选效果等同于[类别]**,且只有“鞋组”是唯一值,所以呈现结果为14;

同理受到交叉筛选影响,此上下文中**[日期]筛选效果等同于[类别]**,且每一个都是唯一值,所以呈现所有数据。


小伙伴们❤GET了么?

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

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

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

Fabric丨白茶 文章被收录于专栏

数据分析进阶之路,带你深入了解可视化技巧。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务