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

本文介绍了DAX函数HASONEFILTER与HASONEVALUE的用法及区别,包括它们的语法、参数、返回结果,并通过实例展示了如何利用这两种函数去除总计栏的合计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的初学者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fabric丨白茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值