Как отфильтровать строки, чтобы включить только первое число месяцев в группе - PullRequest
0 голосов
/ 06 декабря 2018

Мой вопрос заключается в том, есть ли способ получить первую / самую раннюю дату для каждой группы в таблице, а затем отфильтровать таблицу, чтобы включить только строки в пределах первого x числа месяцев от этой первой даты для каждой группы.Наверное, проще всего спросить с примером.Допустим, у меня есть следующая таблица, и я хочу сохранить данные за первые 6 месяцев для каждой группы:

enter image description here

Полученная таблицабудет выглядеть так:

[2]: https://i.stack.imgur.com/4HBtc.png

Есть ли способ сделать это с DAX или M?

1 Ответ

0 голосов
/ 06 декабря 2018

Кажется, что это работает:

let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Group", type text}, {"Date", type date}, {"Quantity", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Group"}, {{"AllData", each _, type table}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each let DateThisRow = [AllData][Date] in Table.SelectRows([AllData],each [Date] <= Date.AddMonths(List.Min(DateThisRow),6))),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Other Columns", "Custom", {"Group", "Date", "Quantity"}, {"Group", "Date", "Quantity"})
in
#"Expanded Custom"

Начиная с исходной настройки таблицы, названной в Excel как Table1:

enter image description here

... это дает мне конечный результат:

enter image description here

Номер 6 рядом с концом строки # "Added Custom" вКод М выше - количество месяцев.

...