代码之家  ›  专栏  ›  技术社区  ›  physlexic

任何数字的excel公式countifs

  •  0
  • physlexic  · 技术社区  · 6 年前

    我找不到countifs来搜索任何数字。

    如果我把第二个标准变成一个特定的数值

    =COUNTIFS(FOO!B:B,"*foobar*",FOO!C:C,"2")
    

    但我不只是想找 2 ,我想要任何数值(甚至任何包含数字的字符串)。我尝试了一些变化,但从我的理解这应该在下面工作。我错过了什么?

    =COUNTIFS(FOO!B:B,"*foobar*",FOO!C:C,"*{1,2,3,4,5,6,7,8,9,0}*")
    

    数据

    A     B         C
          foobar    51
          foo       682
          bar       S5
          foobar    CSGR
          foobar    8RD
    

    countifs公式应该返回 如果我想知道B列在哪 foobar C列包含任何数字。

    2 回复  |  直到 6 年前
        1
  •  1
  •   kpark    6 年前

    你可以用一些像 =COUNT(FIND({0,1,2,3,4,5,6,7,8,9}),C2)>0 对于C列,复制到D列。 如果单元格中有数字,则返回true或false。

    然后做一些事情 =COUNTIFS(FOO!B:B, "*foobar*", FOO!D:D, TRUE)

    这还没有测试过。

        2
  •  0
  •   Gravitate    6 年前

    好啊。。。

    这有点冗长,可能有更好的方法,但它在没有辅助列的情况下工作:

    enter image description here

    =SUMPRODUCT(
        --NOT(ISERROR(SEARCH("*foobar*",B1:B5)))*
        (
            (
                --NOT(ISERROR(SEARCH("*0*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*1*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*2*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*3*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*4*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*5*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*6*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*7*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*8*",C1:C5)))+
                --NOT(ISERROR(SEARCH("*9*",C1:C5)))
            )>0
        )
    )
    

    如果搜索函数返回错误,则表示未找到文本。 搜索函数的结果由 --NOT(ISERROR( 部分。

    所以对于每一行,我们都要检查B列是否包含“foobar”。如果是,则返回1。然后乘以公式后半部分的结果(也是0或1)。在下半年,我们将计算出有多少数字检查不会导致错误。如果此数字大于0(即至少找到一个数字),则返回1。如果未找到数字,则返回0。

    这将得到1*1、1*0、0*1或0*0的和。这意味着,如果在两列中都找到文本,则每行的和只会产生1,否则返回0。

    然后,sumproduct将这些零和一相加,得到满足您的条件的行总数。

    我希望这有道理。如果你需要更多的解释,请告诉我。