昨天我们做了一个复杂JSON结构数据的单列数据提取,今天我们来做一个简单JSON数据结构的多列数据提取,这是这份数据的概况:
这是我国GDP增长率数据,包括三产的增长数据:
数据源复制到Power Query中:
结构非常简单,我们要做的就是把X作为标题行,Y作为数据,整理成表格就可以了。
首先是X处理
我们的目标是把X变成一个列表:
然后是Y
同样要把Y变成列表的列表:
因为Y原本是只有4行数据,但是每行数据都是一长串的数字构成的字符串,我们用Text.Split函数以逗号为分隔符,把它拆分成列表:
= List.Transform( JS[Y],each Text.Split(_,","))
生成表格:
用X做标题,Y做数据,生成表格:
= Table.FromRows(Y,X)
以上的步骤是为了大家了解这个过程,其实是可以一步完成的:
把X、Y的处理过程的公式带入到最后的查询中就可以了:
= Table.FromRows(
List.Transform(
JS[Y],each Text.Split(_,",")),
Text.Split(JS[X],","))
当然这种多列的数据在Power BI中不好用,我们要变成纵向排列的数据,转置之前,要把标题降级为数据:
然后转置,添加索引:
为什么要添加索引?这是为了保留文本时间的顺序,如果用过Power BI的同学,就会了解,Power BI中的排序功能很强大,但也很弱智,像数据中这种带有汉字的文本时间很难排好顺序,但是DAX中有列排序的功能:
我们把时间列的顺序用索引来排序,就能保证时间序列的从早到晚,这样的顺序。
数据加载之后,做折线图表的时候,排序选择升序就好了: