将Countif添加到Excel中的数组公式(小计)

时间:2018-07-25 07:07:44

标签: arrays excel countif array-formulas subtotal

我是数组公式的新手,并且注意到SUBTOTAL包含许多函数,但它不具有COUNTIF(仅COUNTCOUNTA)。

我试图弄清楚如何将类似COUNTIF的功能集成到数组公式中。

我有一个矩阵,其中的一小部分看起来像:

A   B   C   D   E
48  53  46  64  66
48      66  89
40  38  42  49  44

37  33  35  39  41

由于@Tom Shape in this post的帮助,我(他)能够对矩阵中每行的总和求平均,只要它具有完整的数据即可(因此,上例中的第2行和第4行将不包括在内)。

现在,我想计算包含完整数据的行数(因此,将忽略第2行和第4行),其中包括至少一个超过给定阈值的值(例如45)。

在当前示例中,结果将为2,因为行1的5/5值> 45,行3的1值>45。行5的值<45,行2和3的部分或全部缺失数据。

我最近发现了SUMPRODUCT函数,并认为SUMPRODUCT(--(A1:E1 >= 45可能有用,但是我不确定如何将其集成到Tom Sharpe's elegant code中,例如

=AVERAGE(IF(SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1)))=COLUMNS(A1:E1),SUBTOTAL(9,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1))),""))

请记住,我不再寻找平均值:我想过滤行中是否有完整数据,如果有,我要对至少包含1个条目> 45的行进行计数。

1 个答案:

答案 0 :(得分:1)

尝试以下方法。输入作为数组公式。

=COUNT(IF(SUBTOTAL(4,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1)))>45,IF(SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1)))=COLUMNS(A1:E1),SUBTOTAL(9,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1))))))

数据

Formula