Google表格的模式匹配文档没有帮助。我一直在阅读和搜索一段时间,但找不到这个特殊问题。也许我很难找到正确的搜索条件,但问题出在这里:
我有几个符合此格式的数字(部件号):##-####
类别可以通过部件号定义,即50-03##
是一个产品类别,其余2个数字是特定于模型的。
我一直试图这样做:
=countif(E9:E13,"50-03[123][012]*")
(E9:E13
包含格式化为文本的部件号。如果我以任何其他方式格式化,由于Google表格认为我正在写日期或尝试进行算术运算,因此数值显示已经搞砸了。)
每次都返回0,除非我改为:
=countif(E9:E13,"50-03*")
所以看起来通配符工作,但模式匹配不行?
答案 0 :(得分:11)
正如您所指出的那样,Wiktor提到COUNTIF
只支持通配符。
有许多方法可以做你想要的,仅举两个名字
=ArrayFormula(SUM(--REGEXMATCH(E9:E13, "50-03[123][012]*")))
=COUNTA(FILTER(E9:E13, REGEXMATCH(E9:E13, "50-03[123][012]*")))
答案 1 :(得分:0)
对于像您这样的问题,这确实是一个很大的锤子,但是您可以使用QUERY
来执行以下操作:
=QUERY(E9:E13, "select count(E) where E matches '50-03[123][012]' label count(E) ''")
label
位是为了防止QUERY
向count()
列添加自动标头。
这种方法的好处是您也可以拉入其他列。假设在H列中,每个零件都有许多订单。然后,您可以取两个单元格,同时显示零件数和订单总数:
=QUERY(E9:H13, "select count(E), sum(H) where E matches '50-03[123][012]' label count(E) '', sum(H) ''")
我通常在$searchEngine
上发现此问题,但没有注意到我将another question与类似问题和其他相关答案相关联。