1

我有一个关于 HVAC 维修的 7000 多个关键字的列表,并且我设法隔离了每个关键字中使用的所有唯一词(3000 多个唯一词)。我将挑选出我们不需要的单词(例如汽车空调),然后使用该列表基本上制作一个“禁止”单词列表。然后如何使用查询来“选择 A 其中 A 不包含 [banned word range]”?

我试过=query(A:A, "select A where A does not contain B")了,但我不认为这很容易。(B为禁词范围)

这是我正在进行的项目: https ://docs.google.com/spreadsheets/d/1G5tz4Ap6WRJT2ZXJm44vOxueIOJdO32Kcti1rkudB2I/edit?usp=sharing

4

1 回答 1

2

你可以这样做:

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

0


对于“真正的包含”使用:

=FILTER(A2:A, NOT(REGEXMATCH(A2:A,  TEXTJOIN("|", 1, B2:C))))

00


这有点长,但解决了您可能遇到的所有可能失败:

=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))

0

于 2019-10-02T15:59:18.437 回答