如何实现 DAX 按指定顺序拼接字符串

PowerBI战友联盟

共 1060字,需浏览 3分钟

 ·

2021-11-27 20:20

小伙伴问,他拼接的字符串是随机顺序,如何实现特定顺序拼接,如:按销售额大小。本文来帮你解答。

先来看一个拼接字符串的效果,如下:

可以看出:

  • 第一个,只是简单的文本。

  • 第二个,带有销售额,但元素未按销售额排序。

  • 第三个,带有销售额,且元素按照销售额排序。

我们需要的正是第三种效果。

实现方法

实现方法如下:

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

点击“阅读原文”进入学习中心

浏览 54
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报