Power Query案例合并同一个文件夹下多个Excel工作簿文件及SQL转置动态查询自动刷新

合集下载

PowerQuery技巧之合并单簿内的多表(合并方式_直接查询_VBA建表后查询_建表后用M查询)

PowerQuery技巧之合并单簿内的多表(合并方式_直接查询_VBA建表后查询_建表后用M查询)

单簿合并多表,起始招数分两派 - <直接查询> 和 <建立表后在查询>********一种是直接从工作簿建立查询************1.不建立表,直接新建空白查询 - 导入工作簿 - 完成合并数据/查询/文件/从工作簿2.查询界面打开, 如要合并全部表, 直接右键选编辑(Edit).若是只合并若干表,则勾选多选(Select multiple items),再勾选待合并表后选编辑(Edit)3. 编辑界面打开后, 在右侧的步骤点击源(Source)再转到公示栏, 先在 = 号后添加 bine( 然后在结尾处添加 )[Data] 完成后回车* = #shared 可查询M用法4.现在只需要做些整理,就能就可以上传合并后的表去Excel里面了转换/使用第一行做标题点击筛选,反选 bb, 只保留数值5, Home 下面选关闭且上传至表(Close & Load)6. 完成~ *** 支持增加新表后自动加入查询结果.******或者用合并多工作薄的方式合并单簿多表将要合并的工作薄单独存放在一个文件夹中,然后建立查询: 数据/查询/文件/从文件夹在打开的查询界面选着添加自定义列(Add Custom Column),自定义公示栏中输入=Excel.Workbook([Content],true) 回车展开, 接着点 Data 继续展开选中结果中的 Name 和 Custom列, 管理列/删除其他列, 然后点击Custom列的展开得到下表, 删除多余列上传Excel即为所得.**PS:如果往这个文件夹这个文件夹中添加工作薄, 或者在这个工作薄中添加工作表,都会被自动添加自动添加到查询结果.********另一种是先建立表,在查询************手动建表(Ctrl+T/L),或者VBA(文末分享代码) - 纯点击 / 或者 M 代码完成合并完成合并先建立表:可以手动建表1. 所有建立成格式表, (Ctrl + T/L )所有需要合并的工作表工作表都分别建立成格式表Ctrl+F3, 在名称管理器中,查看你所要合并的表, 带特征码重命名之特征码重命名之(方便之后合并时做时筛选), 或者将不要合并的表重命名(增加新表时不用特意特征命名,直接刷新)2. 步骤-- 2.1 数据/从表建立查询-- 2.2 右侧步骤/删除其他步骤-- 2.3 点击源(Source)-- 2.4 点击公示栏, 修改公式为:= Excel.CurrentWorkbook() 后回车3. 点击筛选, 过滤为只显示不包含 "_不合并"的表4, ,反选下框, 将结果的列名不使用原列名为前缀, 点击 Expand5. 之后上传excel6. 完成. *** 支持增加新表后自动加入查询结果.***添加新表后刷新,自动加入查询结果:****先建立表: 用M 代码完成合并完成合并1.先将所有待合并表格式表(Table)所有待合并表建立成格式表2. 数据/ 从表格建立查询3. 删除步骤,只保留源(Source), 选择合并/追加 (只是为了帮助理解M,可省略步骤)3. 追加本身 (只是为了帮助理解M,可省略步骤)4. 查看/高级编辑打开后可看见M此处代码为高级编辑打开letSource = Excel.CurrentWorkbook(){[Name=”tblNorth”]}[Content],#”Appended Query” = bine({Source, Source})in#”Appended Query”显然, bine 语句是把前一句定义的源(Source) 进行了自我合并.于是简单了, let 后面把所有需要合并的表定义加进去, 再用bine 合并起来就完成了. **当然, 有新表加入新表加入的时候,只能手动编辑了.此处代码:letSource1 = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],Source2 = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],Source3 = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],Source4 = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],#"Appended Query" = bine({Source1,Source2,Source3,Source4})in#"Appended Query"******************VBA建立格式表(Convert Range To Table in all worksheets in one workbook)*************Sub CreatTableRenameAll() '#1 Creat Table and Rename as sheet for All sheets 'Dim wrksht As WorksheetDim objTable As ListObjectApplication.ScreenUpdating = FalseFor i = 2 To 25 '表2到表25,Excel窗口里的排序,不是VBE中顺序'or ActiveWorkbook.Worksheets.Count ' 或者,最大工作表数Set sh = ActiveWorkbook.Worksheets(i)If sh.Index > 0 Then 'Conditions for traversal 'For i = 1 To ActiveWorkbook.Worksheets.CountDebug.Print sh.IndexTName = sh.Activatesh.Range("A27:F39").Select '固定区域建立为表'or sh.range("A1").CurrentRegion.select '或者, A1 所在数据区域建立成表'ActiveCell.CurrentRegion.Select '或者,当前激活的单元格所在区域建立表'sh.ListObjects.Add(xlSrcRange, Selection, , xlYes).Name = "a" 'Creat Table,Rename Table as sheet name '另一种建表方式Set objTable = sh.ListObjects.Add(xlSrcRange, Selection, , xlYes) 'Creat Table = TNameobjTable.TableStyle = None '表格式为无格式可选TalbeStyleLight1 等等End IfNextApplication.ScreenUpdating = TureEnd Sub。

excel不用vba不用sql语句且看powerquery快速合并多个excel工作簿

excel不用vba不用sql语句且看powerquery快速合并多个excel工作簿

