Коллеги, подскажите, пожалуйста, возможно ли преобразовать таблицу как в файле примера или на скриншоте.
По одной колонке суммы получилось сделать через группировку, отмену свертывания и колонку сведения (не знаю, насколько это оптимальный результат), а вот по 2-м колонкам никак. Может есть у кого-то идеи или только двумя таблицами выводить для каждой суммы?
let
from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
del = Table.RemoveColumns(from,{"Дата"}),
unpiv = Table.UnpivotOtherColumns(del, {"Сумма", "Сумма USD"}, "Атрибут", "Значение"),
group = Table.Group(unpiv, "Значение", {"tmp", each [t =[Атрибут]{0}, s =List.Sum([Сумма]), u = List.Sum([Сумма USD])]}),
sort = Table.Sort(group,{"Значение", Order.Ascending}),
fn = (r as record)=> //функция от аргумента r
if r[t]="Счет Дт" //если поле t в записи r равно "Счет Дт"
then [СуммаДТ =r[s], СуммаUSDДт = r[u]] //вернуть запись с полями СуммаДТ и СуммаUSDДт
else [СуммаКТ = r[s], СуммаUSDКт = r[u]], //а противном случае вернуть запись с полями СуммаКТ и СуммаUSDКт
trf = Table.TransformColumns(sort,{"tmp", each fn(_)}), // применить функцию fn к каждой записи в столбце tmp
to = Table.ExpandRecordColumn(trf, "tmp", {"СуммаДТ", "СуммаКТ", "СуммаUSDДт", "СуммаUSDКт"})
in
to
а так наверное проще и чутка шустрее:
Скрытый текст
Код
let
from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
debfrom = from[[Счет Дт],[Сумма],[Сумма USD]],
debto = Table.RenameColumns(debfrom,{{"Счет Дт", "Значение"}, {"Сумма", "Сумма Дт"}, {"Сумма USD", "Сумма USD Дт"}}),
credfrom = from[[Счет Кт],[Сумма],[Сумма USD]],
credto = Table.RenameColumns(credfrom,{{"Счет Кт", "Значение"}, {"Сумма", "Сумма Кт"}, {"Сумма USD", "Сумма USD Кт"}}),
comb = Table.Combine({debto,credto}),
group = Table.Group(comb, {"Значение"}, {{"Сумма Дт", each List.Sum([Сумма Дт])},
{"Сумма Кт", each List.Sum([Сумма Кт])},
{"Сумма USD Дт", each List.Sum([Сумма USD Дт])},
{"Сумма USD Кт", each List.Sum([Сумма USD Кт])}}),
to = Table.Sort(group,{{"Значение", Order.Ascending}})
in
to