Excel公式COUNTIFS用任何数字

问题描述 投票:0回答:2

我不能让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公式应返回给2我想去的地方列B是foobar和C列包含任何数字。

excel countif digits
2个回答
1
投票

您可以使用类似=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)东西线

这并没有经过测试。


0
投票

好...

这是一个有点长篇大论,有可能是一个更好的办法,但它的工作原理没有一个帮手列:

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(份0或1。

因此,对于每一行,我们检查,如果B列中包含“foobar的”。如果是这样,则返回1。这然后由式的第二个一半的结果乘以(也0或1)。在下半场比赛中,我们增加了对如何多位数的检查不会导致错误。如果该数大于0(即,在至少一个数位被发现),则返回1,如果没有发现位,则返回0。

这导致的1 * 1,1 * 0,0 * 1的总和,或0 * 0。这意味着,每行的总和仅导致1如果文本两列中发现,否则返回0。

该SUMPRODUCT然后简单地增加了这些零和以得到满足您的条件行的总数。

我希望这是有道理的。如果您需要更多的解释,只是让我知道。

© www.soinside.com 2019 - 2024. All rights reserved.