Excel 不用VBA,不用SQL语句,且看POWER QUERY 快
速合并多个Excel工作簿
快来学习Power Query 吧,屌爆了的Excel加载项一步综合介绍Power Query 使用方法
更多视频:更多视频操作教程.rar
(170 Bytes, 下载次数: 224)不需要使用VBA和SQL语句,就能快速合并工作簿,用PQ实现的步骤如下:一、模拟数
据背景
我桌面有一个文件夹“父文件夹”,里面有两个工作簿车间1和车间2,还有一个子文件夹,子文件夹里面同样有两
个工作簿,车间3和车间4。

四个工作簿里面各有5张工作表,工作表名称分别为1月、2月、3月、4月、5月。

每张工作表内容是一样的,两列,名称和数量。

为便于理解,以下是截图。

二、查看PO查询语句,构建自定义函数
1、PO选项卡-从文件-从文件夹
2、导入文件夹及文件目录
信息以后,看到里面有路径及文件名称的信息,这是之后要。

使用Power Query批量合并多个Excel

使用Power Query批量合并多个Excel

使用Power Query批量合并多个Excel在日常工作中经常需要将多个Excel文件合并至一张工作表中,不同的人有不同的做法,有的同学会使用通俗简单地复制粘贴,有的同学会使用录制宏或者网上百度VBA代码进行一键汇总,还有一个方法就是使用Excel自带工具Power Query进行批量合并,本文就简单介绍一下PQ是如何批量合并多个Excel文件的。

由于只是数据处理的过程,下面的示例是在Excel 2016进行,使用Excel 2010、Excel 2013的插件以及在Power BI Desktop中的操作都是一样的。

Step1.新建一张空白Excel工作簿,点击"数据"选项卡下"新建查询";Step2.从文件夹中获取数据,浏览找到需要汇总文件夹的路径,点击“确定”;Step3.确定后出现这个界面,点击“编辑”;Step4.进入查询编辑器,数据就储存在[Content]列,其它列都是每个工作簿的信息,现在要做的就是把Content内容提取出来;Step5.点击"添加列"选项卡,添加自定义列自定义列中输入公式=Excel.Workbook([Content]),(这里要注意严格区分大小写,不能写错了,这就是提取Excel格式数据的M函数),然后点击“确定”;Step6.点击“确定”后就出现了一个自定义列;Step7.点击[定义列]右上角的双箭头展开数据,默认点击“确定”(或者也可以根据需求对增加列内容进行选择,不需要的项目方框内不要打钩);Step8.点击“确定”后,数据表中增加两列;Step9.继续点击[自定义.Data]列的右上角的双箭头,然后还是直接点击“确认”,数据就全部加载完成(此处也可以根据需求选择需要保留列,对于不需要加载的列可以将其前面方框内钩取消);Step10.数据汇总完成,点击“关闭并上载”下拉菜单中的“关闭并应用”,此时数据就全部加载到Excel表格中了(在执行此步骤之前也可以根据需要对列和行数据进行选择保留,删除掉不需要行列数据)。

Excel:使用powerquery进行多表合并

Excel:使用powerquery进行多表合并

Excel:使⽤powerquery进⾏多表合并注:本⽂操作⼯具为office365⼯作中常遇到需汇总多张表进⾏分析的情况,本⽂以某公司销售数据(数据为虚构数据)为例介绍使⽤powerquery合并excel表的⽅法。

本⽂中所使⽤数据格式相同,且⼯作表中第⼀⾏为标题⾏,数据不规范可能使合并汇总数据存在问题或合并不成功,注意事项请移⾄⽂末进⾏查看。

多表合并存在多种情况:⼀. 单⼯作簿多⼯作表合并原始数据中存在多sheet页,进⾏单⼯作簿的多⼯作表合并,先看原始数据及处理之后的数据:原始数据▼最终数据▼第⼀步:新建查询(进⼊powerquery编辑器)点击【数据】>【获取数据】>【来⾃⽂件】>【从⼯作簿】,选择原始数据,导⼊第⼆步:追加查询点击【主页】>【追加查询】>【追加查询】,选择“三个或更多表”,依次添加⼯作表,得到合并后的数据第三步:关闭并上载点击【关闭并上载】>【关闭并上载】,可在excel中查看汇总后的数据第四步:excel中对数据进⾏最后处理在excel中对数据进⾏简单处理,得到最终汇总数据⼆. 多⼯作簿单⼯作表合并原始数据含有多个⼯作簿,但每个⼯作簿中只有⼀个⼯作表,进⾏多⼯作簿的单⼯作表合并,先看原始数据及处理之后的数据:原始数据▼最终数据▼第⼀步:新建查询(进⼊powerquery编辑器),合并点击【数据】>【获取数据】>【来⾃⽂件】>【从⽂件夹】,选择原始数据,导⼊,点击【组合】>【合并和编辑】,选择⼯作表,点击【确定】,在powerquery中可查看到已合并的数据第⼆步:关闭并上载查看合并后的数据,点击【关闭并上载】注:由于第三个⼯作表中存在编辑过的空⾏,合并时空⾏也进⼊到合并的数据中,可在合并之前对⼯作表数据进⾏处理第三步:excel中对数据进⾏最后处理在excel中对数据进⾏简单处理,得到最终汇总数据三. 多⼯作簿多⼯作表合并实际⼯作中常常存在需要合并⽂件夹中的excel数据,且每个⼯作簿中含有多张⼯作表,进⾏多⼯作簿的多⼯作表合并,先看原始数据及处理之后的数据:原始数据▼最终数据▼第⼀步:新建查询(进⼊powerquery编辑器)点击【数据】>【获取数据】>【来⾃⽂件】>【从⽂件夹】,选择原始数据,导⼊,点击【转换数据】第⼆步:删除其他信息,保留content及name列保留content及name列,点击【主页】>【删除列】>【删除其他列】第三步:⾃定义列,返回⼯作表记录点击【添加列】>【⾃定义列】,输⼊新列名及公式:Excel.Workbook([Content],true)注:公式Excel.Workbook([Content],true)需区分⼤⼩写公式解析:功能:从Excel⼯作簿返回⼯作表的记录参数:Excel.Workbook( workbook as binary, optional useHeaders as nullable logical, optional delayTypes as nullable logical) as table第⼀个参数是要解析的字段,返回⼀个table,第⼆个是可选参数逻辑值,参数使⽤true,就是指定数据使⽤第⼀⾏做为标题。

