Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用查询筛选不应包含其他范围中任何单词的范围?_Regex_Google Sheets_Google Sheets Formula_Google Sheets Query_Textjoin - Fatal编程技术网

Regex 如何使用查询筛选不应包含其他范围中任何单词的范围?

Regex 如何使用查询筛选不应包含其他范围中任何单词的范围?,regex,google-sheets,google-sheets-formula,google-sheets-query,textjoin,Regex,Google Sheets,Google Sheets Formula,Google Sheets Query,Textjoin,我有一个关于暖通空调维修的7000多个关键词的列表,我已经成功地分离出每个关键词中使用的所有唯一单词(3000多个唯一单词)。我将挑选出我们不需要的单词(如汽车ACs),然后使用该列表基本上制作一个“禁止”单词列表。然后,我如何使用查询“选择一个不包含[Banked word range]的区域” 我尝试了=query(A:A,“选择A,其中A不包含B”),但我认为这不是那么容易。(B是禁止使用的单词范围) 以下是我正在进行的项目: 您可以这样做: =QUERY(A2:A, "where not

我有一个关于暖通空调维修的7000多个关键词的列表,我已经成功地分离出每个关键词中使用的所有唯一单词(3000多个唯一单词)。我将挑选出我们不需要的单词(如汽车ACs),然后使用该列表基本上制作一个“禁止”单词列表。然后,我如何使用查询“选择一个不包含[Banked word range]的区域”

我尝试了
=query(A:A,“选择A,其中A不包含B”)
,但我认为这不是那么容易。(B是禁止使用的单词范围)

以下是我正在进行的项目:
您可以这样做:

=QUERY(A2:A, "where not A matches '^"&TEXTJOIN("$|^", 1, B2:B)&"$'", 0)


对于“真实包含”,请使用:


这会稍微长一点,但可以解决您可能遇到的所有可能失败:

=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
 IF(REGEXMATCH(IFERROR(SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, B2:C)&"$")=FALSE, 
 SPLIT(A2:A, " "), "♦"))),,999^99)), "where not Col1 contains '♦'", 0))

谢谢你的建议,我会尽力的。然而,A列有多个单词,它们之间用空格隔开,就像魔术一样:哦,我真是太感谢你了。我现在唯一的问题是,如果我一次给它提供3000 kws+的数据,Google sheets就会崩溃。不过我可以解决这个问题。@OnyxJasperSalape@OnyxJasperSalape又添加了一个解决方案
=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
 IF(REGEXMATCH(IFERROR(SPLIT(A2:A, " ")), "^"&TEXTJOIN("$|^", 1, B2:C)&"$")=FALSE, 
 SPLIT(A2:A, " "), "♦"))),,999^99)), "where not Col1 contains '♦'", 0))