COUNTIF基于在单个单元格中连接的多个标准

时间:2014-07-02 10:05:53

标签: arrays excel vba countif

第一次海报,长时间读者!

我正在寻找一个COUNTIF风格公式的帮助。我有一个每天包含大约100行的表格,我需要做的是在汇总表中计算表格中某些标准的出现次数。问题是COUNTIF必须根据多个可能的值对项目进行计数,这些值可以连接到一个单元格中。请参阅下面的示例,了解我正在寻找的内容:

Criteria
1.) A,B,C,D
2.) 1,2,3,4

Items A B D 1 2 7

我需要的是标准1的结果为3,标准2的结果为2。

在这种情况下,我最好的选择是什么?我试图在vba中创建一个函数来分隔单元格,并尝试将其合并到COUNTIF / SUMPRODUCT中。请参阅我在下面使用的代码:

  

函数EXPLODE(str As String,可选分隔符As Variant)As Variant         EXPLODE = Split(str,delimiter)     结束功能

非常感谢任何建议!

2 个答案:

答案 0 :(得分:0)

您可以将COUNTIFSSplit功能爆炸结合使用。

因此,你的函数可以返回一个数组,该数组可以使用Ctrl-Shift-Return拟合到多个单元格中,然后使用函数

=COUNTIFS(*ItemRange*, *Criteria1_fromSplit*, *ItemRange*, *Criteria2_fromSplit*....)

通过这种方式,您可以将单元格分成5-10个值,具体取决于您期望的最大连接数,并构建COUNTIFS函数。

答案 1 :(得分:0)

或者,如果您对纯粹的基于公式的解决方案感兴趣,请使用A1:A6中的,D1中的年龄:D6和您的第一个B1中的逗号分隔字符串(例如A,B,C,D):

在C1:

= SUMPRODUCT(COUNTIFS($ A $ 1:$ A $ 6,TRIM(MID(SUBSTITUTE(B1,",",REPT("",LEN(B1)) ),LEN(B1)*(ROW(INDIRECT(" 1:"&安培; 1 + LEN(B1)-LEN(SUBSTITUTE(B1,""&#34 ;")))) - 1)+ 1,LEN(B1))),$ d $ 1:$ d $ 6"&→3&#34))

根据需要复制,以便为B2,B3等中的字符串提供类似的结果

此致