Powerquery快速合并多个sheet表

Powerquery快速合并多个sheet表

Powerquery快速合并多个sheet表在⽇常⼯作中我们会经常碰到多个表格汇总或者多个excel⽂件进⾏汇总合并。

如果数据量少或者表格少的情况下,我们还可以使⽤公式或者⼿动复制、粘贴进⾏汇总多个,但是碰到经常更新的数据或者数据多的情况下,再⽤上述的公式汇总或复制、粘贴将会浪费我们⼤量的时间,今天我们先介绍使⽤excel 中⾃带的power query⼯具来进⾏多个sheet数据表的汇总。

上述的表格中分别有2017、2018及2019年的各个省份销售数据及销售⾦额。

选择2019的sheet表1.点击数据区域;2.数据3.从表格4.勾选“表包含标题”5.确定excel将会⾃动转到power query将查询设置中,将名称改为“2019”。

(⽅便记忆)重复上述步骤,将2018、2017的数据分别导⼊power query中,我们随便点击⼀个查询,1.主页;2.追加查询选项3.将查询追加为新查询选择“三个或更多表”,并将2018、2019依次添加⼊“要追加的表”中,按确定,如下图重复项对应的销售与⾦额进⾏相加依次1主页2分组依据3⾼级4.分组依据选择“⽣产⼚家省份5新列名输⼊“本期销量”-操作求和-求和的柱(即要求和的数据区域)选择本期销售量。

同理在新增聚合“销售⾦额-求和-销售⾦额”最后确定。

然后进⾏美化,删除空⾏,添加序号,并上载。

这个时候我们的数据就汇总完成你以为这就结束了?少年,power query的重点是⾃动处理数据。

我们在2018表录⼊⼀串数据如下图然后在数据汇总表格数据区域中点击右键-刷新如果对你有帮助请点个关注、转发,我后期还会持续更新教程。

Excel多表合并一表:powerquer技术追加查询就这么简单!

Excel多表合并一表:powerquer技术追加查询就这么简单!

Excel多表合并⼀表:powerquer技术追加查询就这么简单!
之前有很多⼩伙伴都问过关于excel中多张表如何快速合并在⼀起?如下⾯表多个销售地区的表
分布在不同的表格中,对数据分析会造成很⼤的困扰,⽐如⽆法进⾏数据透视等。

今天就和⼤家简单的介绍⼀下如何利⽤power quer技术进⾏数据合并。

power quer技术是通过Excel中“新建查询”完成的,在数据选项卡下⽅。

具体合并步骤为:
①选择新建查询后,选择对应⾥⾯的命令从⽂件——从⼯作薄
②在弹出的对话框⾥⾯导⼊数据选择要包含⼯作表的excel⽂件。

单击导⼊即可后会弹出以下的
导航器对话框,然后我们把对应的⼯作表勾选,点击编辑即可
③然后新建⼀个“追加查询”表格
具体步骤是在开始选项卡下⽅选择追加查询命令即可。

④把三张表都进⾏追加,然后点击确定即可
⑤追加完毕后,回到power query主界⾯,进⾏关闭并上载⾄……
⑥在弹出的对话框选择默认的状态选择加载即可,然后你就会发现3张表就可以加载合并在⼀起了。

这个是我们经常会⽤到的⼀个合并⼯作表的⽅法!。

power query合并文件夹的方式

power query合并文件夹的方式

power query合并文件夹的方式
PowerQuery是MicrosoftExcel的一个强大工具,可以帮助用户快速连接、转换和整理数据。

其中一个非常有用的功能是能够合并多个文件夹中的数据。

下面我们将介绍如何使用Power Query来合并文件夹。

1. 打开Excel并进入Power Query编辑器,选择“从文件夹”
选项。

2. 在弹出的对话框中,选择包含要合并的文件夹的顶级文件夹。

3. 在“文件夹”选项卡中,可以选择要合并的文件类型、文件
夹名称中包含的文本等。

4. 选择“转换”选项后,Power Query会自动读取所有文件夹
中的数据。

5. 如果有多个文件夹,可以使用“追加查询”选项将它们合并
为一个查询。

6. 最后,选择“关闭和加载”选项,将查询结果加载到Excel 中。

通过这些简单的步骤,您就可以轻松地合并多个文件夹中的数据。

Power Query还提供了很多其他的数据整理功能,有助于提高数据处理效率和数据质量。

- 1 -。

power query的数据合并方法

power query的数据合并方法

power query的数据合并方法在数据处理与分析领域,Power Query 是一款功能强大的工具。

它能够帮助用户进行数据清洗、转换和合并等操作。

本文将详细介绍Power Query 的数据合并方法,帮助您更好地掌握这一技能。

一、Power Query 简介Power Query 是Microsoft Excel 和Power BI 中的一款数据处理插件。

它可以帮助用户从各种数据源(如文本文件、Excel 表、数据库等)导入数据,并进行清洗、转换和合并等操作。

通过Power Query,我们可以轻松地实现数据的整合和分析。

二、数据合并方法1.同一工作簿内数据合并(1)选中需要合并的表格,点击“开始”选项卡下的“合并”按钮。

(2)在弹出的“合并”窗口中,选择“添加”或“添加文件”按钮,将需要合并的表格添加到列表中。

