利用PowerBI计算组,设计个性化数据标签

之前曾经介绍过如何在折线图上标注出最大值和最小值,利用了几个度量值实现的:PowerBI作图技巧:在走势图上标注最大值、最小值…
其效果如下:
果在最低点和最高点上不仅显示数据标签,还想显示这个点的属性,比如在某点的数据标签上不仅显示数据,并且用文本显示该点为“最高点”,能不能做到如下的效果呢?
在PowerBI中,图表的数据标签,通过格式的设置,目前只能显示数据,无法显示文本,所以利用之前的技巧是无法做到的。
不过现在我们可以利用计算组,来实现这种个性化的数据标签,下面简单介绍一下步骤。
还以之前介绍使用的模型为例,利用一个基础度量值[指标数据]和日期表中的日期,图表类型可以选择折线图或者面积图,制作一个简单的趋势图,然后打开外部工具“Tabular Editor”,进行计算组的制作。
关于计算组的基础操作,这里不再详细介绍,你可以通过这篇文章来了解:
PowerBI发布重磅更新,一文带你熟悉计算组怎么用
1. 设置度量值的格式
这里制作图表用到的是度量值[指标数据],所以在Tabular Editor中找到这个度量值设置数据格式,可以根据自己的需要设置。
我这里对数据按千分位显示,并且保留两位小数,可以设置为"#,##0.00"
2. 建立计算组和计算项
计算组可以命名为“数据标签”,因为这里要显示最高点和最低点,所以计算项可以命名为“最高最低点”,该计算项的表达式直接这样写就可以了:
SELECTEDMEASURE()

3. 编辑计算项的格式表达式

这是最重要的一步,先打开这个计算项的格式表达式编辑框:

然后在编辑框中输入:
VAR dates_ =ALLSELECTED ( '日期表'[日期] ) VAR highest_ =MAXX ( dates_, SELECTEDMEASURE () )VAR lowest_ =MINX ( dates_, SELECTEDMEASURE () )RETURNSWITCH ( TRUE (), SELECTEDMEASURE () = highest_, "最高:" & SELECTEDMEASUREFORMATSTRING (), SELECTEDMEASURE () = lowest_, "最低:" & SELECTEDMEASUREFORMATSTRING () , UNICHAR(8203))

这个表达式的逻辑与日常我们写的DAX逻辑是一样的,先通过变量计算出最高点和最低点,然后判断这两个点,来返回对应的数据。

只不过在计算组中,度量值本身就可以作为上下文,使用 SELECTEDMEASURE 函数来表示目前上下文所使用的度量值,以及用函数 SELECTEDMEASUREFORMATSTRING 来获取当前度量值的数据以及格式。

这样设置好以后,点击保存,退出Tabular Editor,并在PowerBI界面刷新。

4. 利用计算组做个切片器,勾选“最高最低点”,就会在趋势图中出现带有文本的数据标签。

为了让最高点和最低点显示不同的颜色,还可以通过度量值来进行配色:

配色 =
VAR dates_ =ALLSELECTED ( '日期表'[日期] )
VAR highest_ = MAXX ( dates_, [指标数据] )
VAR lowest_ = MINX ( dates_, [指标数据] )
RETURN
SWITCH( TRUE(),
[指标数据] = highest_, "lime",
[指标数据] = lowest_, "red"
)
然后就实现了本文开头的标签效果。

利用计算组,突破了图表数据标签默认不能个性化显示文本的限制,本文只是一个简单的应用示例,你也可以通过这种方式,对图表添加个性化的标注,来帮助用户快速理解数据。



(0)

相关推荐