Power Query - M Language: сумма с Group By для нескольких столбцов - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу написать DataTransform для импортированного CSV-файла, который выполняет следующее:

  • GroupBy: State
  • Действие: Суммирует все столбцы

Входные данные выглядят следующим образом: enter image description here

Выходные данные, которые я ищу, показывают строку для каждого штата, столбец для каждой даты и сумму для этой даты. , Просто используя Table.Group и List.Sum, я могу получить это для определенных c дат:

= Table.Group(#"Change Dates to Num", {"Province_State"}, {{"4/19/20", each List.Sum([#"4/19/20"]), type number}, {"4/20/20", each List.Sum([#"4/20/20"]), type number}})

Я не знаю, сколько дат на входе, хотя я Я ищу это, чтобы сделать это для N столбцов:

= Table.Group(#"Change Dates to Num", {"Province_State"}, List.Transform(List.RemoveFirstN(Table.ColumnNames(#"Promoted Headers"),4), (DateList) => {DateList,each List.Sum(Table.Column(#"Change Dates to Num",DateList)), type number}))

Выше приведено правильное количество столбцов и строк, но List.Sum неверен.

Спасибо за помощь .

1 Ответ

1 голос
/ 22 апреля 2020

щелкните, чтобы выбрать округ и County_Region , затем щелкните правой кнопкой мыши Удалить столбцы ...

, которые просто оставляют Province_state и все столбцы даты

нажмите кнопку выбора Province_state и затем щелкните правой кнопкой мыши Unpivot других столбцов

теперь у вас есть только три столбца, Province_state , Атрибут и Значение

щелкните, выберите оба Province_state и Атрибут , затем щелкните правой кнопкой мыши Группировать по ...

Оставьте значение [ x] Basi c

Для работы используйте Сумма и для использования в столбцах Значение

Нажмите ОК

Нажмите Выбрать Атрибут затем Home ... Pivot Column ..

для Values_Column выберите имя нового столбца, который вы создали, например SUM

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Removed Columns" = Table.RemoveColumns(Source,{"County", "Country_Regio"}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"Province_State"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"Province_State", "Attribute"}, {{"Sum", each List.Sum([Value]), type number}}),
#"Pivoted Column" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[Attribute]), "Attribute", "Sum", List.Sum)
in #"Pivoted Column"
...