使用DAX将分隔行拆分为多行

​大家好,小悦这次给大家带来的案例是:我们如何使用DAX将单个分隔行拆分为多行数据?首先我们来看到我们的业务需求。

业务需求

假设有一个表有两列 -”学生”和”学科”,学科字段中的每个科目通过”,”号来分割,然而我们想要将我们的科目拆分为多行数据来分析。

最终结果应该是:

PART 01

我们这里先用我们输入数据的方式创建一张原始表,当然你也可以通过其他的手段来得到这张表。

PART 02

创建完原始表之后。首先,第一步是获取每行”学科”字段的一个科目数。这里是通过分隔符的多少,来推断出科目数的多少。

结果如下图:

PART 

03

然后我们需要通过a表(2步骤得到的表)的最大科目数得到一份辅助表来帮助我计算下面的步骤,创建辅助表需要两个步骤:

a.        获取最大科目数

b.       创建辅助表

结果如下图:

PART

 04

然后使用CrossJoin函数来得到B表(3步骤得到的表)和A表(2步骤得到的表)的叉积表C表:

结果如下图:

PART 

05

现在过滤C表(4步骤得到的表),拿【总科目数】和辅助表的【Value】来做对比,获得最终结果所需的确切行数。得到D表:

结果如下图:

PART 06

剩下的就是将D表(5步骤得到的表)中的【学科】分成单个对应的科目。使用PATHITEM函数,通过【value】获取科目所处位置

将结果如下图:

PART 

07

最后需要做的就是选取需要的列。

最终结果:

然后这里再附上整体代码的截图:

如果大家有其他的方法的话也可以在评论下方留言。

技术交流

1.Power BI免费下载:http://www.yeacer.com/

    Microsoft Power BI Desktop中文最新版:下载地址

2.欢迎加入的Power BI技术群,目前正在学习阶段,有兴趣的朋友可以一起学习讨论。 

   Power Data技术交流群:702966126 (验证注明:博客园Power BI) 

   更多精彩内容请关注微信公众号:悦策PowerBI          


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,作者博客:https://www.cnblogs.com/yeacer/ 
Fancy
原文地址:https://www.cnblogs.com/yeacer/p/11264048.html