如何使用 table thru power 查询的一部分?

How can I work with a slice of a table thru power query?

我正在尝试向我的 table 添加一个新列(“% variation”),其中我试图将下面 table 中的每月数字除以 12 月 (12)对于给定的一年。这个想法是显示每月数字与最终数字(12 月 = 12)的变化。例如,我希望百分比变化的第一行列具有 0.9934(=10.63/10.7 即 1-2010 的 val/12-2010 的 val),第二行具有 1.0065(= 10.77/10.7) 第 12 行的值为 1 (10.7/10.7)。对于自新营销年度开始以来的第 13 行,第 13 行中的值应为 1.0222(= 9.67/9.46 即 val for 1-2011/ val for 12-2011)依此类推。

我可以在 python 中用下面的一行代码做到这一点

df_monthly_changes ['% Variation'] = df_monthly_changes.groupby('Marketing_year Index').Val.apply(lambda x: x/x.iloc[-1])

但我仍然不知道如何在 power query (power BI) 中复制它。

在Power Query的M代码中,您可以

  • 按年份分组
  • 使用自定义聚合将每个条目除以最后一个条目向每个组添加一列
    • 如果不是所有年份都有 12 个月,您可以添加一些逻辑
  • Re-expand 结果 table.

M代码

let
    Source = Excel.CurrentWorkbook(){[Name="Table30"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Marketing_year", Int64.Type}, {"Marketing_month", Int64.Type}, {"Val", type number}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Marketing_year"}, {
        {"Var", (t)=> Table.FromColumns(
            Table.ToColumns(t) & {List.Transform(t[Val], each _/t[Val]{11})},
                {"Marketing_year","Marketing_month", "Val", "Variation"}
    )}}),
    #"Expanded Var" = Table.ExpandTableColumn(#"Grouped Rows", "Var", {"Marketing_month", "Val", "Variation"}, {"Marketing_month", "Val", "Variation"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Var",{{"Marketing_month", Int64.Type}, {"Val", type number}, {"Variation", type number}})
in
    #"Changed Type1"