ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 348|回复: 4

PQ合并格式不一样工作表的问题,希望有老师能帮忙解答一下。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-8 11:14 | 显示全部楼层 |阅读模式
有很多公司的excel表,公司数量会随时增减

每个表里有很多部门,部门数量也会随时增减
现在要把所有公司的excel表里,sheet名包含"部门"字样的数据按合并样式合并起来。
这个PQ怎么处理?望有老师能解答一下。
我只会合并格式完全一样的表,对这种字段数不一致的表一点头绪都没有。

原始数据

原始数据

合并后的数据

合并后的数据

数据.zip

19.29 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2023-3-8 12:59 | 显示全部楼层
let
    源 = Folder.Files("---你的文件夹地址---"),
    筛选 = Table.SelectRows(源, each Text.Contains([Name], "公司")),
    自定义 = Table.AddColumn(筛选, "自定义", each
        [a = Excel.Workbook([Content],true),
        b = Table.SelectRows(a, each Text.Contains([Name], "部门")),
        c = Table.SelectColumns(b, {"Name", "Data"}),
        d = Table.ExpandTableColumn(c, "Data", Table.ColumnNames(Table.Combine(c[Data]))),
        e =  Table.RenameColumns(d, {"Name", "部门"})
        ][e]),
    删除列 = Table.SelectColumns(自定义,{"Name", "自定义"}),
    展开 = Table.ExpandTableColumn(删除列, "自定义", Table.ColumnNames(Table.Combine(删除列[自定义]))),
    逆透视 = Table.UnpivotOtherColumns(展开, {"Name", "部门", "项目"}, "属性", "值"),
    重命名 = Table.RenameColumns(逆透视,{{"Name", "公司"}, {"属性", "月份"},{"值", "数量"}}),
    替换 = Table.ReplaceValue(重命名,".xlsx","",Replacer.ReplaceText,{"公司"})
in
    替换

TA的精华主题

TA的得分主题

发表于 2023-3-8 13:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
asdfa sdfasdas fa
工工.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-9 10:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-3-10 00:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
let
    源 = Table.SelectRows(Folder.Contents("C:\Users\胡彬\Desktop\新建文件夹"),each not(Text.Contains([Name],"合并"))),
    自定义1 = Table.TransformColumns(源,{"Content",each Table.SelectColumns(Table.SelectRows(Excel.Workbook(_,true,true),each Text.Contains([Name],"部门")),{"Name","Data"})}),
    自定义2 = Table.RenameColumns(Table.ExpandTableColumn(Table.RenameColumns(Table.SelectColumns(自定义1,{"Content","Name"}),{"Name","公司名"}),"Content",{"Name","Data"}),{"Name","部门"}),
    自定义3 = Table.ExpandTableColumn(自定义2,"Data",List.Distinct(List.Combine(List.Transform(自定义2[Data],each Table.ColumnNames(_))))),
    自定义4 = Table.UnpivotOtherColumns(自定义3,{"公司名","部门","项目"},"月份","数量"),
    重排序的列 = Table.ReorderColumns(自定义4,{"公司名", "部门", "项目", "月份", "数量"})
in
    重排序的列
image.jpg
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 19:55 , Processed in 0.036754 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表