电力查询中的匹配列表/表格

时间:2016-10-26 20:43:22

标签: match string-comparison powerquery m

我认为这必须有一个简单的答案,但我找不到任何例子。

我必须将列表的每个成员与子字符串列表进行比较,以查看该成员是否包含子字符串,如果包含子字符串,则将子字符串返回到与第一个列表成员相同位置的第三个列表。

示例:

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

1 个答案:

答案 0 :(得分:4)

单词交叉点

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

enter image description here

仅标志

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

enter image description here