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

当C列值等于B4时统计G列非空单元格,公式返回#SPILL错误求助

解决Excel统计需求:按条件统计指定列非空单元格数量

问题描述

需要统计C列值等于B4单元格值的行中,G列非空单元格的数量。尝试使用公式:
=IF($C$2:$C$65365=B4, COUNTA($G$2:$G$65365))
但返回#SPILL!错误。

相关数据示例:

BCDEFG
10/26/2022The QuarryHunter1:39ChestThe Dragon's Shadow
10/26/2022The QuarryHunter1:57Chest
10/30/2022PerditionTitan3:30ChestActium War Rig
10/30/2022PerditionTitan3:06Chest

错误原因

原公式存在两个核心问题:

  1. IF($C$2:$C$65365=B4)会生成一个由TRUE/FALSE组成的数组,每个元素对应C列的一行是否匹配B4的值;
  2. 后续的COUNTA($G$2:$G$65365)是统计整个G列的非空单元格总数,而非仅匹配行对应的G列非空数。

这会导致公式返回一个由多个相同数值组成的数组,当Excel无法将该数组溢出到下方单元格时(比如下方已有数据),就会触发#SPILL!错误,同时公式本身也无法实现“按条件统计对应G列非空数”的需求。

正确公式

方法1:使用COUNTIFS(适用于Excel 365/2021及以上版本)

直接通过多条件统计实现需求:
=COUNTIFS($C$2:$C$65365, B4, $G$2:$G$65365, "<>")

  • 第一个条件:C列的值等于B4;
  • 第二个条件:G列的值不为空。

方法2:使用SUMPRODUCT(适用于所有Excel版本)

通过数组运算聚合统计结果:
=SUMPRODUCT(--($C$2:$C$65365=B4), --($G$2:$G$65365<>""))

  • --($C$2:$C$65365=B4)将TRUE/FALSE转换为1/0;
  • --($G$2:$G$65365<>"")将G列非空的行转换为1/0;
  • SUMPRODUCT会将两个数组对应元素相乘后求和,最终得到符合双条件的行数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:35:25