Power Query03-从文件夹获取excel、csv、xml文件,简化5个查询为1个查询

工作中最常用的一个场景是有个文件夹,按照每天或每周的频次往里面放数据进行存档,文件格式通常为excel、csv、xml格式。然后通过Power BI对文件夹中的数据进行获取,处理形成固定的报表。按照常规的Power Query获取文件夹的方法,我们可以顺利的获取文件夹的数据,但是常常在查询窗口中自动生成至少5个莫名其妙的查询,看起来非常混乱。当获取的文件夹数量多的时候,更是难以管理。本文将分享更好的方法来获取文件夹数据,并且只有1个查询。

Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询1

1.Power Query常规获取文件夹文件:自动生成5个查询

1.1第一步:连接文件夹

数据》获取数据》来自文件》从文件夹》查找打开要添加的文件夹

也可以新建一个空白查询,输入导入文件夹的通用M函数,只需要更换文件夹地址即可:

=Floder.Files(”文件夹地址”)

Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询2
Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询3

通过文件夹获取数据后,基本都是固定抓取生成以下8个字段内容:

  • Content:文件二进制内容
  • Name:文件名称
  • Extention:文件类型
  • Data accessed:文件访问日期
  • Data modified:文件修改日期
  • Data created:文件创建日期
  • Attributes:文件属性
  • Folder path:文件地址
power query获取文件夹字段内容

1.2第二步:展开数据

在【Content】旁边有连个向下的箭头,点击就可以展开所有数据。这种方法可以批量获取文件夹中的数据,唯一的是会自动生成5个莫名其妙的查询,对于管理来说十分不方便。

Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询4

2. 5个查询简化为1个查询方法

如果想把5个查询简化成1个查询,方法就是在添加完文件夹之后,我们先不要展开数据,添加【1个自定义列】

添加完自定义列之后在展开数据。

这里面的关键是添加的自定义列要输入抓取excel、csv、xml等格式的M函数。

3.Power Query获取文件夹中的Excel文件:1个查询

3.1添加自定义列

在获取文件夹之后不要急着展开数据,添加【自定义列】

Excel类型文件,输入以下M函数代码,函数里面的【true】默认会把第一行提升为标题,减少后续提升标题操作:

=Excel.Workbook([Content],true)

3.2删除不需要保留的列

3.3展开自定义列抓取的数据

Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询5

4.Power Query获取文件夹中的CSV文件:1个查询

4.1添加自定义列

在获取文件夹之后不要急着展开数据,添加【自定义列】

CSV格式的文件,添加自定义列,输入以下M函数代码,会默认把第一行提升为标题,减少后续提升标题操作:

=Table.PromoteHeaders(Csv.Document([Content]),[PromoteAllScalars=true])

4.2删除不需要保留的列

4.3展开自定义列抓取的数据

Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询6

5.Power Query获取文件夹中的Xml格式文件:1个查询

5.1添加自定义列

在获取文件夹之后不要急着展开数据,添加【自定义列】

Xml格式的文件,添加自定义列,输入以下M函数代码,会默认把第一行提升为标题,减少后续提升标题操作:

=Xml.Tables([Content])

5.2删除不需要保留的列

5.3展开自定义列抓取的数据

Power Qery从文件夹获取Excel、CSV、xml文件,简化5个查询为1个查询7
本文作者:自由超
本文标题:《Power Query03-从文件夹获取excel、csv、xml文件,简化5个查询为1个查询》
本文链接:https://freechao.com/4638.html
发布日期:2022年09月19日 22:04:52
更新日期:2024年03月06日 21:42:33
版权声明:除特殊注明,均为作者原创内容,遵守CC-BY-NC 4.0版权协议,转发请保留原文链接!
免责声明:文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!
分享给更多人

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注