regex Google Sheets COUNTIF模式匹配/正则表达式

a14dhokn  于 2023-03-09  发布在  Go
关注(0)|答案(2)|浏览(96)

Google Sheets的模式匹配文档没有什么帮助。我已经阅读和搜索了一段时间,但没有找到这个问题。也许我很难找到正确的搜索词,但这里有一个问题:
我有几个编号(部件号)遵循以下格式:##-####
类别可以通过部件号定义,即50-03##是一个产品类别,其余2位数字特定于一个型号。
我一直在想办法

=countif(E9:E13,"50-03[123][012]*")

E9:E13包含文本格式的零件号。如果我用其他方式格式化它,这些值就会显示得一团糟,因为Google Sheets认为我在写日期或尝试做算术。)
每次返回0,除非我将其更改为:

=countif(E9:E13,"50-03*")

所以看起来通配符有效,而模式匹配无效?

3yhwsihp

3yhwsihp1#

正如你所指出的和Wiktor所提到的,COUNTIFonly supports wildcards
不过,有很多方法可以实现你的愿望,举两个例子:

=ArrayFormula(SUM(--REGEXMATCH(E9:E13, "50-03[123][012]*")))
=COUNTA(FILTER(E9:E13, REGEXMATCH(E9:E13, "50-03[123][012]*")))
e4yzc0pl

e4yzc0pl2#

对于像您这样的问题来说,这确实是一个巨大的挑战,但是您可以使用QUERY来执行类似以下的操作:

=QUERY(E9:E13, "select count(E) where E matches '50-03[123][012]' label count(E) ''")

label位用于防止QUERYcount()列添加自动标题。
这种方法的好处是,你还可以拉入其他列。假设在H列中,你有每个零件的订单数。然后,你可以用两个单元格来显示零件数和订单总数。

=QUERY(E9:H13, "select count(E), sum(H) where E matches '50-03[123][012]' label count(E) '', sum(H) ''")

我经常在$searchEngine上找到这个问题,却没有注意到我将another question与类似的问题和其他相关答案链接起来。

相关问题