我如何使用查询来过滤一个范围,该范围不应包含来自不同范围的任何单词?

问题描述 投票:1回答:1

我有7000多个有关HVAC维修的关键字列表,并且我设法隔离了每个关键字中使用的所有唯一字(3000多个唯一字)。我将挑选出不需要的单词(例如汽车空调),然后使用该列表从本质上构成一个“被禁止”的单词列表。然后如何使用查询“选择A,其中A不包含[禁止的单词范围]”]

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

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

regex google-sheets google-sheets-formula google-sheets-query textjoin
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

© www.soinside.com 2019 - 2024. All rights reserved.