ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 综合应用 > 利用Power Query自定义“过程”动态更新多工作表及数据透视表

利用Power Query自定义“过程”动态更新多工作表及数据透视表

作者:绿色风 分类: 时间:2022-08-18 浏览:265
楼主
嘉昆2011
Q:问题描述,如何对同一路径下多个工作薄合并成一个新工作表,并进行格式整理,之后创建数据透视表进行统计?
通常情况下,是要用VBA进行二次开发,编写几十行代码并调试等,时间精力耗费不起。
这里介绍的是利用Power Query自定义“过程”动态更新多工作表及数据透视表。
首先,看一下数据源


 


A:利用Power Query后的效果演示动画,注意动画的起始点为对多个工作簿合并后并进行字段格式调整后的样式:


 


在演示动画中注意以下几点:
1,对原有工作表区域数据的动态更新;
2,对工作表进行的变换操作:字段重命名,字段筛选,字段逆透视(UnPivot)等;
3,对新增工作簿数据区域自动并入当前工作表内。

在“数据处理分析之Data Explorer”这篇帖子中,第一个动画介绍的是对.csv文件的批量合并处理,但对Excel文件并不适用,所以要进行稍微改写。
  1. http://www.exceltip.net/forum.php?mod=viewthread&tid=47905
操作动画如下:

 



动画中录制的过程如下:
  1. let
  2.     Source = Excel.Workbook(File.Contents("所录制的绝对路径\Order001.xlsx")),
  3.     Sheet2 = Source{[Name="Sheet1"]}[Data],
  4.     FirstRowAsHeader = Table.PromoteHeaders(Sheet2)
  5. in
  6.     FirstRowAsHeader
自定义“过程”fGetXLFiles改写如下:
  1. let GetXLFiles=(FilePath, FileName) =>

  2. let
  3.     Source = Excel.Workbook(File.Contents(FilePath&FileName)),
  4.     Sheet2 = Source{[Name="Sheet1"]}[Data],
  5.     FirstRowAsHeader = Table.PromoteHeaders(Sheet2)
  6. in
  7.     FirstRowAsHeader

  8. in GetXLFiles
可以看出Power Query自定义过程简单明了,易学易用。
字段变换操作不是本篇重点,也不是难点,略过。

最后看下在数据透视表中的动态更新,Excel 2010和Excel 2013操作有所不同,Excel 2013可以直接加载在数据模型(Data Model)中,也可以直接以返回的列表作为数据源插入数据透视表,还可以参考下面的操作动画(Excel 2010):


 


操作数据源:

Sample.rar


祝大家周末愉快!





2楼
芐雨
这方面接触很少,学习了
3楼
stellar
没看太懂,稍后再学习
4楼
亡者天下
好好学习一下!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap