Tips-6:如何从List of Record生成一个数据表

浏览: 1356

之前小伙伴给了一个问题,以Shared Access Signature Token(SAS)为数据源做Power BI报表。这个SAS我之前没有接触过~~~不过可以学。当然小伙伴很给力,还提供了一个很有用的文档。基本靠着文档就做出来了,所以其实我的小机智也没有机会用~~不过,在做的过程中也遇到了一个小问题,卡了我些时间。这个问题就是如何从List of Record生成一个数据表。

数据准备和解决方法如下:

数据准备:

1. 点击Power BI Desktop,新建一张空的 Power BI report;

2. Home里面点击Transform data控件里的Transforma data;如下图所示

3. 得到Power Query的界面,在左边,右键->新建一个Blank Query;

4. 点击Advanced Editor,写入以下代码

let    Source = {[a = 1, b = "b1",c = false], [a = 2], [a = 3, b = "b3", c = true]}in    Source

这个过程是在模拟我的SAS整理之后的数据源,一个数据list。

源数据的内容很简单,[ ]里面是定义的record的内容。其中,a=1,b=b1,c=false是一条记录,a=2是第二条记录,等等。对于源数据为非关系型数据库的,这样的record形式的数据内容会很常见的。

解决方法:

1. 最后一个tab页Transform,点击To Table Convert

2. 在这里默认项就可以了。点击OK。得到一个可以扩展的Column1.如下图所示:

3. 扩展column1的内容,点击OK。得到如下图所示内容。

这样就可以了。很简单啊~~

点击Advanced Editor,得到具体代码如下:

let    Source = {[a = 1, b = "b1",c = false], [a = 2], [a = 3, b = "b3", c = true]},    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"a", "b", "c"}, {"Column1.a", "Column1.b", "Column1.c"})in    #"Expanded Column1"

话说我根本不想要重命名,所以可以把重命名部分去掉。

let    Source = {[a = 1, b = "b1",c = false], [a = 2], [a = 3, b = "b3", c = true]},    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"a", "b", "c"})in    #"Expanded Column1"

得到结果如下:

还不错哦。

实际项目中比这个例子略复杂。我又非要纠结M Query,结果打脸了~~后来想清楚了,用上面这个最基本的方法做了,其实也很简单。

下一篇写SAS做数据源的那个文档。

谢谢关注,分享~~


推荐 0
本文由 懒胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册