(3)设置合并条件,如匹配列、合并方式等。

(4)点击“确定”按钮,完成数据合并。

2.不同工作簿间数据合并(1)打开目标工作簿,点击“数据”选项卡下的“获取外部数据”按钮,选择“来自其他源”中的“Excel”。

(2)在弹出的“打开”窗口中,选择源工作簿,点击“导入”按钮。

(3)在“导航器”窗口中,选择需要合并的数据表,点击“合并”按钮。

(4)设置合并条件,如匹配列、合并方式等。

(5)点击“确定”按钮,完成数据合并。

3.多个数据源合并(1)打开目标工作簿,点击“数据”选项卡下的“获取外部数据”按钮,选择“来自其他源”中的相应数据源。

(2)在弹出的窗口中,导入需要合并的数据。

(3)重复步骤1-2,导入其他数据源。

(4)点击“数据”选项卡下的“合并”按钮,选择“合并查询”选项。

(5)在“合并查询”窗口中,选择需要合并的数据表,设置合并条件。

(6)点击“确定”按钮,完成数据合并。

三、注意事项1.在合并数据时,请确保数据源中的匹配列具有唯一性,避免重复数据。

2.根据实际需求,选择合适的合并方式(如左连接、右连接、内连接等)。

利用Power Query合并表快速匹配提取多列数据

利用Power Query合并表快速匹配提取多列数据

利用Power Query合并表快速匹配提取多列数据Excel匹配多表数据方法很多,通过函数公式来实现数据量少的时候可以,但如果数据量大那就会遇到很多的问题。

那么如何可以快速的匹配大数据量的多表数据呢?下面以Excel2019来分享具体操作。

以某村贫困人口一年享受政策补助和务工收入来统计某一户的收入一览表情况,现有该村贫困人口花名册、务工收入表、奖补表、政策补助表等,现在要把这些表的收入统一合并为一户一个表,并通过户查看该户的各项收入一览表。

利用Power Query来进行多表合并,具体操作如下:1.打开Excel2019,选取数据——获取数据——自文件——从工作簿,如下图:2.进入导入数据页面,选取数据表格,点击导入,如下图:3.进入导航器页面,选取数据工作表,点击转换数据,如下图:4.进入PowerQuery编辑器页面,由于只需要统计贫困人口享受政策和收入情况中,可以不需要其他太多的数据列,也方便下一步的操作。

具体操作是:选取保留列,点击删除列,选取删除其他列,删除不需要的数据列。

如下图:5.对证件号码进行清洗,确保证件号码与身份证号码保持一致,以确保与下面需要合并数据表的身份证号码匹配相符或唯一对应。

选择要拆分列为证件号码列,在点击工具栏上的折拆分列,弹出对话框,选择按字符数。

操作如下图:6.字符数输入与身份证号码相等的18个字符,按黙认方式,点击确定。

操作如下图:7.把新拆分出来不需要的列删除掉,之后选择左上角关闭并上载至,弹出对话框选择关闭并上截至。

如下图:8.弹出导入数据对话框,根据需要点先或勾选项,点击确定。

如下图:9.创建连接表成功,加载数据行642行。

如下图:10.重复以上操作步骤,导入相应的数据表,所有表格都要导入匹配所需要到的数据列和所需要的数据列,如证件号码列、补助金等列,导入所有表格后。

如下图:11.所有创建连接的表都导入完成后,因为要以贫困人口为基本表来统计贫困人口享受的政策情况,所以要以贫困人口表作为主表,与其他三个表进行匹配,才能准确的统计出贫困人口中在其他三个表中所有的数据,也就是所享受的政策补助情况。

Excel用PowerQuery把文件夹下所有文件合并为一个与合并多个表格

Excel用PowerQuery把文件夹下所有文件合并为一个与合并多个表格

Excel⽤PowerQuery把⽂件夹下所有⽂件合并为⼀个与合并多个表格Excel⽤Power Query把⽂件夹下所有⽂件合并为⼀个与合并多个表格在 Excel Power Query 未出来之前,把⽂件夹下所有⽂件合并为⼀个与合并同⼀⼯作表中的多个⼯作表,需要⽤ VBA 实现,⽐较⿇烦。

有了 Power Query 后,不⽤再写代码,直接⽤它就可以合并⼀个⽂件夹(可包含⼦⽂件夹)下所有的 Excel ⽂件与⼀个 Excel ⽂档中所有Sheet。

⽤ Power Query 合并⽂件,主要是通过查询导⼊的办法实现,以下就是它们的具体操作⽅法,实例中操作所⽤版本均为 Excel 2016。

⼀、Excel⽤Power Query把多个⼯作表Sheet合并到⼀个⼯作表1、选择“数据”选项卡,单击“新建查询”,在弹出的菜单中依次选择“从⽂件”→从⼯作簿,打开“导⼊数据”窗⼝,定位到要合并的Excel⽂件所在的⽂件夹,双击要合并的⽂件(如 Power Query合并多个⼯作表),则弹出提⽰正在连接⽂件⼩窗⼝,连接完成后,打开“导航器”窗⼝,勾选“选择多项”,依次勾选“1⽉⾄6⽉”6个⼯作表,单击右下⾓的“加载”,打开“查询编辑器”窗⼝,选中左边的“1⽉”,单击“表格图标”,在弹出的菜单中选择“追加查询”,打开“追加”窗⼝,单击下拉列表框,在弹出的选项中选择“2⽉”,则把⼯作表“2⽉的数据”添加到“1⽉的数据”后⾯;同样⽅法添加“3⽉⾄6⽉的数据”,添加完成后,单击“查询编辑器”左上⾓的“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则“1⽉⾄6⽉的数据”添加到 Excel ⽂档中;操作过程步骤,如图1所⽰:提⽰:当从 Excel ⽂件导⼊数据时,在最后⼀步把数据添加到 Excel ⽂档时,可能会弹出“初始化数据源失败”的提⽰,单击“确定”即可。

