问题描述:
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
判断度量值名称,这种方式就要求计算组判断的度量值,没有被其他可视化图形引用,不然引用的地方,也会进行格式转换。