【问题标题】:Finding numeric characters using wildcards in countif在 countif 中使用通配符查找数字字符
【发布时间】:2016-07-28 14:05:55
【问题描述】:

我有一个 countif 函数,我想用它来计算那些在任何地方都有数字字符的单元格。

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

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

【问题讨论】:

  • 数字总是个位数吗?否则,如果不将每个数字都算作自己的返回值,则计数将很困难。如果是这样,正则表达式可能是最好的。
  • @ScottCraner 是的。在我的用例中,我只需要计算任何一位数

标签: excel excel-formula


【解决方案1】:

使用带有多个通配符标准的COUNTIF function

=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}&"*"))

【讨论】:

  • 少打字:=SUM(COUNTIF(A:A,"*" & {1,2,3,4,5,6,7,8,9,0} & "*")) 我只是在等待回复。 :)
  • 好收获!如果您不介意,我会编辑以解决这个问题。 (我欠你一个)
  • 简单漂亮:)
  • @SiddharthRout - 看到这个我也头晕目眩。在这一生中能找到美丽和鼓舞人心的东西真是太神奇了:)
  • @EchchamaNayak - 大括号是一个常量数组。 COUNTIF 返回一个计数数组(常量数组中的每个计数)。您需要 SUM 才能将所有回报收集到一个单一的回报中。使用公式,Evaluate Formula 命令并逐步完成该过程以进一步了解。
【解决方案2】:

试试:

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

【讨论】:

    【解决方案3】:

    您可以使用 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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多