2、在“查询编辑器”窗⼝,追加合并数据时,除可以从“表格图标”选择“追加查询”外,还可以直接选择窗⼝右上⾓的“追加查询”,如图2所⽰:图23、如果合并的⼯作表中有重复记录,把数据添加到⼀个表(如“1⽉”)后,可以单击“表格图标”,在弹出的菜单中选择“删除重复项”,如图3所⽰:图3⼆、Excel⽤Power Query把多个⽂件合并成⼀个⽂件,仅把 Sheet 添加到⼯作薄并未合并数据1、单击“数据”选项卡下的“新建查询”,依次选择“从⽂件”→从⼯作薄,打开“导⼊数据”窗⼝,定位到要合并的Excel⽂件所在的⽂件夹,双击要合并的⽂件(如 Power Query 合并查询),则所选⽂件导⼊到“导航器”窗⼝,勾选“选择多项”,依次勾选“Sheet1 和 Sheet2”,单击“编辑”,打开“查询编辑器”窗⼝,单击窗⼝右上⾓的“新建源”,在弹出的菜单中依次选择“⽂件””→ Excel,再次打开“导⼊数据”窗⼝,同样定位要合并⽂件所在⽂件夹,双击要导⼊⽂件(如 Power Query合并多个⼯作表),打开“导航器”窗⼝,再次勾选“选择多项”,并依次选择“1⽉⾄6⽉”六个⼯作表,单击“确定”,返回“查询编辑器”窗⼝,单击“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则两个 Excel ⽂件的8个⼯作表合并到⼀个 Excel ⽂件中;操作过程步骤,如图4所⽰:2、以上演⽰了把两个 Excel ⽂件合并为⼀个⽂件,如果要把更多的 Excel ⽂件合并为⼀个⽂件,只需在“查询编辑器”窗⼝重复选择“新建源”,选择 Excel ⽂件即可。

Excel数据分析篇:PowerQuery将文件夹中的多个同类型合并

Excel数据分析篇:PowerQuery将文件夹中的多个同类型合并

Excel数据分析篇:PowerQuery将文件夹中的多个同类型合并继Excel中通过Power Query从表格/区域、其他Excel文件及数据库中获取和转换数据,本期我们介绍一下如何从文件夹中获取多个文件的数据并进行转换或处理。

我们的演示案例是这样的:现某机构有多个分支机构(或某公司有多个子公司),各个分支机构都有自己的新员工入职统计的数据,且放在其各自的相应文件中,以分支机构的名称加以区分,我们需要做的是将这些分支机构的数据整理放在一个表格中,以便我们进一步查看和分析。

各个分支机构的员工入职信息放在“Enrolments”文件夹中,在一个工作表中,我们要将各分支机构的数据堆放在一起。

点击数据所要放置的Excel工作表的“数据”选项卡,在“获取数据”功能下,选择“自文件”下的“从文件夹”选项。

找到我们所需的文件夹“Enrolments”,点击“打开”。

选择相应的文件夹后,我们会来到文件预览的界面,在此对话框的最下面,可看到一些按钮,在Excel的较新的版本中,会有“组合”这一功能按钮,这一选项可以快速自动为我们将各个文件中的数据进行堆放;如果所使用的Excel版本没有此“组合”功能,也没有关系,我们稍后会演示一下此情况的操作,只需多操作几步即可。

点击“组合”下拉选项的“合并并转换数据”,会跳转到另一个界面,让我们预览第一个文件的具体数据。

点击“确定”后,我们会进入Power Query编辑器界面。

经过初步处理后,我们看到三个文件中的数据放到了一起,并且根据数据中的字段自动将首行设置为列标签,最左侧的一列显示数据是来自哪个文件。

我们首先将最左侧的一列数据来源删除,选中此列后,点击“主页”选项卡的“删除列”或按Delete键。

此时数据已按照需求放在一起,我们点击“关闭并上载”按钮,即可将处理后的数据放在Excel的一个新工作表中。

我们再来了解一下上述提到的没有“组合”功能的情况是怎样操作的。

当然在此之前的步骤仍是一样的,不同的是,如果没有“组合”按钮,我们直接点击“转换数据”按钮。

使用powerquery合并同一工作簿的多个工作表

使用powerquery合并同一工作簿的多个工作表

使用powerquery合并同一工作簿的多个工作表一、案例如下图所示,“各市销售明细”工作簿中有三个工作表,分别为北京、上海、广州三个城市的销售明细。

要求将这三个工作表的数据合并到一个工作表。

北京销售明细上海销售明细广州销售明细二、操作步骤1、新建一个工作簿“销售汇总表”。

单击【数据】-【新建查询】-【从文件】-【从工作簿】。

选择要合并工作表的工作簿,单击【导入】。

2、单击【导航器】左侧其中一个工作表,再单击【转换数据】打开power query编辑器,如下图所示:3、在power query右侧的【应用的步骤】中,单击选中【导航】。

然后右键单击,选择【删除到末尾】。

将步骤【导航】及之后的步骤全部删除。

得到的结果如下图所示:4、按住Ctrl键,依次选中列“Item”、“Kind”、“Hidden”,单击【删除列】。

得到的结果如下图所示:5、单击【Data】旁边的按钮,取消勾选【使用原始列名作为前缀】,单击确定。

得到的结果如下图所示:6、双击列标题,修改列标题名称,如下图所示:单击“产品”旁边的筛选按钮,取消勾选“产品”,如下图所示:单击确定后,得到的结果如下图所示:单击“日期”旁边的数据类型按钮,选择“日期”,将“日期”列的数据类型修改为“日期”。

