Return true/false 在 [另一个单元格中的字符串] 中找到 [单元格中的字符串]?

Return true/false on [strings in a cell] being found in [strings in another cell]?

单元格 A1 包含多个字符串,例如 "CAT DOG RAT GNU";

单元格 B1 包含多个字符串,例如 "RAT CAT";

我如何运行 进行测试(使用 C1 中的公式)以查找单元格 A1 中是否存在 B1 中的所有字符串?

到目前为止,我已经尝试过使用 vlookup 和匹配、计数等进行转置拆分数组,但对我来说没有任何效果。 (也许正则表达式不会这样做,因为不能为每个字符串循环?)

你可以试试:

=ARRAYFORMULA(IF(PRODUCT(N(NOT(ISNA(REGEXEXTRACT(SPLIT(B1, " "), 
 SUBSTITUTE(A1, " ", "|"))))))=1, TRUE))

为了更精确,您可以这样做:

=ARRAYFORMULA(IF(PRODUCT(N(NOT(ISNA(REGEXEXTRACT(SPLIT(B1, " "), 
 "^"&SUBSTITUTE(A1, " ", "$|^")&"$")))))=1, TRUE))

然后为了不区分大小写:

=ARRAYFORMULA(IF(PRODUCT(N(NOT(ISNA(REGEXEXTRACT(SPLIT(LOWER(B1), " "), 
 "^"&SUBSTITUTE(LOWER(A1), " ", "$|^")&"$")))))=1, TRUE))


真正的 ArrayFormula 将是:

=ARRAYFORMULA(IF((A1:A<>"")*(B1:B<>""), IF(REGEXMATCH(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
 REGEXMATCH(IF(SPLIT(B1:B, " ")<>"", SPLIT(LOWER(B1:B), " "), 0), 
 "^"&SUBSTITUTE(LOWER(A1:A), " ", "$|^")&"$"))),,999^99)), "FALSE"), FALSE, TRUE), ))