如何实现 DAX 按指定顺序拼接字符串
小伙伴问,他拼接的字符串是随机顺序,如何实现特定顺序拼接,如:按销售额大小。本文来帮你解答。
先来看一个拼接字符串的效果,如下:
可以看出:
第一个,只是简单的文本。
第二个,带有销售额,但元素未按销售额排序。
第三个,带有销售额,且元素按照销售额排序。
我们需要的正是第三种效果。
实现方法
实现方法如下:
Text.内容+销售额.按顺序 =
VAR vList = ADDCOLUMNS( VALUES('Product'[Subcategory] ) , "@KPI" , INT( [Start:KPI] ) )
VAR vListRanded = ADDCOLUMNS( vList , "@Rank" , RANKX( vList , [@KPI] ) )
RETURN
CONCATENATEX(
GENERATESERIES( 1 , COUNTROWS( vList ) ) ,
VAR vRow = FILTER( vListRanded , [@Rank] = [Value] )
RETURN SELECTCOLUMNS( vRow , "Item" , [Subcategory] ) & " (" & SELECTCOLUMNS( vRow , "KPI" , [@KPI] ) & ") " , "," )
如果你正在学习 DAX,那么这又是一个非常好的案例可以帮助你理解 DAX 很多妙处。
这里的妙处在于:
CONCATENATEX
是无法合并多项内容的,而同时需要一个被排序的内容,这里使用迭代的思想(已经在 BI 真经中讲解过),构建一个用来迭代的顺序表即可,在迭代时带入需要的数据并进行显示即可。
总结
巧妙利用不同的 DAX 函数,不是仅仅需要技巧和记忆,有固定的思维模式和套路可以遵循。在《BI 真经》课程给出了这些套路的统一思想,希望你看懂一个案例,驾驭各种多变的需求。
在订阅了BI佐罗讲授的《BI真经》之《BI进行时》课程区,除了可以下载本文案例,还可以观看视频讲解。
Power BI 终极系列课程《BI真经》
BI真经 - 让数据真正成为你的力量
扫码与精英一起讨论 Power BI,验证码:data2021
点击“阅读原文”进入学习中心
↙
评论