SITUATION 在处理excel多表合并时,使用PQ进行查询。

通过Power Query ,您可以导入或连接到外部数据,然后调整该数据,例如,删除列、更改数据类型或合并表格,以满足需求。 然后,您可以将查询加载到 Excel 以创建图表和报表。 可以定期刷新数据,使其更新。

  1. 连接    与云中、服务上或本地的数据建立连接

  2. 转换    调整数据以满足需求,而原始源保持不变

  3. 合并    集成来自多个源的数据,获取数据的唯一视图

  4. 加载   完成查询,并加载到工作表或数据模型中并定期刷新。

在合并多表时,常见问题有
因为各表的sheetName不一致,造成合并失败(PQ默认要求合并表的sheetName保持一致),该问题可以通过修改代码解决,解决步骤如下:
1. 按照向导,完成正常合并步骤(此时已发生合并失败)
2. 点击表格区的error,查看错误详情,一般如下所示:
···
在“转换文件”查询中出错。Expression.Error: 该键与表中的任何行均不匹配。
详细信息:
    Key=
        Item=【生意参谋】交易总览-自己-2020-09-01-2020-0
        Kind=Sheet
    Table=[Table]
···
在PQ界面右侧“应用的步骤”,从上往下逐条检查操作记录,发现第一次出现error是在“调用自定义函数1”(再往上显示都是“record”,即成功)。
选中“调用自定义函数1”的情况下,点击“高级编辑器”,

<待补充>

PQ左边界面的查询,由两个文件夹状的标记组成:

下边一个文件夹名称是其他查询[2],也就是我们最终的查询结果;上边一个(一级文件夹)名称是“从 新建文件夹 转换文件[3]”,就是自定义的函数了。

重要步骤:修改“转换示例文件”的代码,把限制条件删掉就可以了,即删掉Item变量,尤其注意要删掉逗号。改完后,点击确定就可以了。
如下图所示
···
let
    源 = Excel.Workbook(参数1, null, true),
    #"【生意参谋】交易总览-自己-2020-09-01-2020-0_Sheet" = 源{[Item="【生意参谋】交易总览-自己-2020-09-01-2020-0",Kind="Sheet"]}[Data],
    提升的标题 = Table.PromoteHeaders(#"【生意参谋】交易总览-自己-2020-09-01-2020-0_Sheet", [PromoteAllScalars=true])
in
    提升的标题
···
修改代码后,回到结果集,后几张表会自动更新并追加到表1下面。