Power 查询中基于过去 3 个月的计算列

Calculated columns bases on the past 3 months in Power query

第一次尝试在电源查询中使用 M...我有这个 table

我需要为每行创建两列(CD_Loja x CD_Produto 的组合)returns 我将该组合的 QT_VENDA 的总和除以# 过去 3 个月的天数。另一列几乎相同,但总和为 VL_VENDA_LIQ。

即:对于第一行,我想总结过去 3 个月中匹配 CD_PRODUTO =1001930 AND CD_LOJA = 151 的所有 QT_VENDA(DATE 列每天都有数据)并将其除以这 3 个月的天数。

有办法吗?我该怎么做?

提前致谢。

您可以尝试如下所示的测量-

your_expected_value = 

var current_row_data = MIN(your_table_name[DATA]) 
--I Guess the column name should be Date instead
var current_row_data_minus_90_day = MIN(your_table_name[DATA]) - 90 
var current_row_cd_produto = MIN(your_table_name[CD_PRODUTO])
var current_row_cd_loja = MIN(your_table_name[CD_LOJA])

RETURN
CALCULATE(
    SUM(your_table_name[QT_VENDA]),
    FILTER(
        ALL(your_table_name),
        your_table_name[DATA] >= current_row_data_minus_90_day 
        && your_table_name[DATA] <= current_row_data
        && your_table_name[CD_PRODUTO] = current_row_cd_produto
        && your_table_name[CD_LOJA] = current_row_cd_loja
    )
)/90

--Here 90 used for static 3 month consideration

在 powerquery 中,M,类似这样的东西

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.Buffer(Table.TransformColumnTypes(Source,{{"DATA", type date}, {"CD_PRODUCTO", type text}, {"CD_LOIA", type text}, {"QT_VENDA", Int64.Type}, {"VL_VENDA_LIQ", Int64.Type}})),
#"Added Custom" = Table.AddColumn(#"Changed Type" ,"QT_VENDA_90",(i)=>List.Average(Table.SelectRows(#"Changed Type" , each [CD_PRODUCTO]=i[CD_PRODUCTO] and [CD_LOIA]=i[CD_LOIA] and [DATA] <= i[DATA] and [DATA] >= Date.AddDays(i[DATA] ,-90)) [QT_VENDA]), type number),
#"Added Custom2" = Table.AddColumn(#"Added Custom" ,"VL_VENDA_LIQ_90",(i)=>List.Average(Table.SelectRows(#"Changed Type" , each [CD_PRODUCTO]=i[CD_PRODUCTO] and [CD_LOIA]=i[CD_LOIA] and [DATA] <= i[DATA] and [DATA] >= Date.AddDays(i[DATA] ,-90)) [VL_VENDA_LIQ]), type number)
in #"Added Custom2"