Power Query 合并多个表格与数据清洗提示词(文件夹批量合并、追加与合并查询、逆透视、一键刷新)

每月要把几十个格式相同的 Excel 或 CSV 合并成一张表、需要把两张表按编号关联、或者要反复做同样的清洗步骤时用:描述文件和需求,AI 给出 Power Query 的操作步骤和对应的 M 代码,做成新增文件后点「全部刷新」就能更新的流程。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
你是一名熟练使用 Power Query 的数据分析师。请帮我设计一个可重复使用的数据整理流程。

- 软件:[软件](例:Excel 365、Power BI Desktop)
- 数据来源:[数据来源](例:一个文件夹里每月一个 Excel,每个文件有一个名为「明细」的工作表)
- 每个文件的结构(列名与几行样例):
  [样例数据]
- 需要做的处理:[处理需求](例:合并所有月份、去掉合计行、把各月份列转成行、关联产品表补充类别)
- 最终输出:[最终输出](例:一张明细表,供数据透视表使用)

请输出:
1. 整体步骤:从「获取数据」到「关闭并上载」,每一步对应 Power Query 编辑器中的操作(菜单位置)。
2. 按需使用的关键操作:
   - 从文件夹合并:自动生成的示例文件与转换函数是什么、修改示例文件的步骤会影响所有文件;用文件名提取月份等信息作为新列;
   - 追加查询(上下拼接)与合并查询(类似按键关联),合并时连接种类的选择(左外部、内部等)及其对结果行数的影响;
   - 逆透视其他列:把「一月、二月……」多列转为「月份、金额」两列;
   - 清洗:提升标题、删除空行和合计行、修整与清除空格、拆分列、替换值、更改类型(注意更改类型步骤的位置与区域设置对日期的影响)。
3. M 代码:给出完整的查询代码,每个步骤用中文注释说明作用,方便我在高级编辑器中粘贴和修改。
4. 稳健性:文件中列的顺序变化、多出一列、某个文件为空时,流程会不会出错,如何写得更稳(例如按列名而不是位置引用,删除依赖固定列名的自动生成步骤)。
5. 刷新:新增文件后如何更新;文件夹路径变更时修改哪里(建议用参数)。
6. 常见报错及解决办法(例如找不到列、数据格式错误、权限或隐私级别提示)。

高亮处换成你自己的内容:[软件]、[数据来源]、[样例数据]、[处理需求]、[最终输出]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[样例数据] 贴一个文件的表头和几行数据,并说明各文件之间是否完全一致(列名、列顺序、工作表名)。不一致的地方越早说明越好,这是批量合并最常出错的地方。

常见坑:

  • 自动生成的「更改类型」步骤写死了列名,某个月的文件多了或少了一列,刷新就报错。删除不必要的自动步骤,或按需要的列名显式选择。
  • 合并查询时,右表的关联键有重复值,结果行数会变多,金额汇总被放大。合并前先确认关联键唯一。
  • 日期按文本导入后再更改类型,系统区域设置不同可能把月和日解析反了。必要时使用「使用区域设置」更改类型。

追问技巧:追问「把文件夹路径做成参数,同事拿到这个文件后只需改一个地方就能用」,或「刷新太慢了,怎么优化这个查询」。

示例输出

示例,仅供参考(从文件夹合并后,逆透视月份列,节选)
let
    // 1. 读取文件夹中所有 xlsx 文件
    源 = Folder.Files(文件夹路径),
    仅Excel = Table.SelectRows(源, each Text.EndsWith([Name], ".xlsx") and not Text.StartsWith([Name], "~$")),
    // 2. 读取每个文件中名为「明细」的工作表,并提升标题
    取表 = Table.AddColumn(仅Excel, "数据", each
        Table.PromoteHeaders(Excel.Workbook([Content]){[Item = "明细", Kind = "Sheet"]}[Data])),
    // 3. 展开时按列名对齐,各文件列顺序不同也不影响
    展开 = Table.Combine(取表[数据]),
    // 4. 删除合计行与空行
    去合计 = Table.SelectRows(展开, each [产品] <> null and [产品] <> "合计"),
    // 5. 逆透视:除「区域」「产品」外的列转为「月份、金额」
    逆透视 = Table.UnpivotOtherColumns(去合计, {"区域", "产品"}, "月份", "金额"),
    类型 = Table.TransformColumnTypes(逆透视, {{"金额", type number}})
in
    类型

说明:Excel.Workbook 不带第二个参数时不会自动识别标题,所以这里用 Table.PromoteHeaders 显式把第一行提升为标题;如果你的表头上方还有标题行或空行,需要先删除这些行再提升,以 Power Query 预览结果为准。

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~