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

Google Sheets:如何让FILTER支持多字符串匹配而非仅精确匹配?

嘿,我明白你的痛点——精确匹配只能抓单一版本,但你需要覆盖10.0.x全系列对吧?其实不用纠结把正则硬套进FILTER,有几个更简单的方案,甚至不用正则也能搞定:

方法1:用SUMIFS+通配符(最简便)

Excel的SUMIFS本身支持通配符*,它可以匹配任意长度的字符。针对你的需求,直接写:
=SUMIFS(C:C, A:A, "Safari", B:B, "10.0.*")

  • 这个公式会自动筛选出A列是Safari且B列以10.0.开头的所有行,然后对对应的C列数值求和。不管后面跟着什么数字(比如10.0.1、10.0.2甚至10.0.99)都能命中,完全不用复杂函数,新手也能快速上手。

方法2:FILTER+REGEXMATCH(灵活适配复杂规则)

如果你确实想用正则来实现(比如未来要匹配更复杂的版本格式,比如带字母后缀的10.0.1-beta),可以把REGEXMATCH作为FILTER的条件之一:
=SUM(FILTER(C:C, A:A="Safari", REGEXMATCH(B:B, "^10\.0\.\d+$")))

  • 简单解释下正则规则:
    • ^:锁定字符串开头,确保版本号从10.0.开始
    • 10\.0\.:转义.(因为正则里.代表任意字符),精确匹配10.0.
    • \d+:匹配1个或多个数字(对应版本号的最后一段)
    • $:锁定字符串结尾,避免匹配带后缀的版本(如果不需要这个限制,直接去掉$就行)

方法3:用文本提取函数(适配旧版Excel)

如果你的Excel版本不支持REGEXMATCH(比如2019及更早版本),可以用LEFT或者TEXTBEFORE来提取版本前缀:
=SUM(FILTER(C:C, A:A="Safari", LEFT(B:B, 4)="10.0"))
或者更稳妥的(如果版本号长度不固定):
=SUM(FILTER(C:C, A:A="Safari", TEXTBEFORE(B:B, ".", 3)="10.0"))

  • TEXTBEFORE的作用是提取B列字符串中第3个.之前的内容,也就是10.0,这样就能精准匹配所有前两段是10.0的版本,兼容性拉满。

内容的提问来源于stack exchange,提问作者Al C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:40:45