如何搜索多个单词或单词集合的文本字符串列表?

时间:2017-06-14 18:49:04

标签: powerquery m

我想搜索文本字符串列表,找到哪些字符串包含多个单词或短语,并获取相应行的值。例如,如果我有以下列,我怎么能搜索它以找到其中带有“red”或“blue jean”的行,并获取它们的值,无论大小写(上/下)?

enter image description here

我知道我可以使用List.FindText({[Column1]},"red")查找并返回带有“red”的所有行的值,但我无法弄清楚如何使用“red”查找并返回所有行的值或“蓝色牛仔裤”马上就在他们身上。

1 个答案:

答案 0 :(得分:1)

您可以使用List.Transform和Text.Contains:

的组合
let
    Source = #table(1,{
                        {"The red barn"},
                        {"A red car"},
                        {"Blue jeans"},
                        {"Green beans"},
                        {"Atlanta"},
                        {"Chicago"}
                       }),

    LookUp = #table(1, {{"red"}, {"blue jean"}}),

    #"Filtered Rows" = 
        Table.SelectRows(
            Source, 
            (r)=> List.AnyTrue(
                    List.Transform(
                        LookUp[Column1], 
                        each Text.Contains(r[Column1], _, Comparer.OrdinalIgnoreCase)
                        )
                )
        )
in
    #"Filtered Rows"

如果是大查找表,您可以在过滤步骤之前添加List.Buffer(LookUp[Column1])步骤