得到的结果如下图所示:同样的方法,将“产品”列数据类型修改为文本;将“销售额”列的数据修改为数值。

7、单击【关闭并上载】,将数据加载到Excel工作表。

得到的结果如下图所示:8、当工作簿中新增工作表时,如下图所示,新增“深圳”销售明细。

只需要单击【查询】-【刷新】,就可以自动将新增工作表的数据合并到汇总表中。

如下图所示:。

PowerBI-[PQ-合并查询]获取同一文件夹下的多个文件

PowerBI-[PQ-合并查询]获取同一文件夹下的多个文件

PowerBI-[PQ-合并查询]获取同⼀⽂件夹下的多个⽂件背景:现有⽂件数据,Test Data下有三个⽂件夹CN,EN,JP,每个⽂件夹下⾯有两个Excel⽂件命名为Actual,Plan读取数据步骤:Step1 - 打开PBI并连接到⽂件夹,点击【转换数据】进⼊Power Query界⾯(可选) Step2 - 选择路径列,点击添加列>提取>选范围>提取路径中的Country信息.Step3 - 添加⾃定义列,如果源⽂件是Excel,写 each Excel.Workbook([Content],true) ; 若源⽂件是CSV,写 each Csv.Document([Content],null,null,null,936)。

Step4 - 展开【提取数据】列后,选择Data列和⽂本范围(Country),删除其他列Step5 - 展开Data列,然后将⽂本范围重命名为Country。

完。

附 Issue#1 - Plan Data 包含了今年⼀年的数据,Actual⽬前只有1-5 ⽉的数据。

想⽤PowerBI 把Plan和Actual 放在⼀张表,并⽤Actual的数据替换Plan 的数据。

(如果Actual 有6⽉的数据,刷新PBI后⾃动⽤Actual 6⽉的数据替换Plan的数据。

)实现:1 - 在Plan表查询Actual表,并添加⾃定义列将plan表Value 替换为Actual.Value ( each if [actual.Value1]=null then [Value1] else [actual.Value1] )2 - 若表内有多个Value,⽤ and 连接多个条件let源=Table.NestedJoin(plan, {"Year", "Month"}, actual, {"Year", "Month"}, "actual", JoinKind.LeftOuter),#"展开的“actual”" =Table.ExpandTableColumn(源, "actual", {"Value1"}, {"actual.Value1"}),已添加⾃定义=Table.AddColumn(#"展开的“actual”", "⾃定义", each if[actual.Value1]=null then[Value1]else[actual.Value1]),删除的列=Table.RemoveColumns(已添加⾃定义,{"Value1", "actual.Value1"}),重命名的列=Table.RenameColumns(删除的列,{{"⾃定义", "Value"}})in重命名的列。

PowerQuery合并工作簿出错怎么办?

PowerQuery合并工作簿出错怎么办?

PowerQuery合并工作簿出错怎么办?从2016版开始,Excel自带的Power Query功能让很多小伙伴为之倾倒,用Power Query来匹配字段(合并查询比VLOOKUP快很多),合并同一个文件夹下的大量工作簿等,效率那是一个高。

但是有很多小伙伴会遇到合并工作簿出错的问题:明明都是字段名字相同的工作簿,合并文件以后,却只显示一个工作簿的明细,其他工作簿的内容都不见了。

文件内容如截图所示:咱们先来回忆一下用PQ合并多个工作簿的方法。

数据选项卡—新建查询—从文件—从文件夹—浏览(选择工作簿所在的路径)—确定—组合和编辑—选择一个示例文件,点确定—关闭并上载。

通常,这样一套操作下来,保存好的多个工作簿,就乖乖的并到一个表里了。

但这次给出了错误提示:[Expression.Error] 该键与表中的任何行均不匹配。

让我们一起来查一查是哪里出了问题吧。

Power Query有一个很优秀的特性,就是会在右侧“应用的步骤”中记录下来每一步的操作,并起一个名字。

只要点击名字,就可以在界面中间预览这一步操作的结果。

我们从“更改的类型”开始往回找,看看是从哪一步开始出现Error的。

最终找到了“调用自定义函数1”。

再往前一步,就没有产生错误了。

所以我们来看一看,这个调用自定义函数1,到底出了什么问题。

点开左上角的高级编辑器,我们看到这一步使用了Table.AddColumn这个函数。

这个函数的功能是在表“筛选的隐藏文件1”中新增一列,新增的列名为“从新建文件夹转换文件”,第三个参数就是each后边调用的函数了。

这时候,我们基本可以断定,问题出在这个自定义的函数上了。

我们回过头来,看左边界面的查询,由两个文件夹状的标记组成:下边一个叫其他查询[2],也就是我们最终的查询结果;上边一个叫“从新建文件夹转换文件[3]”,就是自定义的函数了。

经过对这个函数下每一个查询的筛查,我们发现其中一个查询,叫做“从新建文件夹转换示例文件”。

PowerQuery技巧之于一工作簿内合并多个工作表

PowerQuery技巧之于一工作簿内合并多个工作表

有一种做法是通过先将每个待合并表建立成查询后,再使用PQ的追加功能达到多工作表合并.但鉴于某神秘原因本人始终无法成功(原因待查....- .-).只好曲线救国,以下为步骤.
1.每个待合并的工作表分别创立表.(Ctrl+T or L)
2.打开名称管理器(ctrl+F3 )编辑名称
3.关闭后,选择任意表,从菜单下面数据/从表格创建PowerQuery 查询.
在右侧的查询设置里面的应用步骤, 点叉删除,只保留源.
4.将公式栏中公式删除后面,只保留= Excel.CurrentWorkbook() 回车后.出现下表
5.删除多余行,保留所要合并表. 点击展开
6. 选中扩展, 取消使用原始列名
7. 点击上载. 便完成了.
8. PS: 合并时,只会合并显示所有表里面都共有的项.。

