Страницы: 1
RSS
Power Query Текстовый фильтр по сочетанию критериев "начинается с"
 
Добрый день, помогите, пожалуйста.

Есть исходная таблица (желтая), в которой указаны фрукты и их цвета.
И есть таблица (синяя) с критериями , которые надо применять в фильтре "Начинается с", в нем комбинации двух критериев, по которым надо сделать отбор из таблицы.
Результат нужен как на зеленом фоне.
 
Как-то так:
Код
let
    табКритерий = Excel.CurrentWorkbook(){[Name="табКритерий"]}[Content],
    табФрукты = Excel.CurrentWorkbook(){[Name="табФрукты"]}[Content],
    Фильтруем = Table.SelectRows(табФрукты, each List.ContainsAny( {[Фрукт]} ,табКритерий[#"Фрукт Начинается с…"],Text.StartsWith) and List.ContainsAny( {[Цвет]} ,табКритерий[#"Цвет начинается с…"],Text.StartsWith) )
in
    Фильтруем
Вот горшок пустой, он предмет простой...
 
Как я понял, нужно, чтобы критерии из таблицы с критериями накладывались построчно, т.е. яблоко может быть фиолетовым, а вот апельсин - нет (что, в общем-то, святая правда  :) ). Тогда вот:
Код
let
    Фрукты = Excel.CurrentWorkbook(){[Name="табФрукты"]}[Content],
    Критерий = Excel.CurrentWorkbook(){[Name="табКритерий"]}[Content],
    temp = Table.AddColumn(Фрукты, "temp", each Критерий),
    expand = Table.ExpandTableColumn(temp, "temp", {"Фрукт Начинается с…", "Цвет начинается с…"}),
    final = Table.SelectRows(expand, each Text.StartsWith([Фрукт], [#"Фрукт Начинается с…"], Comparer.OrdinalIgnoreCase) and
                                          Text.StartsWith([Цвет], [#"Цвет начинается с…"], Comparer.OrdinalIgnoreCase))[[Фрукт],[Цвет]]
in
    final

P.S. Добавил игнорирование регистра.
Изменено: Aleksei_Zhigulin - 29.03.2019 17:31:20
 
:oops: Спасибо огромное!
 
Цитата
Aleksei_Zhigulin написал:
критерии из таблицы с критериями накладывались построчно
Ну да, а я про перебор на все сочетания подумал. Если так, то да, мое решение не верное.
Вот горшок пустой, он предмет простой...
 
убрала
Спасибо всем еще раз, пока написала новый вопрос, возможно, дошел ответ. Извините.
Изменено: Xel - 12.04.2019 19:08:16
Страницы: 1
Наверх