使用通配符在countif函数中查找数字字符

4

我有一个countif函数,希望用它来计算任何地方都有数字字符的单元格数量。

Column A
Rich-Dilg-street 3
I have 4 apples
I have seven dogs

我应该如何使用通配符编写countif条件,以便我可以计算那些具有数字字符的内容?在上面的例子中,答案应该是2(1和2而不是3)。


数字总是单个数字吗?如果不是,使用计数公式进行计数时将很难将每个数字都计算为自己的返回结果。如果是这种情况,正则表达式可能是最好的选择。 - Scott Craner
@ScottCraner 是的,在我的使用案例中,我只需要计算任意一个数字。 - Echchama Nayak
3个回答

11

使用 COUNTIF 函数和多个通配符条件。

=SUM(COUNTIF(A:A, {"*0*","*1*","*2*","*3*","*4*","*5*","*6*","*7*","*8*","*9*"}))

正如Scott Craner所指出的那样,您可以通过以下方式减少输入:

=SUM(COUNTIF(A:A, "*"&{0,1,2,3,4,5,6,7,8,9}&"*"))

6
少打字:=SUM(COUNTIF(A:A,"*" & {1,2,3,4,5,6,7,8,9,0} & "*")) 我只是在等回应。 :) - Scott Craner
好发现!如果你不介意的话,我会进行编辑以解决这个问题。(我会欠你一个人情) - user4039065
3
简单而美丽 :) - Siddharth Rout
2
@SiddharthRout - 我看到这个也感到非常兴奋。在这个生命中,人们能够发现美丽和启发的事情真是令人惊叹 :) - Scott Holtzman
嗨,谢谢你的回答。但是为什么要包括sum函数呢?难道countif不是用来计算单元格的吗? - Echchama Nayak
2
@EchchamaNayak - 大括号是一个常量值数组。COUNTIF返回一个计数数组(每个常量数组中的一个计数)。您需要使用SUM将所有返回值收集到单个返回值中。使用公式,Evaluate Formula命令并逐步执行该过程以进一步了解。 - user4039065

1

尝试:

For Each Cell in Thisworkbook.Sheets(1).Range("A1:A10")
    For x = 1 to Len(Cell.Value)
        If IsNumeric(Mid(Cell.Value, x, 1)) Then
            Cell.Offset(0,1).Value = True
            Exit For
        End If
    Next x
Next Cell

0

您可以使用count、find和countif来获得所需的结果。

如果字符串在A列中,则

=count(FIND({0,1,2,3,4,5,6,7,8,9},A1))>0 will return True else false

现在,使用countif函数计算所有真值的总数。
=countif(B:B,True)

我假设这些字符串包含非负数。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接