【问题标题】:Power Query M - Custom Column for Rolling 28 Days SalesPower Query M - 滚动 28 天销售的自定义列
【发布时间】:2019-03-18 20:32:05
【问题描述】:

我正在寻找一些 Power Query 帮助。我有一年内 4 万种产品的大量销售数据。对于每天的每种产品,我需要添加一个 28 天的销售列。

我基本上想做一个类似下面的 sumifs 但在 M 中。

=SUMIFS([SALES],[Product Code],[This Product Code],[Date],=[This Date]-28))

【问题讨论】:

    标签: powerquery m


    【解决方案1】:

    然后试试这个,它应该可以工作,但可能会在爬行时这样做

     let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
     #"Changed Type" = Table.TransformColumnTypes(Source,{{"Sales", Int64.Type}, {"Product Code", type text}, {"Date", type date}}),
     TotalAmountAdded = Table.AddColumn(Source, "Total Amount", (i) => List.Sum(Table.SelectRows(Source, each ([Product Code] = i[Product Code]  and [Date]<=i[Date] and [Date]>=Date.AddDays(i[Date],-28)))[Sales]), type number    )
     in TotalAmountAdded
    

    【讨论】:

      【解决方案2】:

      添加一个带有日期逻辑的自定义列(基于您的 sumif 公式示例),过滤新列以获取相关行,然后按产品代码分组并对销售额求和。假设源数据在 Table1 中,包含三列(销售、产品代码、日期),代码将是

      let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
      #"Changed Type" = Table.TransformColumnTypes(Source,{{"Sales", Int64.Type}, {"Product Code", type text}, {"Date", type date}}),
      #"Added Custom" = Table.AddColumn(#"Changed Type", "AddMe", each if [Date]<=DateTime.Date(DateTime.LocalNow()) and [Date]>=Date.AddDays(DateTime.Date(DateTime.LocalNow()),-28) then 1 else 0),
      #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([AddMe] = 1)),
      #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Product Code"}, {{"ProductSales", each List.Sum([Sales]), type number}})
      in  #"Grouped Rows"
      

      【讨论】:

      • 这对于获取当天的滚动销售非常有效,但我需要相对于数据中的每一行日期添加它。我在 PowerPivot 中使用过 DAX 计算,但如果我能在 PQ 阶段执行它会好得多。
      • 这是在 PowerPivot/PowerBI 中工作的 DAX - CALCULATE(SUM('DailyDL'[COGS £]),FILTER('DailyDL','DailyDL'[Product Code] = EARLIER('DailyDL '[产品代码])),FILTER('DailyDL','DailyDL'[日期] EARLIER('DailyDL '[日期])-28
      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2021-12-28
      • 2014-12-09
      • 1970-01-01
      相关资源
      最近更新 更多