You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheet中ArrayFormula搭配COUNTIF匹配部分文本结果异常问题

问题根源

你当前的数组公式失效,核心原因是COUNTIF函数第一个参数传入多单元格区域$B3:B时,只会返回整个区域的匹配总计数这一个单值,而非逐行对每个B列单元格做匹配判断。只要整段B列里存在至少一个符合匹配规则的单元格,COUNTIF返回值就大于0,触发IF返回对应A列内容,才会出现不匹配行也错误输出结果的问题。

可用解决方案

下面给出3种适配谷歌表格的正确写法,均可实现你要的逐行模糊匹配效果:

写法1:REGEXMATCH(最精简)

REGEXMATCH本身支持数组运算,直接传入列区域即可逐行返回匹配结果:
=ARRAYFORMULA(IF(REGEXMATCH($B3:B,$D$2),$A3:A,""))

写法2:BYROW + COUNTIF(适配原有逻辑)

如果你要保留原有COUNTIF的匹配逻辑,用BYROW逐行遍历处理即可:
=ARRAYFORMULA(BYROW($B3:B,LAMBDA(r,IF(COUNTIF(r,"*"&$D$2&"*")>0,OFFSET(r,0,-1),""))))

写法3:MAP双列遍历

同时遍历AB两列,逻辑更直观:
=ARRAYFORMULA(MAP($A3:A,$B3:B,LAMBDA(a,b,IF(COUNTIF(b,"*"&$D$2&"*")>0,a,""))))

注意事项
  • 上述公式匹配样本B/C/D时,只需将公式里的$D$2替换为对应样本的表头单元格引用即可
  • 如果要严格匹配独立样本标识,避免出现比如样本名是A、文本里有AA也被匹配的情况,可以给REGEXMATCH的匹配规则加上单词边界:REGEXMATCH($B3:B,"\b"&$D$2&"\b")

内容的提问来源于stack exchange,提问作者David Huy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:54:01