问题描述:
PowerBI在实际使用中,针对于某些数据,需要呈现文本类型的标签,一般这类需求,都是通过计算组来解决的。
但计算组在使用中,也会存在一些问题,就是一旦点击交互,就会影响到其它度量值。
案例
案例数据非常的简单,我们继续添加如下度量值。
计算组格式 =
SUM ( [计算组值] )
其他度量值 =
SUM ( '案例数据'[其他值] )
将其拖拽到可视化中呈现如下:
打开Tabular,添加计算组
也可以直接在PowerBI中添加,看个人操作习惯。
SELECTEDMEASURE()
IF ( SELECTEDVALUE ( '案例数据'[维度] ) = "A", "上升", "下降" )
将计算组添加到页面切片器,结果如下:
产生原因
SELECTEDMEASURE会根据上下文
,获取当前计算项的度量值,因此,会获取到页面的所有度量值进行覆盖。
解决办法
对度量值添加条件判断即可:
IF (
SELECTEDMEASURENAME () = "计算组格式",
IF ( SELECTEDVALUE ( '案例数据'[维度] ) = "A", "上升", "下降" ),
SELECTEDMEASUREFORMATSTRING ()
)
IF (
ISSELECTEDMEASURE ( [计算组格式] ),
IF ( SELECTEDVALUE ( '案例数据'[维度] ) = "A", "上升", "下降" ),
SELECTEDMEASUREFORMATSTRING ()
)
最终展示结果如下:
代码解释
通过
SELECTEDMEASURENAME
来获取度量值的名称,或通过ISSELECTEDMEASURE
来判断是不是需要转换格式的度量值只有符合条件的度量值才会进行格式转换
不符合条件的度量值会按照原本的格式进行输出
SELECTEDMEASUREFORMATSTRING
是获取当前度量值的数据格式
注意
通过SELECTEDMEASURENAME
判断度量值名称,这种方式就要求计算组判断的度量值,没有被其他可视化图形引用,不然引用的地方,也会进行格式转换。