| Цитата |
|---|
| написал: Например, на листе Восток есть строка &qуот;Прочие расходы&qуот; как группировка всех расходов и внутри нее еще строка &qуот;прочие расходы&qуот;. Программа объединяет их в одно, но так некорректно. |
Разделение по листам можете реализовать например способом ниже (названия листов пойдут в значения столбца "Filials"). Я просто предпочитаю через Combine, но если Вам Expand ближе, то можете через него, как и было в Вашем коде. Строку с датами удалил, потому что как я понимаю она не нужна.
В любом случае в коде реализовано все, что мне оказалось понятно из условия задачи.
| Код |
|---|
let
Source = Excel.Workbook(File.Contents("C:\Users\sova.igor\Downloads\Пример.xlsx"), true, null),
AddFilial = Table.CombineColumns(Source, Table.ColumnNames(Source), (c)=> Table.AddColumn(c{1}, "Filial", each c{0}, type text), "Data")[Data],
SkipDates = List.Transform(AddFilial, (e)=> Table.Skip(e, 1)),
Combine = Table.Combine(SkipDates),
cols = List.RemoveItems(Table.ColumnNames(Combine), {"Column2", "Filial"}),
RemoveErrors = Table.TransformColumns(
Combine, //первый аргумент функции TransformColumns, наша таблица
List.Transform(
cols, //первый аргумент функции List.Transform, названия заголовков таблицы
(x) => { x, (y) => Replacer.ReplaceValue(y, "#DIV/0", null), type number} //второй аргумент функции List.Transform, x - это название заголовка,
)
),
Group = Table.Group(RemoveErrors, {"Column2", "Filial"}, List.Transform(cols, (e)=> {e, each List.Sum(Table.Column(_, e)), type number})),
RenameKey = Table.RenameColumns(Group ,{{"Column2", "Measure"}})
in
RenameKey |