多语言展示
当前在线:953今日阅读:91今日分享:37

Power Query逆透视列处理数据列转换为行的问题

Excel中工作表中,有时需要把多列数据转换到多行中,传统的方法是很处理的。一般需要多个步骤或VBA,而Power Query数据工具则可轻易实现。PQ是Excel中一个功能强大且容易掌握(要精通的话那就要花点功夫了)的数据工具,Excel2016或2019自带,2010或2013需要下载Power Query后安装。因为PQ处理数据是一个数据查询,相当于对数据库进行查询操作,所以对数据源要求数据库一样的结果,对于Excel的数据就是要求不能有合并单元格,有标题行(如果没有,创建表时会自动添加一行标题),下面结合一个具体问题说明PQ如何转换的具体步骤:
工具/原料
1

电脑

2

Excel 2010或更高版本

方法/步骤
1

光标定位到数据区域,数据菜单——获取或转换数据——自表格/区域,Excel会自动将数据区域转换为表格(较早的版本的要先将区域转换为表格——光标定位到数据区域后按Ctrl+T)

2

按图2中的确定,数据区域转换为表格后,Excel会自动启动PQ,进入PQ界面。简单介绍下PQ界面,有点类似于Excel的工作表,但内容要少一些,但功能却非常强大。上面菜单栏,菜单栏下面是对应于不同菜单的工具栏(图3 中是对应文件菜单的工具栏),工具栏下面是PQ的M语言(也收M公式)编辑栏,编辑栏的语言对应当前操作步骤的语言。对于熟练掌握PQ的高手则不需要一个个步骤来进行操作,而是直接通过书写一系列的M语言来完成复杂的数据处理过程(打开视图菜单中的高级编辑器,在编辑器直接编写M语言),而对于初学者,则按一个个步骤来操作是学习和掌握PQ最有效的方法。下面右侧是操作步骤的记录,每一步骤都会记录下来,任何时候可以对某些步骤进行编辑修改,也可删除或插入步骤。如图3中已有的两个步骤是启动PQ时自动添加的,第1个步骤是源,表示从工作表中获取数据源,第2个步骤是PQ根据数据各列数据的属性,自动判断将数据转换为不同的大型,如第1列的名称,前面有“ABC”这样的标示,表示该列是文本数据,点这个标示,会弹出数据类型,与Excel工作表设置单元格格式的数据类型相似。后面列的“123”表示是整数,如小数则是“1.2”。编辑栏下面是数据预览区,每一个处理步骤后,如果步骤没有错误,就会显示出该步骤完成的后结果。点右侧栏的步骤,会显示对应步骤的处理结果,也就是可随时回过头来观察各个步骤的处理效果。

3

选择名称列,转换菜单中点逆透视列下拉箭头,选择“逆透视其他列”,就把除选择“名称”以外的其他所有列都进行逆透视。也可以选择所有数据列,直接点“逆透视列”或下拉中“逆透视选择的列”。这里用“逆透视其他列”是选择时只要选择一列,这对于要逆透视多列的情况操作相对容易些。

4

逆透视后的结果如图5

5

现在已基本达到了需要的结果,但“属性”列是多余了,右击后,选择“删除”,也可以选择后,在开始菜单中选择删除列,再右击“值”,选择“重命名”,将“值”修改为“数据”

6

现在的预览结果已符合要求,可以所数据上载回Excel工作表了。文件菜单中有两个上载选项,一个是“关闭并上载”,结果会关闭PQ,并将处理后的数据上载到一个新的工作表中;另一个是“关闭并上载至”,这里会更多的选项项。我们现在选择些选项。

7

回到Excel工作表中,会弹出如何上载数据的对话框,“新工作表”则会在新工作表中上载数据,与步骤5中选择“关闭并上载”效果一样,这里选择“现有工作表”,再选择结果目标位置起始单元格,这里选择H1。上载的结果可以选择 “表”,就是PQ中的预览看到的表,也可以以PQ处理后的做数据源进行透视,生成数据透视表,还可生成数据透视图。这里选择“表”。

8

确定后,数据就会上载到指定的区域

9

现在数据源有变化,增加2行数据,且原有数据中b中的7改到了a中。此时,PQ的结果并没有变化。

10

PQ查询的结果并不会在数据源修改后立马更新,这点与公式是不同的。也正是这样,PQ查询才不会像公式一样要消耗额外的资源。如果不介意没有立即得到更新结果,可以不予理睬。文件在保存时会自动更新,下次打开就是更新的。要立即看到更新结果,可以在PQ结果中右击,选择“刷新”即可进行更新。

注意事项

PS:逆透视是PQ中一个极为强大的功能,也是一个亮点,可以很方便地解决以前难以解决的问题。而数据查询的更新功能,可以满足题主“行数不确定,列数不确定”的要求。如结果放在数据同一工作表,建议与数据之间多空一些列,以满足“列数不确定”会有很多列的要求。当然在新工作表中得到PQ结果就不会有这个顾虑了。​

推荐信息