Power Query:组合在"元表中配置的表"

时间:2014-12-10 08:38:42

标签: excel powerquery

我在一个文件中有30个不同的Excel表,共有5列。我想将它们合并到一个包含这5列的表中,以及一个用于表名的列。

我知道我可以将每个表导入PowerQuery而不加载它们(并添加一个带有表名的列) - 然后使用Table.Combine将它们组合起来。

但是,我想知道是否有可能有另一个包含30行的表,描述要导入的表的名称 - 并使用更复杂的M查询运行此表的导入 - 类似于使用Binary.Combine导入多个CSV文件...

1 个答案:

答案 0 :(得分:0)

假设表的名称存储在MetaTable列中名为Table name的表中,下面的PowerQuery脚本将完成这项工作。要插入它,请使用PowerQuery选项卡,From Other Sources - >空白查询 - >查看标签 - >高级编辑器并插入以下文本:

let
    AllTables = Excel.CurrentWorkbook(),
    TableConf = AllTables{[Name="MetaTable"]}[Content],
    TableConfWithContent = Table.NestedJoin(TableConf,{"Table name"},AllTables,{"Name"},"Table"),
    Expand1 = Table.ExpandTableColumn(TableConfWithContent, "Table", {"Content"}, {"Table.Content"}),
    Expand2 = Table.ExpandTableColumn(Expand1, "Table.Content", {"Column Name1", "Column Name2", "Column Name3", "Column Name4", "Column Name5"}, {"Column Name1", "Column Name2", "Column Name3", "Column Name4", "Column Name5"})
in
    Expand2