PowerBI 中的实际与计划

Actual Vs Plan in PowerBI

我在 PowerBi 中遇到问题,我想在其中获得实际与计划的结果。我有 3 tables、图书销售 Table、计划 table 和书名 table。我想要 Desired Output table.

中的结果

Book Sales

Titles

Plan

Desired Output

这可以通过几种不同的方式完成,但我建议在 SQL 个人中进行。这意味着您可以: Select 从您要显示的所有 table 到相同的 table。让我们称之为产品。 然后加入你想要的值。

这样,就没有需要时间的 dax 计算,而只是在刷新数据集本身时需要时间的事情。

您可以在 Power Query M 代码中执行此操作

  • 加入 Sales 和 Titles tables 以提取每种图书类型的出版单位
  • 为每个销售数字添加一个代表每个月开始的列
  • 如果一个月内有多个 sales/unit
  • ,则按 BOM 和单位分组并用 Sum 聚合
  • 根据单位和日期
  • 将最后一个 table 与计划 table 合并

M码

let

//Join the Sales and Titles to get the Publishing units
    Source = Table.NestedJoin(#"Book Sales", {"Book ID"}, Titles, {"Book Id"}, "Titles", JoinKind.LeftOuter),
    #"Expanded Titles" = Table.ExpandTableColumn(Source, "Titles", {"Publishing Unit"}, {"Publishing Unit"}),

//add start of month column to merge with Plan
    bom  = Table.AddColumn(#"Expanded Titles", "BOM", each Date.StartOfMonth([Invoice Date]),type date),

//Group by unit and bom columns in case you happen to have multiple sales in the same month
    #"Grouped Rows" = Table.Group(bom, {"Publishing Unit", "BOM"}, {{"Sales amount", each List.Sum([Sales amount]), type number}}),

//Join with Plan using bom and date as the key
    salesVplan = Table.NestedJoin(Plan,{"Business Unit","Date"}, #"Grouped Rows", {"Publishing Unit","BOM"},"joined",JoinKind.FullOuter),
    #"Expanded joined" = Table.ExpandTableColumn(salesVplan, "joined", {"Sales amount"}, {"Sales amount"})
in
    #"Expanded joined"