首页 > 解决方案 > Excel 电源查询。按模板列表运行多个查询以连接不同文件中的表

问题描述

我有一个问题:我在 dbf 中有 60 多个表,列:年份、产品、价值。表格有不同年份的数据。

例子。

Table 1
Year  product value
1993     Apple  98.45
1994   Mushrooms 67.54

Table 2
Year  product value
1992  Apple  95.45
2021  Melon 112.0

我需要一个数据透视表(以合并)一张表中的所有表。

我的方式:

Let
DatesList={1992, 1993,1994,1995,2021},
Tbl=Odbc.Query("dsn=my_custom_dsn", "select * from c:\data\1993.dbf"),
Result=List.Accumulate (DatesList, Tbl, (state, current) =>Table.Join(Tbl, "product", Query.odbc("dsn=my_custom_dsn", "select * from c:\data\" +Text.From(current) +".dbf", "product")

in
 Result

没关系,但结果仅适用于最后一个日期。如何在日期之间保存表格

请帮忙

标签: excelodbcpowerquery

解决方案


我认为你过于复杂了。

尝试这个:

let
      DatesList = Table.FromList({1992,1993,1994,1995,2021}, Splitter.SplitByNothing(), {"Year"}, null, ExtraValues.Error)
    , #"Added Custom" = Table.AddColumn(DatesList, "Data", each Odbc.Query("dsn=my_custom_dsn", "select * from c:\data\" & Number.ToText([Year]) & ".dbf"))
    , #"Expanded Data" = Table.ExpandTableColumn(#"Added Custom", "Data", {"product", "table"}, {"product", "table"})
in
    #"Expanded Data"

记住在你的问题中你拼错了Odbc.Query


推荐阅读