// Таблица1
let
Источник = Excel.CurrentWorkbook(){[Name = "Таблица1"]}[Content],
#"Несвернутые столбцы" = Table.UnpivotOtherColumns(Источник, {"ind_mapping.Ind_corr2", "Instrument", "bs_rep_date_corr (Год)"}, "Атрибут", "Значение")
in
#"Несвернутые столбцы"
// Таблица2
let
Источник = Excel.CurrentWorkbook(){[Name = "Таблица2"]}[Content],
#"Несвернутые столбцы" = Table.UnpivotOtherColumns(Источник, {"Profiles", "Coefficients", "score"}, "Атрибут", "Значение"),
#"Добавлен пользовательский объект" = Table.AddColumn(#"Несвернутые столбцы", "a", each if Text.EndsWith([Атрибут],"2") then "to" else "from"),
#"Замененное значение" = Table.ReplaceValue(#"Добавлен пользовательский объект","2","",Replacer.ReplaceText,{"Атрибут"}),
#"Сведенный столбец" = Table.Pivot(#"Замененное значение", List.Distinct(#"Замененное значение"[a]), "a", "Значение", List.Sum)
in
#"Сведенный столбец"
// tbl
null meta [IsParameterQuery=true, Type="Any", IsParameterQueryRequired=false]
// num
null meta [IsParameterQuery=true, Type="Number", IsParameterQueryRequired=false]
// debug
1 meta [IsParameterQuery=true, Type="Number", IsParameterQueryRequired=true]
// i
31 meta [IsParameterQuery=true, Type="Number", IsParameterQueryRequired=true]
// Запрос1
let
Источник = Таблица1,
#"Объединенные запросы" = Table.NestedJoin(Источник,{"ind_mapping.Ind_corr2", "Атрибут"},Таблица2,{"Атрибут", "Coefficients"},"Таблица2",JoinKind.LeftOuter),
#"Вызвана настраиваемая функция" = Table.AddColumn(#"Объединенные запросы", "score", each fnFilter([Таблица2], [Значение], 0)),
#"Удаленные столбцы" = Table.RemoveColumns(#"Вызвана настраиваемая функция",{"Таблица2"}),
#"Сгруппированные строки" = Table.Group(#"Удаленные столбцы", {"ind_mapping.Ind_corr2", "Instrument", "bs_rep_date_corr (Год)","Атрибут"}, {{"_", each _{0}[[Значение],[score]]}}),
#"Сведенный столбец" = Table.Pivot(#"Сгруппированные строки", List.Distinct(#"Сгруппированные строки"[Атрибут]), "Атрибут", "_"),
#"Развернутый элемент Revenue in $ bln" = Table.ExpandRecordColumn(#"Сведенный столбец", "Revenue in $ bln", {"Значение", "score"}, {"Revenue in $ bln.Значение", "Revenue in $ bln.score"}),
#"Развернутый элемент nPPE in $ bln" = Table.ExpandRecordColumn(#"Развернутый элемент Revenue in $ bln", "nPPE in $ bln", {"Значение", "score"}, {"nPPE in $ bln.Значение", "nPPE in $ bln.score"}),
Пользовательская1 = #"Развернутый элемент nPPE in $ bln" meta (if debug=1 then [a=#"Объединенные запросы",tbl=a{i}[Таблица2],v=a{i}[Значение]] else [])
in
Пользовательская1
// fnFilter
let
Источник = (tbl as any, num as number, debug as number) => let
Источник = if debug=1 then Value.Metadata(Запрос1)[tbl] else tbl,
Num = if debug=1 then Value.Metadata(Запрос1)[v] else num,
#"Строки с примененным фильтром" = Table.SelectRows(Источник, each [from] <= Num),
#"Строки с примененным фильтром1" = Table.SelectRows(#"Строки с примененным фильтром", each [to] > Num),
#"Вычисленное максимальное значение" = List.Max(#"Строки с примененным фильтром1"[score])
in
#"Вычисленное максимальное значение"
in
Источник
// Запрос2
let
Источник = if debug=1 then Value.Metadata(Запрос1)[tbl] else tbl,
Num = if debug=1 then Value.Metadata(Запрос1)[v] else num,
#"Строки с примененным фильтром" = Table.SelectRows(Источник, each [from] <= Num),
#"Строки с примененным фильтром1" = Table.SelectRows(#"Строки с примененным фильтром", each [to] > Num),
#"Вычисленное максимальное значение" = List.Max(#"Строки с примененным фильтром1"[score])
in
#"Вычисленное максимальное значение" |