[英]Excel 2013 complex countif formula
我有这样的源表设置:
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
等等
我正在尝试建立一个公式,根据以下条件对行进行计数:
Days Open列<= 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
是SUMPRODUCT
的方法? 考虑到“开放日”列(<= 5和<>-1)所需的条件,我一直无法使它正常工作。
尝试以下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
被*
代替。 它要求所有四个条件都为True才能返回1;否则,返回0。 1 * 1 * 1 * 1 = 1,如果任何一个为假,它们将返回0,所以1 * 1 * 0 * 1 =0。因此,在遍历行时,将返回1或0与总和相加。
我的答案是采取不同的方法。
Excel具有一个非常强大的功能,称为“数据透视表”,我认为它可能非常适合您的问题以及您可能会遇到的其他类似问题。
首先,我将几列添加到您的表中,如下所示:
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
=CEILING(B2/3,1)
=AND(A2<>-1,A2<=5)
其次,选择表,然后执行“插入”>“数据透视表”。
第三,从字段拖到框,如下所示:
第四,单击“每月总和”,然后选择“值字段设置”以将“总和”更改为“计数”。
第五,将最近打开的过滤器设置为TRUE。
结果是这样的:
数据透视表通常提供比复杂公式更灵活,更易于阅读和理解的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.