[已解决] 如何合并制定目录下所有xlsx文件中指定的工作表

  [复制链接]
查看92115 | 回复109 | 2020-8-5 09:12:15 | 显示全部楼层 |阅读模式
刚接触PQ,不知道怎么弄,请大神指点下(公司里传不了附件):
1.目录比如 C:\Data
2. 文件比如 1.txt 1.xlsx 2.txt2.xlsx
3. 每个xlsx文件含有工作表
表1:summary
表2:review
表3:part list
表4:check list

现在想:
1. 合并所有xlsx文件中的part list工作表
2. C:\Data目录下新增xlsx文件时可以用PQ刷新来获取part list中的数据

请大神给下解决办法,谢谢!只要M函数就可以,操作我会!
回复

使用道具 举报

冰雪紫旋 | 2020-8-5 09:19:15 | 显示全部楼层
试试这个,新建一个工作簿,新建空白查询,高级编辑器,清空后,粘贴以下M语句。
这是一个自定义函数,可以调用。
  1. let

  2.   fx=(path,sheetname)=> Table.Combine(

  3.               Table.ToList(

  4.                  Table.SelectRows(Folder.Files(path), each [Extension]=".xlsx")[[Content],[Name]],

  5.                  each Table.AddColumn( Excel.Workbook(_{0},true){[Name=sheetname]}[Data],

  6.                          "来源",

  7.                           (x)=>Text.Split(_{1},".xlsx"){0} )

  8.                  ) )



  9.   

  10. in

  11.   fx
复制代码
运行后,界面右侧应该是有一个步骤叫fx,添加一步,公式编辑栏输入=fx(文件夹路径,需要合并的工作表表名),比如,=fx("C:\Data","part list")
测试一下,看什么情况。凭空编的。
回复

使用道具 举报

玉米卡 | 2020-8-5 09:26:16 | 显示全部楼层
非常感谢,试了下可以管用。

M函数真看的晕,谢谢大神了。
回复

使用道具 举报

KLX | 2020-8-5 09:30:16 | 显示全部楼层
非常感谢,试了下可以管用。

M函数真看的晕,谢谢大神了。


可以就好。。。有一点,建议合并汇总的那个工作簿不要跟源文件放在同一个文件夹里,要不然M语句里Table.SelectRows那里边还得加一个条件each [Name]"汇总表.xlsx" 类似这样的。源文件一个文件夹,汇总表放在外边方便找到的地方。供参考!
回复

使用道具 举报

UFO | 2021-5-27 17:52:32 来自手机 | 显示全部楼层
发发呆,回回帖,工作结束~
回复

使用道具 举报

qwerqwer | 2021-6-11 18:31:54 | 显示全部楼层
打酱油的人拉,回复下赚取积分
回复

使用道具 举报

穷疯了 | 2021-6-18 08:51:09 | 显示全部楼层
LZ帖子不给力,勉强给回复下吧
回复

使用道具 举报

gs108 | 2021-8-17 17:01:02 | 显示全部楼层
太棒了,感谢唐楼主精彩的分享
回复

使用道具 举报

newman | 2021-9-21 12:48:30 | 显示全部楼层
这么强,支持楼主,佩服
回复

使用道具 举报

燕燕子 | 2021-10-24 14:06:07 | 显示全部楼层
我也来支持一下,很喜欢这里老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则