PowerQuery合并工作簿内多表到一个表

PowerQuery合并工作簿内多表到一个表

PowerQuery合并工作簿内多表到一个表在EXCEL应用领域,要将多个相同的工作表合并在一起,是一件比较棘手的活。

对基础掌握不全面的朋友来说,要想通过技巧来实现高效的合并,这简直就是灾难。

若要将下图这个工作簿内从1月到6月的数据完全合并到“合并”工作表中,下面的VBA代码拿走不谢。

Sub 合并()Dim i, j, k As IntegerApplication.ScreenUpdating = FalseWorksheets('合并').Range('2:65536').ClearContentsFor k = 2 To Sheets.CountSheets(k).Range('A2:E'&Sheets(k).[a65536].End(3).Row).Copy Worksheets('合并').Range('A' & sht.[a65536].End(xlUp).Row + 1)NextApplication.ScreenUpdating = TrueEnd Sub很显然,对完全没有VBA基础的表亲来说,学习需要一个过程。

那么介绍今天的主角,Power Query能带给我们怎样的体验。

纯菜单操作哦,不会写公式函数和VBA的表亲不用担心,看完之后就感觉会了。

Step 1:点击[Power Query]选项卡,点击[从文件]→[从Excel]。

在对话框中找到需要合并的工作簿文件,点击[打开]。

Step 2:在弹出的对话框中,选择到工作簿名称,然后点击[编辑],简单粗暴有道理,菜单操作很简单。

Step 3:来到了Power Query编辑器。

如果是在当前工作簿中合并,要筛选一下“Name“列,仅保留需要合并的表格。

Step4:点击”Data“列字段标题右侧的展开按钮,展开全部的数据。

Step 4:展开后,获得一个合并好的数据表,但还需要做两个动作。

power query 多工作簿合并m函数

power query 多工作簿合并m函数

Power Query是一个功能强大的工具,可以用于从各种数据源获取、转换和合并数据。

如果你想使用Power Query合并多个工作簿,你可以使用"合并查询"功能。

以下是一个基本的步骤指南,描述如何使用Power Query合并多个工作簿:打开Power Query编辑器:在Excel中,转到“数据”选项卡,然后选择“获取数据”或“从文件”。

选择“从工作簿”。

选择工作簿:在文件浏览器中,浏览到包含你想要合并的工作簿的位置。

选择你想要合并的工作簿。

选择工作表:对于你选中的每个工作簿,Excel会列出其中所有的工作表。

选择你想要合并的工作表。

默认情况下,所有选中的工作簿和工作表都会被合并。

合并查询:在Power Query编辑器中,你可以看到一个或多个查询,每个查询对应一个你选择的工作簿和工作表。

你可以点击每个查询旁边的“合并查询”按钮(它看起来像一个左右箭头的图标)。

选择要合并的列:当你点击“合并查询”按钮时,Power Query会提示你选择要合并的列。

对于每个查询,选择你想要合并的列。

这些列应该具有相同的名称和数据类型。

调整匹配条件:Power Query会尝试基于你选择的列匹配行。

你可以根据需要调整匹配条件。

应用更改:一旦你满意你的合并设置,点击“确定”或“应用”按钮。

完成:Power Query将合并的数据加载回Excel,你可以在Excel中进行进一步的分析或处理。

请注意,具体的步骤可能会根据你的具体需求和数据结构有所不同。

如果你遇到任何问题或需要进一步的帮助,请提供更多的详细信息,我会尽量帮助你。

7.PowerQuery-实现多个工作簿数据汇总

7.PowerQuery-实现多个工作簿数据汇总

7.PowerQuery-实现多个工作簿数据汇总
不同工作簿汇总数据和同个工作簿汇总数据的原理一样,只是原始数据位置不一样。

在企业里面的数据库导出的数据,大部分都是分开放在不同工作簿里面分开存储,也方便管理。

在桌面下有个汇总EXCEL数据\数据源文件夹,里面有多个EXCEL 工作簿文件,并且有个别文件里又有多个工作表。

首先回到汇总EXCEL数据文件夹目录下,新建一个名为汇总数据的EXCEL文件与数据源并列关系。

打开汇总数据EXCEL文件,在POWER QUERY选项下的从文件--从文件夹--并浏览找到桌面上的数据源文件夹。

单击确定--在弹出的对话框中--选择编辑。

在查询编辑器中,选择并两列,在开始选项--删除列--删除其它列。

并在添加列--添加自定义列--输入新列名提取数据--自定义列公式--Excel.Workbook([Content],true)。

选中提取数据列--在开始选项--删除列--删除其它列
单击提取数据列--右上角--从弹出的对话框中--选择--扩展--并将使用原始列名作为前缀的勾取消--确定。

选择Data列--开始--删除列--删除其它列。

再选择Data列--单击右上角按钮--扩展列--确定。

然后在开始--关闭并上载--关闭并上载至表--上载数据到新工作表。

最后大功告成。

且能实现了动态更新效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

去年一分一档,今年一分一档。

换算快速统计两家指标。

