前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何实现 DAX 按指定顺序拼接字符串

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

作者头像
BI佐罗
发布2021-12-01 18:54:38
发布2021-12-01 18:54:38
1.6K00
代码可运行
举报
文章被收录于专栏:PowerBI战友联盟PowerBI战友联盟
运行总次数:0
代码可运行

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

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

可以看出:

  • 第一个,只是简单的文本。
  • 第二个,带有销售额,但元素未按销售额排序。
  • 第三个,带有销售额,且元素按照销售额排序。

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

实现方法

实现方法如下:

代码语言:javascript
代码运行次数:0
运行
复制
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 真经》课程给出了这些套路的统一思想,希望你看懂一个案例,驾驭各种多变的需求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI战友联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现方法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档