Expression.Evaluate + таблица условий =… кайф
#АнатомияФункций - Expression.Evaluate
Всем привет!
Подогнали задачку с таблицей условий для формирования агрегаций по таблице. Так и хочется сказать, что я таблицы не люблю, ими давлюсь и предпочитаю списки разводить… Но, с другой стороны, почему бы не поупражняться с Expression.Evaluate?
По этому поводу код:
let
f = (x)=>[ a = "Column"&Text.From(List.Last(Record.ToList(x{0}))),
b = Table.SelectRows(base,g(x)),
c = List.Sum(Table.Column(b,a))][c],
g = (x)=>[ a = List.Split(List.RemoveLastN(List.Skip(Table.ToColumns(x)),1),3),
b = (x)=>if x{2}{0}=null then null else "("&Text.Combine(List.Transform(List.Distinct(x{2}),c(x))," or ")&")",
c = (x)=>(y)=>Text.Format("(x[Column#{0}]#{1}""#{2}"")",{x{0}{0},x{1}{0},y}),
d = Expression.Evaluate("(x)=>"&Text.Combine(List.Transform(a,b)," and "))][d],
base = Table.Buffer(Excel.CurrentWorkbook(){[Name="Исходные"]}[Content]),
from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
to = Table.Group(from, "Строка итога", {"Сумма",f})
in
to
Ну а что тут к чему – смотрим
дзен
Файл-исходник забираем на
sponsr
Даже
ютуб сегодня благосклонен
Лайки, комменты, подписки приветствуются )))
(по подписке ещё и
курс с понедельника)
Надеюсь, было полезно.
Всех благ!
@buchlotnik