Excel 2013复杂的countif公式

我有一个源表单设置如下:

Days Open Month 10 1 4 1 6 1 2 1 4 2 2 2 -1 2 4 3 6 3 7 4 3 4 

等等

我试图build立一个公式来计算行基于以下标准:

单元格在天打开列<= 5和<> – 1,其中月份是2,3或4(工作表最终将月份数最多为12,我需要按季度分组结果)。 总数必须除以“月份”列中出现2,3或4的所有行的总数。

我似乎无法得到COUNTIFS的第一部分与两个标准一起工作…这是我到目前为止,我正在努力工作:

=COUNTIFS('Cumulative Complaints'!K:K,"<=5",'Cumulative Complaints'!K:K,"<>-1")/(COUNTIF('Cumulative Complaints'!L:L,"2")+COUNTIF('Cumulative Complaints'!L:L,"3")+COUNTIF('Cumulative Complaints'!L:L,"4"))

我一直在这里和其他Excel论坛,并认为也许SUMPRODUCT是要走的路? 根据“开放天数”列(<= 5和<> – 1)的标准,我还没有能够完成这项工作。

在SUM函数中包装COUNTIF或COUNTIFS函数可以使用一个常量数组作为OR citeria。

 =SUM(COUNTIFS('Cumulative Complaints'!K:K, "<>"&-1,'Cumulative Complaints'!K:K, "<="&5,'Cumulative Complaints'!L:L, {2,3,4}))/SUM(COUNTIF('Cumulative Complaints'!L:L, {2,3,4})) 

这不是一个数组公式,也不需要CSE。

试试这个SUMPRODUCT()公式:

 =SUMPRODUCT(('Cumulative Complaints'!K:K<=5)*('Cumulative Complaints'!K:K<>-1)*('Cumulative Complaints'!L:L>=2)*('Cumulative Complaints'!L:L<=4))/SUMPRODUCT(('Cumulative Complaints'!L:L>=2)*('Cumulative Complaints'!L:L<=4)) 

使用SUMPRODUCT时,条件AND被replace为* 。 它要求所有四个条件都为真,返回1; 1 * 1 * 1 * 1 = 1如果有任何错误,它们返回0,所以1 * 1 * 0 * 1 = 0.所以当它遍历行时,它返回一个1或一个0被添加到总和。

我的答案是采取不同的方法。

Excel有一个非常强大的function,称为枢轴表,我认为这可能是一个很好的适合你的问题和其他类似的问题,你可能会面对。

首先,我会在表格中添加几列,如下所示:

 Days Open Month Quarter RecentlyOpened 10 1 1 FALSE 4 1 1 TRUE 6 1 1 FALSE 2 1 1 TRUE 4 2 1 TRUE 2 2 1 TRUE -1 2 1 FALSE 4 3 1 TRUE 6 3 1 FALSE 7 4 2 FALSE 3 4 2 TRUE 
  • Quarter的公式为: =CEILING(B2/3,1)
  • RecentOpened的公式为: =AND(A2<>-1,A2<=5)

其次,select表格,并执行插入>数据透视表。

第三,从字段拖到框,如下所示:

  • 将Quarter拖到ROWS框中
  • 最近打开到FILTERS框
  • 将月份拖到VALUES框中

第四,单击月总和,然后select值字段设置将总和更改为计数。

第五,将RecentOpenedfilter设置为TRUE。

结果是这样的:

在这里输入图像描述

数据透视表通常提供更灵活,更容易阅读和理解的解决scheme,而不是复杂的公式。