首页 > 解决方案 > 在[另一个单元格中的字符串]中找到[单元格中的字符串]时返回真/假?

问题描述

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

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

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

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

标签: regexgoogle-sheetsgoogle-sheets-formulaarray-formulasgoogle-sheets-query

解决方案


你可以试试:

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

0

为了更精确,您可以执行以下操作:

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

0

然后对于不区分大小写:

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

0


真正的 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), ))

0


推荐阅读