财务付款统计表与成本合同台账匹配合同编号let fx=(s)=>let源 = Web.BrowserContents("https:///search/"&s&".html"),信息= List.Transform(List.Select(Text.Split(源,"href="""),eachText.Contains(_,"torrent")),(x)=>"https://"&Text.Split(x,""" target"){0}),a=List.Transform(信息,Web.BrowserContents),b=List.Transform(a,(r)=>Text.Split(List.Select(Text.Split(r,"href="""),eachText.Contains(_,"thunder")){0},""">"){0})inbinfx文件夹源= Table.AddColumn( Folder.Files("x"), "添加列", each Excel.Workbook([Content]))直接两个文件源。

= bine({Excel.Workbook(File.Contents("C:\Users\Administrator\Desktop\a1.xls"), null, true){[Name="第2页"]}[Data],Excel.Workbook(File.Contents("C:\Users\Administrator\Desktop\a2.xls"), null,true){[Name="第2页"]}[Data]})清单去空白行。

= Table.TransformColumns(源,{"表2.项目特征描述",eachbine(List.Select(Text.Split(_,"#(lf)"),(x)=>Text.Clean(x)<>""),"#(lf)")})A1-1…自定义序列。

= Table.TransformColumns(Table.AddIndexColumn(源, "序号", 1, 1),{"序号",each Number.ToText(_,"A1-0")})连接极简方法。

= Table.NestedJoin(源,{"品名"},表2,{"品名"},"表2",JoinKind.LeftOuter),再展开= Table.AddColumn(源, "自定义", each 表2{List.PositionOf(表2[品名],[品名])}[数量])= Table.AddColumn(更改的类型, "规范名称",each Table.SelectRows(清单规范,(a)=> Text.Contains([项目编码],a[项目编码])))Table合并列。

= Table.FromRecords(Table.TransformRows(源表, each [年份=[年份],合同号=[合同号],合同名称=[合同名称],合同产值=[#"①合同产值"],签证汇总金额=[签证汇总金额],变更金额汇总=[变更金额汇总],签证占比=[签证占比],变更占比=[变更占比],签证分级=Text.From([签证10万上])&"-"&Text.From([签证5至10万])&"-"&Text.From([签证5万下]),签证总份数=[签证总份数],变更分级=Text.From([变更10万上])&"-"&Text.From([变更5至10万])&"-"&Text.From([变更5万下]),变更总份数=[变更总份数]] ))提取“OA”字符后8位。

Text.Middle([#"流程#(lf)状态"],Text.PositionOf([#"流程#(lf)状态"],"a")+1,8) //区分大小写提取分隔符之间的文本。

Text.BetweenDelimiters([合同号], "[", "]")判断公司名中是否包含关键词。

Text.Contains([公司名],"银行")Text.Contains([公司名],[关键词])保留包含“清单”或“结”的行。

Table.SelectRows(删除的列, each Text.Contains([合同名称], "清单") or Text.Contains([合同名称], "结"))提取数字。

添加自定义列”对话框,首先将默认的列名“Custom”修改为“纯文本”,接下来在下面的“自定义列公式”窗格输入“= Text.Trim(Text.Remove([DATA],{"0".."9"})," ")”,检查无误之后单击“确定”按钮,很快就可以在新添加的自定义列显示从“DATA”列提取出来的纯文本内容,按照同样的方法继续添加“纯数值”、“不重复数值”两个自定义列,公式分别为“=Text.Remove(Text.Trim(Text.Remove([DATA],{"A".."z"}),"")," ")”和“=bine(List.Distinct(Text.ToList([纯数值])))”,请注意后一个公式的“纯数值”必须与上一个自定义列的名称保持一致,否则会提示“Error”Text.Remove中使用的第二个参数{"A".."z"}) ,移除所有大小写英文字母。

Text.Remove([原始信息],{"一".."龥"}),移除中文。

Text.Remove([原始信息],{"0".."9"}),移除数字。

Text.Remove([原始信息],{" ".."~"}),移除英文字符以上:Text.Remove([自定义],{" ".."~","0".."9","A".."z"})Text.Remove([自定义],Text.ToList(Text.Remove([自定义],{"一".."龥"}))),两层Remove保留纯粹汉字Text.Select([自定义],{"一".."龥"})。

Text.Select是Power BI Desktop12月版本更新中新增的函数,目前Excel中还没有,不过大概应该在一个月之内会更新出来。

用法与Text.Remove类似,但功能相反,区别就在于——你不要的我都要。

remove是删除第二参数里包含的字符,而select是仅保留第二参数里包含的字符。

2014.04.06转为日期。

= Table.TransformColumnTypes(筛选的行,{{"指令单日期", type date}, {"自定义行", type date}})(未成功)去掉动态成本3级合同分解。

PQ//开始//分组依据//按二级科目分组、操作/所有行,即: = Table.Group(源, {"二级科目"}, {{"计数", each _, type table}}),然后再次按二级科目分组。

核对两列数据差集信息(对比差异)。

(朱仕平教程2季33课,因少信息为空,左-右、右-左)let源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],拆分1 = Table.AddColumn(源, "第一列", each Text.Split([数据1],",")),拆分2 = Table.AddColumn(拆分1, "第二列", each Text.Split([数据2],",")),差异 = Table.AddColumn(拆分2, "差异列", each bine(List.Difference([第二列],[第一列]),", ")) in差异利用js里面的正则表达式进行字符处理。

&合并。

查询1&查询2;list&list2,代替bine;bine深化。

= = Excel.CurrentWorkbook(){[Name="表1"]}[Content]{[负责人="吕静"]}[周一]帮助。

=#shared源。

透视表、PQ均可用“连接”为源;SQL可以用PQ为源?Power Query/从其他源/从ODBC ,PQ中可以在源编辑处修改SQL语句。

拆分列并展开。

= Table.ExpandListColumn(Table.AddColumn(源, "自定义", each Text.ToList([内容])),"自定义")= Table.ExpandListColumn(Table.AddColumn(源, "拆分", each Text.ToList([签证内容简述])), "拆分")筛选合同号不为空。

相关文档
最新文档