如何在 PowerBI 中实现度量值的自定义排序
在我们进行 Power BI 计算时,默认情况下只能按字母或数字对度量结果进行排序。
为了避免这种情况,我们需要一种技术来改进所需的排序顺序,同时遵守字母顺序限制。这种方法是使用空白 Unicode 字符。
UNICHAR(8203) 字符在可视化表中不可见,但 DAX 会将其识别为有效。排序时,空字符优先于字母。因此,一个文本的空字符越多,它出现的越早。通过配合使用函数 REPT(),我们可以将多个空白字符附加到 Switch 语句的每个结果中,以建立我们预期的排序顺序。
举一个简单的例子,有四种植物,分别命名为 A、B、C 和 D。现在需要测量一下每天给它们浇了多少水。放入报告中。它们至少需要 20 毫升的水量才能生存,但超过水量 50 毫升也会阻止它们生长。
创建一个表格,其中包含以下内容:花朵低于 20 毫升,标记为坏 。20 – 50 毫升时,标记为好。最后,如果花朵接收水量超过 50 毫升,则标记为警告。
要求按照“坏”、“警告”、“好”的顺序显示它们。
将模拟数据放入一个表中。
如果我想让它评价以坏、警告、好的顺序显示,怎么样可以做到呢?
Power BI 表格视图有一个功能叫做按列排序,但是它只能用于表中的列排序,在 DAX 计算中我们可以借助 UNICHAR(8203)空白字符实现。
评价 =
SWITCH (
TRUE () ,
SELECTEDVALUE ( '浇水记录'[水量] ) < 20 , REPT ( UNICHAR ( 8203 ), 3 ) & "坏" ,
SELECTEDVALUE ( '浇水记录'[水量] ) > 60 , REPT ( UNICHAR ( 8203 ), 2 ) & "警告" ,
REPT ( UNICHAR ( 8203 ) , 1 ) & "好"
)
然后让表按照评价列升序排序的方式排序。
想要的效果实现了。
虽然很简单,但是却很实用,借助 UNICHAR(8203)和 REPT 函数我们可以对度量值返回的文本结果按照我们想要的任何顺序排序。
用在日期表中也是可以的。比如月份列可以这样创建。
Month =
REPT ( UNICHAR ( 8203 ) , 12 - MONTH ( 'Calendar'[Date] ) )
& FORMAT ( 'Calendar'[Date] , "m月" )
这样即使不使用按列排序,月份也会按照 1 - 12 月的循序排序。
关于这个组合的更多用法,大家可以发挥自己的想象力在 Power BI 中进行各种尝试。
一数据分析师训练营 课程表一
时间:2023年01月 班
主题:《财务分析之道》业财融合,FP&A。[报名中]
主题:《经营分析之道》目标指标体系拆解。[报名中]
时间:2024年03月 班
主题:《数据分析之道》十大模型,十大方法。[报名中]
主题:《财务分析之道》业财融合,FP&A。[报名中]
主题:《经营分析之道》目标指标体系拆解。[报名中]
咨询老师,验证码:data2023
点击“阅读原文”进入学习中心