You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用COUNTIF与FILTER函数统计输出数组的问题求助

解决方案

方法1:直接用COUNTIFS(最推荐)

不需要嵌套复杂的FILTER,COUNTIFS原生支持多条件计数,自动处理无匹配的情况:

=COUNTIFS(Input!$D$3:$D$95, Nurses!A2, Input!$E$3:$E$95, "E")
  • 逻辑:同时匹配Input表D列的护士姓名(对应Nurses!A2)和E列的"E"班次,直接返回符合条件的记录数,无匹配时自动返回0,完全解决错误计数问题。

方法2:FILTER + ROWS + IFERROR(保留FILTER逻辑)

如果一定要用FILTER,简化嵌套逻辑,用ROWS统计筛选结果的行数,IFERROR捕获无匹配的错误:

=IFERROR(ROWS(FILTER(Input!$E$3:$E$95, (Input!$D$3:$D$95=Nurses!A2)*(Input!$E$3:$E$95="E"))), 0)
  • 逻辑:直接筛选Input表E列中符合护士姓名和E班次的单元格,ROWS统计筛选出的行数;如果FILTER返回错误(无匹配),IFERROR将结果转为0,避免COUNTA把错误值计为1的问题。

方法3:SUMPRODUCT多条件计数

适合旧版Excel(不支持FILTER/COUNTIFS的版本):

=SUMPRODUCT((Input!$D$3:$D$95=Nurses!A2)*(Input!$E$3:$E$95="E")*1)
  • 逻辑:两个条件判断生成布尔数组(TRUE/FALSE),乘1转为数字1/0,SUMPRODUCT对数组求和,得到符合条件的记录数,无匹配时返回0。

原问题原因说明

  • COUNTA(FILTER(...))得到1的原因:FILTER返回错误值时,COUNTA会把单个错误值当作1个非空元素计数;
  • COUNTIF(FILTER(...), "E")报错的原因:部分Excel版本中COUNTIF的第一个参数不支持FILTER返回的动态数组;
  • 之前的IFERROR组合返回数组的原因:公式重复调用FILTER导致返回数组结果,而非单个数值。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:50:02