基本上,我正在尝试寻找一种方法来搜索短语列表,并突出显示/提取或识别包含来自单独列/列表的短语或单词的任何短语或单元格。
为了说明这一点,我列出了触发我的Google广告的“搜索字词”列表,该列表包含人们输入到Google搜索引擎中的短语或表达式。
我还有一个“否定关键字”列表,用于将某些单词或词组输入Google时阻止广告展示。例如,如果我的否定关键字列表中有“ nursery”一词,那么如果有人输入“我附近最好的幼儿园”这句话,它应该可以阻止广告展示
然后,我将这两个列表都放在excel电子表格的单独列中,因此一列包含搜索词,另一列包含否定关键字。
我想做的是搜索所有搜索词,如果该单元格中的任何单词或短语与否定关键字列表中的短语匹配,则高亮显示该单元格。在上面的示例中,当短语“ nursery”位于否定关键字列表中时,包含短语“我附近最好的托儿所”的单元格将被突出显示或提取。
Google表格中的REGEXMATCH可以做到这一点,但是,我不知道它可以选择多个表达式,它确实允许多个表达式,但是只能通过说(A1 | A2 | A3)来解决。我有1000多个单元格,因此想一种方法一次选择所有单元格,例如(A1:A1000)
这是指向Google表格的链接,如果可能的话,我希望能够在Excel中进行操作。 https://docs.google.com/spreadsheets/d/1yLTswjrpwf2owhX4YxPavUY441WlQsnzv3StoP-ilmc/edit?usp=sharing
答案 0 :(得分:1)
=ARRAYFORMULA(IF(REGEXMATCH(A2:A, TEXTJOIN("|", 1, C:C)), A2:A, ))
=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A2:A, TEXTJOIN("|", 1, C:C))))
=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
SPLIT(A2:A, " ")), "^"&TEXTJOIN("|^", 1, C:C)), A2:A, )),,999^99))))
=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))))
=ARRAYFORMULA(IF(IF(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99)))<>"",
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))),
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(A2:A,
"^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))))<>"",
IF(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99)))<>"",
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IFERROR(
SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99))),
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(A2:A,
"^"&TEXTJOIN("$|^", 1, C:C)&"$"), A2:A, )),,999^99)))),
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(IF(REGEXMATCH(A2:A, "\s"), A2:A, ),
TEXTJOiN("|", 1, C:C)), A2:A, )),,999^99)))))
答案 1 :(得分:0)
有一种更简单的方法可以做到这一点。不要使事情过于复杂。
说您要从城市列表中搜索匹配项。
在任何空白单元格中(最上面一行的一侧都是不错的地方)放置以下公式: 城市列表公式:= TEXTJOIN(“ |”,1,'vlookup city'!B $ 2:B $ 477)(如果您的标签页名为“ vlookup city”,而您的城市在该标签页的B列中)
< / li>在搜索词旁边添加新列,或选择一个现有的词条来放置“找到匹配项”信息。
在该新列中,添加此公式(如果您的数据从第4行开始,并将“城市列表”公式放在单元格G3中:) = REGEXMATCH(A4,G $ 4)
将公式完全填充到列表中。您可以双击单元格右下角的蓝色小方块,也可以一直拖动并拖动到列表的底部。
Ba!它将在您的搜索短语中的任何位置搜索这些城市名称中的任何一个。
如果搜索词组至少包含一个匹配词,它将返回“ True”。
然后,您可以在公式上添加其他功能,使其返回其他值。例如: = IF(REGEXMATCH(A4,G $ 4),“找到匹配项”,“找不到匹配项”)
这是一种超轻量级的解决方案,不会使您的图纸放慢速度,并且易于使用。
https://docs.google.com/spreadsheets/d/1XAIDB98r2CGu7hL3ISirErDPNlgT6lVt-TCG0qI1uTE/edit?usp=sharing