Power Query M - настраиваемая колонка для продаж за 28 дней - PullRequest
0 голосов
/ 14 марта 2019

Я ищу помощь Power Query.У меня есть огромный набор данных о продажах 40 тыс. Продуктов за один год.Для каждого продукта в каждый день мне нужно добавить 28-дневную колонку продаж.

В сущности, я хочу сделать суффиксы, подобные приведенным ниже, но в M.

= SUMIFS ([ПРОДАЖА], [Код товара], [Этот код товара], [Дата], <=[Эта дата], [Дата],> = [Эта дата] -28))

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Попробуйте тогда, это должно сработать, но, скорее всего, при сканировании

 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
0 голосов
/ 14 марта 2019

Добавьте пользовательский столбец с логикой даты (на основе вашей формулы sumif), отфильтруйте новый столбец, чтобы получить соответствующие строки, затем сгруппируйте по коду продукта и суммируйте продажи.Предполагая, что исходные данные находятся в Таблице 1 с тремя столбцами (Продажи, Код продукта, Дата), код будет

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...