Power Query动态合并查询:如何基于列表中的查询名实现动态合并
动态合并Power Query中的多个查询
方法一:手动指定查询名列表
适合明确知道要合并哪些查询的场景,直接定义查询名列表后动态引用合并:
let // 手动定义需要合并的查询名称列表 QueryNames = {"Query1", "Query2", "Query3", "Query4"}, // 将每个查询名转换为对应的表对象 QueryTables = List.Transform(QueryNames, each Expression.Evaluate(_, #sections[Section1])), // 合并所有表 DataFull = Table.Combine(QueryTables) in DataFull
方法二:自动筛选符合规则的查询
适合后续会新增同规则查询(比如QueryX格式)的场景,自动抓取所有符合条件的查询并合并,无需手动更新列表:
let // 获取当前工作簿中所有查询所在的Section(默认是Section1,按需修改) AllQueries = #sections[Section1], // 筛选出以"Query"开头的查询名称 QueryNames = List.Select(Record.FieldNames(AllQueries), each Text.StartsWith(_, "Query")), // 动态转换查询名为表对象 QueryTables = List.Transform(QueryNames, each Expression.Evaluate(_, AllQueries)), // 合并所有表 DataFull = Table.Combine(QueryTables) in DataFull
关键说明
#sections[Section1]:指向当前查询所在的Section,若你的查询在自定义Section下,替换为实际Section名称即可(可在高级编辑器顶部查看)Expression.Evaluate:将字符串形式的查询名解析为实际的查询对象,实现动态引用- 确保所有待合并的查询返回的是表结构,否则
Table.Combine会抛出错误
内容的提问来源于stack exchange,提问作者muh. nuur
相关产品推荐
相关产品推荐

