#Powerquery 利用M函数合并文件(CSV、Text、Xlsx)

powerquery,利用,函数,合并,文件,csv,text,xlsx · 浏览次数 : 733

小编点评

**合并文件案例:** **1. 新建查询** 创建一个新的查询,数据源选择为目标文件的路径。 **2. 转化数据** 点击转化数据。 **3. 添加自定义列** 添加一个自定义列,例如:"合并字段"。 **4. 利用M函数合并** 利用`Csv.Document`函数进行合并,参数包括: * `source`:CSV或TXT文件的内容 * `delimiter`:分隔符 * `encoding`:编码格式 **5. 展开对应TABLE数据** 展开对应TABLE数据即可完成合并操作。 **格式支持** * CSV文件默认值为936,CSV合并`Csv.Document([Content],[Delimiter=\",\", Encoding=936])` * TXT文件默认值为1200,TXT合并`Csv.Document(File.Contents(TXT文件路径),[Delimiter=\" \", Columns=字段个数,Encoding=1200])`

正文

在日常工作中,我们往往会遇到多个文件需要合并的情况,本文一起探讨一下利用M函数合并文件的案例。

由于需要合并的文件的格式不同,也需要选择不同的M函数来进行合并,本文将分享三个格式的合并案例。

首先介绍一下合并步骤,

1:对新建一个新查询,数据源选择为目标文件的路径。

 

2:点击转化数据

 

3:添加一个自定义列

 

 4:利用M函数合并

=Csv.Document([Content],[Delimiter=",", Encoding=936])

5:展开对应TABLE数据即可完成全部操作,合并XLSX以及TEXT格式的文件也是同理可得。

 

解析:此处主要利用两个M函数进行合并操作

Csv.Document 

Csv.Document函数说明:

Csv.Document函数:返回CSV文档的内容作为表

表达式:function(source as any, optional columns as any, optional delimiteras any, optional extraValues as nullable, optional encoding as nullableTextEncoding Type) as table

说明:此函数在使用时需要为其指定四个参数

source是CSV或TXT文件的内容,可以是任意数据类型

columns是可选参数,是要导入的字段个数,如果要导入CSV或TXT文件中的所有字段,则可以省略columns

delimiter是分隔符,为可选参数,如果未指定则使用逗号作为分隔符

extraValues是可选参数,有关extraValues的支持值,请参阅ExtraValues.Type,一般不用

encoding是编码类型,是可选参数

=Csv.Document([Content],[Delimiter=",", Encoding=936])  #CSV文件默认值为936,CSV合并M函数

=Csv.Document(File.Contents(TXT文件路径),[Delimiter=" ", Columns=字段个数,Encoding=1200)#中文TXT文件默认值为1200,TXT合并M函数

无论文件的后缀名是CSV还是TXT,这两类文件都属于文本文件。构成文本文件的内容有两部分,一个是数据内容,另一个是字段与字段间的分隔符。CSV和TXT两种文本文件最大的区别在于他们的分隔符不同。CSV文件固定用“,”进行分隔,而TXT文件的分隔符可以自由设定为任意字符串,但通常情况下默认的TXT文件的分隔符为制表符,也就是按下Tab键时生成的字符。除此之外,为了正确显示中文字符,文本文件中还需要考虑文字编码因素。在Excel中默认的中文CSV文件的文字编码为“936”,而默认的中文TXT文件的文字编码为“1200”。

因为此处是合并csv文件,一般分隔符为",",代码 [Delimiter=",", Encoding=936] , 合并txt文件,此处分割符为 "  ",Encoding=1200。

Excel.workbook函数说明:

Excel.Workbook函数:从Excel工作簿返回工作表的记录

表达式:function(workbook as binary, optional useHeaders as nullablelogical, optional delayTypes as nullable logical) as table

说明:此函数可以将二进制的Excel文件信息转换为表数据,函数需要三个参数

workbook是必选参数,是要导入Excel文件的二进制信息,一般使用File.Contents函数可以将指定路径下的Excel文件保存为二进制信息

useHeaders是可选参数,一般使用null

delayTypes是可选参数,一般使用true

=Excel.Workbook([content])

 其他操作同上

 

总结

利用M函数合并文件,需要根据目标的文件格式,选择不同的M函数,在合并CSV和TXT的文件时,需要注意分隔符和编码格式,来避免展开乱码的问题,而标准XLSX的格式则不需要,直接M函数展开即可。

以上,期待下次的分享。

与#Powerquery 利用M函数合并文件(CSV、Text、Xlsx)相似的内容:

#Powerquery 利用M函数合并文件(CSV、Text、Xlsx)

在日常工作中,我们往往会遇到多个文件需要合并的情况,本文一起探讨一下利用M函数合并文件的案例。 由于需要合并的文件的格式不同,也需要选择不同的M函数来进行合并,本文将分享三个格式的合并案例。 首先介绍一下合并步骤, 1:对新建一个新查询,数据源选择为目标文件的路径。 2:点击转化数据 3:添加一个自

#Python 利用pandas 合并csv/xlsx文件

上次我们分享了利用powerquery来合并文件进行数据分析,但是Pq有一部分局限性,在现实工作中,我们往往需要合并多个文件去处理数据, 如果面对20个甚至更多的文件,pq中的每一步的步骤都会去读取每个文件,运行速度会十分慢,那么有没有简单的解决方法吗? 答案是:可以考虑合并成一个文件后来处理。 我

#Powerquery 数据结构基础 一维数据与二维数据

本文参考了采悟老师的文章,推荐大家看原文,本文为笔记随笔 https://mp.weixin.qq.com/s?__biz=MzA4MzQwMjY4MA==&mid=2484068871&idx=1&sn=4ab596602ed0a4c851755673d8fcf37a&chksm=8e0c48d0

#Powerquery pq从入门到精通,笔记梳理

详细视频可以B站搜索,ms_excel博主,看leila的视频翻译课,powerquery从入门到精通。 后续也会根据自己工作来更新这部分的实际用法。

#Power Query 分组依据,数据的分类汇总

一:概述 Power Query中的分组依据,类似于Excel中的分类汇总功能,可以按照某一分类对某列数据或某几列数据进行去重操作和聚合计算(求和、计数、求平均、非重复行计数等),并在去重的过程中将其他数据列按照用户指定的方式, 对其进行聚合以便生成与依据列相对应的数据。在实际工作中,当我们遇到原始