Создайте другой сводный вид в Power Query - PullRequest
0 голосов
/ 18 марта 2020

У меня есть данные, структурированные в excel в следующем формате

enter image description here

Что я хочу сделать, это преобразовать их в это. Простыми словами для каждого идентификатора я хочу записать разницу в значении по сравнению с предыдущим днем, и, если в предыдущем дне нет значения, мы просто сохраняем текущее значение.

enter image description here

В качестве промежуточного шага я пытаюсь преобразовать необработанные данные в нечто подобное, но я не уверен, как это сделать go в простых сводных таблицах Excel или в преобразованиях запросов Power.

enter image description here

1 Ответ

1 голос
/ 19 марта 2020

Что-то не так с вашим образцом, потому что [v1-v2] не тот же метод, что и [v5-v4, v3-v2, v8-v7], но я предполагаю, что последние были правильными

См. если это работает для вас

Предполагает данные в 3 столбцах в диапазоне с именем Таблица1 с заголовками столбцов Даты, ID, Значение

Вы можете вставить в PowerQuery, используя ... Расширенный редактор ...

Создает столбец со значением вчера для этого идентификатора и возвращает ноль, если ничего не найдено. Затем происходит вычитание, и поворачивается

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Dates", type date}, {"ID", type text}, {"Value", Int64.Type}}),
Yesterday = Table.AddColumn(#"Changed Type" , "Yesterday", (i) => List.Sum(Table.SelectRows( #"Changed Type", each ([ID] = i[ID] and Date.AddDays([Dates],1) = i[Dates]))[Value]), type number ),
#"Replaced Value" = Table.ReplaceValue(Yesterday,null,0,Replacer.ReplaceValue,{"Yesterday"}),
#"Added Custom" = Table.AddColumn(#"Replaced Value", "Custom", each [Value]-[Yesterday]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Value", "Yesterday"}),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Removed Columns", {{"Dates", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Removed Columns", {{"Dates", type text}}, "en-US")[Dates]), "Dates", "Custom", List.Sum)
in  #"Pivoted Column"
...