Я нашел часть того, что искал, в списках соответствий / таблицах в запросе мощности, но Мне нужно немного больше.
Используя пример «Только флаги», представленный в списках соответствий / таблицах в запросе мощности, я m сравнивая два списка, ListA и ListB, чтобы проверить, отображается ли содержимое строки ListB в содержимом строки ListA вообще. Я не могу выполнить однозначное сопоставление содержимого обеих строк (например, с List.Intersect), потому что содержимое строки в ListB может быть только частью содержимого строка в ListA.
Обратите внимание, что в запросе ниже ListB включает «roo», то есть первые три буквы в слове room. Я хотел бы знать, что «roo» находится в строке ListA, которая имеет «в моей комнате».
Пример «Только флаги», представленный списками соответствий / таблицами в запросе мощности, уже определяет, что « roo »- это часть строки ListA, в которой есть« в моей комнате ». Я построил этот пример, чтобы назначить «да» вместо истины, когда есть такое совпадение между ListA и ListB.
Что я хочу сделать, так это заменить «да» фактическим значением из ListB - например, значением «roo». Я попытался просто заменить слово B на «да», но у меня возникла ошибка, что слово B не распознается.
let
ListA = {"help me rhonda", "in my room", "good vibrations", "god only knows"},
ListB = {"roo", "me", "only"},
contains_word=List.Transform(ListA, (lineA)=>if List.MatchesAny(ListB, (wordB)=>Text.Contains(lineA, wordB)) = true then "yes" else "no")
in
contains_word
Текущий запрос приводит к следующему:
List
1 yes
2 yes
3 no
4 yes
Я хочу, чтобы результаты запроса были:
List
1 roo
2 me
3
4 only
Есть идеи, как это сделать?
(p.s. Я новичок в Power Query / M)
Спасибо