Countif函数仅评估数组中的第一个值

时间:2015-03-20 16:12:47

标签: arrays excel-2010 countif

如果标题不是很清楚(我想不出更好的解决问题的方法),我很抱歉...

我正在使用countif函数来查找符合两个条件的所有值,部分类型&码。我遇到的问题是部件类型的标准是一个范围,当我尝试将其评估为数组公式时,excel只查看范围中的第一个值。这就是数据的样子:

Sheet 1:  
PART    CODE  
1   x  
2   y  
3   z  
4   x  
3   z  
4   z  
3   y  

Sheet2:  
1   Type A  
2   Type A  
3   Type B  
4   Type B  

我正在使用countif公式(作为数组)来计算代码为“z”的B类部件的数量。这是我在Excel中使用的公式(PART& CODE是命名范围):

COUNTIFS(PART, 'Sheet2'!$B$3:$B$4, CODE,z)

这个公式返回2而不是3.当我评估它时,Excel显示它只找到第一个值(y)并从那里开始计算。我不确定为什么它没有看到第二个值(z)并进行评估。对此的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

我做了更多的研究,最后决定尝试其他功能(尽管我最初的想法是他们不能满足我的目的)......这里是最后的功能:

SUMPRODUCT(IF(PART=TRANSPOSE(TypeA),1,0)*IF(CODES="z",1,0)

我之前从未使用过这个功能,因此在我最初阅读它时感到困惑。经过几个小时的拉扯我的头发,我觉得我没有什么可失去的,并强迫自己试着去理解它的成就。我是如此坚持"计算"我没有意识到通过使用多个IF语句的这个函数,我可以获得必要的答案(并节省自己的麻烦)。

使用TRANSPOSE函数,以便我可以像{1,2}那样水平读取列数组,而不是垂直{1; 2}。我还不确定为什么我的原始函数无法处理垂直(除非我错过了数组的基本方面)。