【问题标题】:Power BI: Power Query slowly loading multiple Excel worksheetsPower BI:Power Query 缓慢加载多个 Excel 工作表
【发布时间】:2021-04-27 16:34:15
【问题描述】:

我有一个包含多个工作表的小型 (1.5 MB) Excel 文件。我需要转换每个工作表(两个重要的转换被创建为单独的函数),然后动态扩展结果(即每个工作表可以有不同数量的列,所以我需要事先提取所有不同列名的列表)。

一切正常,输出符合我的预期,但是,我注意到刷新 Power Query 时加载了超过 10 MB 的数据。完成后,“加载”窗口会重置,并且会再次加载超过 10 MB 的数据。

这是我正在使用的 M 代码。我已经测试了每个部分,看起来扩展步骤可能是最慢的。

let
    Source = Excel.Workbook(File.Contents("xxx.xlsx"), null, true),
    Split = Table.SplitColumn(Source, "Name", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Name.1", "Name.2", "Name.3"}),
    TidyUp = Table.RenameColumns(
        Table.RemoveColumns(Split,{"Item", "Kind", "Hidden", "Name.3"}), 
        {{"Name.1", "PORTFOLIO"}, {"Name.2", "DATE"}}),
    GetCurrency = Table.AddColumn(TidyUp, "CURRENCY", each GetCurrencyFromSpreadsheet([Data])),
    GetStresses = Table.AddColumn(GetCurrency, "fx", each GetStresses([Data])),
    ColNames = Table.ColumnNames(Table.Combine(GetStresses[fx])),
    Expanded = Table.ExpandTableColumn(GetStresses, "fx", ColNames),
    RemoveData = Table.RemoveColumns(Expanded,{"Data"})
in
    RemoveData

因此,处理一个小型 Excel 文件大约需要 5 分钟。由于我们预计将来会收到更多类似的文件,如果您有任何想法我可以做些什么来改进代码,我想与您核实一下?谢谢。

【问题讨论】:

    标签: powerbi powerquery


    【解决方案1】:

    我将使用 Power Query 编辑器 UI 重新构建它。这应该会导致代码更简洁,减少冗余步骤,例如使用 Table.Combine 与单个输入表。

    Table.AddColumn 步骤可能会被重建为使用合并查询组合的单独查询。像这样的基于集合的逻辑通常会优于逐行函数调用。

    【讨论】:

    • 感谢 Mike 的时间和建议,这听起来很合理。我试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2020-07-09
    • 2022-08-15
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多