Добрый день! Подскажите, хочется в List.Distinct использовать equationCriteria в виде текстового фильтра, никак не могу разобраться как. По таблице - есть два уровня классификации в двух текстовых столбцах, надо транспонировать текстовые столбцы, при этом с определенным фильтром. пока реализовано так (фильтр по 1 классификации - значения не начинающиеся на "п", 2 - на "в": [vba]
Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"дата", type date}, {"класс1", type text}, {"класс2", type text}, {"сумма", Int64.Type}}), #"Сумма2" = Table.DuplicateColumn(#"Измененный тип", "сумма", "сумма2"), кл1 = Table.SelectRows(Сумма2, each not Text.StartsWith([класс1], "п")) [класс1], кл2 = Table.SelectRows(Сумма2, each not Text.StartsWith([класс2], "в")) [класс2], #"Класс1" = Table.Pivot(Сумма2, List.Distinct(кл1), "класс1", "сумма", List.Sum), #"Класс2" = Table.Pivot(#"Класс1", List.Distinct(кл2), "класс2", "сумма2", List.Sum) in #"Класс2"
[/vba]
Добрый день! Подскажите, хочется в List.Distinct использовать equationCriteria в виде текстового фильтра, никак не могу разобраться как. По таблице - есть два уровня классификации в двух текстовых столбцах, надо транспонировать текстовые столбцы, при этом с определенным фильтром. пока реализовано так (фильтр по 1 классификации - значения не начинающиеся на "п", 2 - на "в": [vba]
Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"дата", type date}, {"класс1", type text}, {"класс2", type text}, {"сумма", Int64.Type}}), #"Сумма2" = Table.DuplicateColumn(#"Измененный тип", "сумма", "сумма2"), кл1 = Table.SelectRows(Сумма2, each not Text.StartsWith([класс1], "п")) [класс1], кл2 = Table.SelectRows(Сумма2, each not Text.StartsWith([класс2], "в")) [класс2], #"Класс1" = Table.Pivot(Сумма2, List.Distinct(кл1), "класс1", "сумма", List.Sum), #"Класс2" = Table.Pivot(#"Класс1", List.Distinct(кл2), "класс2", "сумма2", List.Sum) in #"Класс2"
так это ж не фильтр, а критерий сравнения уникальности вариант: [vba]
Код
let f=(x,y)=>if Text.Start(x,1)<>y then x else null, from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], add = Table.AddColumn(from, "tmp", each List.RemoveNulls({f([класс1],"п"),f([класс2],"в")}))[[дата],[tmp],[сумма]], exp = Table.ExpandListColumn(add, "tmp"), lst = List.Sort(List.Distinct(List.RemoveNulls(exp[tmp])),{each Text.End(_,1),Order.Ascending}), to = Table.Pivot(exp,lst, "tmp", "сумма", List.Sum) in to
[/vba]
так это ж не фильтр, а критерий сравнения уникальности вариант: [vba]
Код
let f=(x,y)=>if Text.Start(x,1)<>y then x else null, from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], add = Table.AddColumn(from, "tmp", each List.RemoveNulls({f([класс1],"п"),f([класс2],"в")}))[[дата],[tmp],[сумма]], exp = Table.ExpandListColumn(add, "tmp"), lst = List.Sort(List.Distinct(List.RemoveNulls(exp[tmp])),{each Text.End(_,1),Order.Ascending}), to = Table.Pivot(exp,lst, "tmp", "сумма", List.Sum) in to