当C列值等于B4时统计G列非空单元格,公式返回#SPILL错误求助
解决Excel统计需求:按条件统计指定列非空单元格数量
问题描述
需要统计C列值等于B4单元格值的行中,G列非空单元格的数量。尝试使用公式:=IF($C$2:$C$65365=B4, COUNTA($G$2:$G$65365))
但返回#SPILL!错误。
相关数据示例:
| B | C | D | E | F | G | |
|---|---|---|---|---|---|---|
| 10/26/2022 | The Quarry | Hunter | 1:39 | Chest | The Dragon's Shadow | |
| 10/26/2022 | The Quarry | Hunter | 1:57 | Chest | ||
| 10/30/2022 | Perdition | Titan | 3:30 | Chest | Actium War Rig | |
| 10/30/2022 | Perdition | Titan | 3:06 | Chest |
错误原因
原公式存在两个核心问题:
IF($C$2:$C$65365=B4)会生成一个由TRUE/FALSE组成的数组,每个元素对应C列的一行是否匹配B4的值;- 后续的
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
相关产品推荐
相关产品推荐

