我无法让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
给定我想要的B列为2
且C列包含任何数字的情况,countifs公式应返回foobar
。
答案 0 :(得分:1)
您可以在C列中使用诸如=COUNT(FIND({0,1,2,3,4,5,6,7,8,9}),C2)>0
之类的内容,并在D列中进行复制。
如果单元格中有一个数字,它将返回TRUE或FALSE。
然后按照以下步骤进行操作
=COUNTIFS(FOO!B:B, "*foobar*", FOO!D:D, TRUE)
这未经测试。
答案 1 :(得分:0)
好吧...
这有点冗长,也许有更好的方法,但是在没有帮助列的情况下可以使用:
=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
)
)
如果SEARCH函数返回错误,则表示未找到文本。
--NOT(ISERROR(
部分将SEARCH函数的结果转换为0或1。
因此,对于每一行,我们正在检查B列是否包含“ foobar”。如果是这样,它将返回1。然后将其乘以公式后半部分的结果(也为0或1)。在下半部分,我们将累加多少个数字检查不会导致错误。如果该数字大于0(即至少找到一位数字),则返回1。如果未找到数字,则返回0。
这将得出1 * 1、1 * 0、0 * 1或0 * 0的总和。这意味着,如果在BOTH和BOTH列中都找到该文本,则每一行的总和只会得出1;否则,它将返回0。
然后,SUMPRODUCT只需将这些零和一加起来即可得出满足您条件的总行数。
我希望这是有道理的。如果您需要更多说明,请告诉我。