Списки соответствий / таблицы в мощном запросе

Думаю, здесь должен быть простой ответ, но я не могу найти никаких примеров.

Мне нужно сравнить каждый член списка со списком подстрок, чтобы увидеть, содержит ли этот член подстроку, и если да - вернуть подстроку в третий список в той же позиции, что и член первого списка.

Пример:

ListA = {"help me rhonda",  "in my room", "good vibrations", "god only knows"}
ListB = {"room", "me", "only"}

ListC should then should =  {"me", "room", null, "only"}

Я продвинутый программист, который пишет M около 4 дней. Это сводит меня с ума. Я пробовал несколько разных функций, но пока я даже не близко, поэтому я не буду перечислять свой код. List.Transform кажется наиболее вероятным вариантом, но я не могу с этим разобраться.

Спасибо за помощь,

-J


person Jamie Marshall    schedule 26.10.2016    source источник


Ответы (1)


Пересечения слов

let
    ListA = {"help me rhonda",  "in my room", "good vibrations", "god only knows"},
    ListB = {"room", "me", "only"},
    intersect=List.Transform(ListA, (lineA)=>Text.Combine(List.Intersect({Text.Split(lineA, " "), ListB}), "|"))
in
    intersect

введите описание изображения здесь

Только флаги

let
    ListA = {"help me rhonda",  "in my room", "good vibrations", "god only knows"},
    ListB = {"room", "me", "only"},
    contains_word=List.Transform(ListA, (lineA)=>List.MatchesAny(ListB, (wordB)=>Text.Contains(lineA, wordB)))
in
    contains_word

введите описание изображения здесь

person Sergey Lossev    schedule 27.10.2016
comment
Кажется, это ответ на ваш вопрос? Если да, то хотите отметить это как ответ? Если нет, дайте мне знать, и я смогу еще раз взглянуть. Кстати, видели ли вы руководство по быстрому запуску M? - person Carl Walsh; 28.10.2016