如何判断Google Sheets/Excel单元格是否同时包含多个指定子字符串
双列子串同时匹配判断方法(支持Google Sheets/Excel)
功能说明
判断待匹配列(示例为A列)的单元格是否同时包含同一行两个子串列(示例为B列、C列)的内容,不限制子串的出现顺序,匹配成功返回TRUE,失败返回FALSE。
实现公式
全平台通用公式(同时兼容Google Sheets和Excel)
忽略大小写匹配,公式写在结果列第一行(示例为D1),向下拖拽填充即可:
=AND(ISNUMBER(SEARCH(B1, A1)), ISNUMBER(SEARCH(C1, A1)))
如果需要区分大小写匹配,将SEARCH替换为FIND即可:
=AND(ISNUMBER(FIND(B1, A1)), ISNUMBER(FIND(C1, A1)))
Google Sheets 批量自动填充公式
不需要手动拖拽,直接在结果列第一行输入以下公式,会自动为所有行生成匹配结果:
=BYROW(A:A, LAMBDA(x, IF(ROW(x)=1, "匹配结果", AND(ISNUMBER(SEARCH(OFFSET(x, 0, 1), x)), ISNUMBER(SEARCH(OFFSET(x, 0, 2), x))))))
示例匹配结果
按给出的测试数据,最终返回结果如下:
- A1(matt@gmail.com):同时包含B1(matt)和C1(gmail),返回
TRUE - A2(matt@yahoo.com):不包含B2(doug),返回
FALSE - A3(doug@gmail.com):不包含B3(andrew),返回
FALSE - A4(gmail@matt.com):同时包含B1(matt)和C1(gmail),返回
TRUE
完全符合预期的匹配规则。
特殊场景适配
如果子串列存在空值,默认空值会被判定为匹配成功,要规避这种情况可以增加判空逻辑:
=AND(B1<>"", C1<>"", ISNUMBER(SEARCH(B1, A1)), ISNUMBER(SEARCH(C1, A1)))
内容的提问来源于stack exchange,提问作者Kassidy Webb
相关产品推荐
相关产品推荐

