Google Sheets中带多OR数组常量的SUM(COUNTIFS())公式问题
Google Sheets 按月统计特定水果状态数量的解决方案
以下是几个适配Google Sheets特性的可行公式,解决你统计「指定月份下,状态为Eaten/Half Eaten的Apple/Orange数量」的需求:
方案1:FILTER + COUNTA(直观易读)
用FILTER筛选符合所有条件的行,再通过COUNTA统计数量:
=COUNTA(FILTER(H:H, H:H=A2, (I:I="Apple")+(I:I="Orange"), (J:J="Eaten")+(J:J="Half Eaten")))
- 公式里的
+等价于逻辑「或」,只要满足其中一个条件就会被计入统计 - 建议将整列引用(如
H:H)替换成实际数据范围(如H2:H1000),提升计算效率
方案2:SUMPRODUCT(高效统计)
修正你之前的SUMPRODUCT写法,直接用比较运算符生成布尔数组:
=SUMPRODUCT((H:H=A2)*((I:I="Apple")+(I:I="Orange"))*((J:J="Eaten")+(J:J="Half Eaten")))
- 布尔值会自动转换为1(真)或0(假),只有当所有条件都为真时,相乘结果才为1,最终对所有符合条件的行求和
方案3:COUNTIFS + ARRAYFORMULA(适配Excel使用习惯)
调整数组维度,让Google Sheets能正确解析交叉条件:
=SUM(ARRAYFORMULA(COUNTIFS(H:H,A2,I:I,{"Apple","Orange"},J:J,TRANSPOSE({"Eaten","Half Eaten"}))))
- 用
TRANSPOSE将状态条件的纵向数组转为横向,和水果条件的纵向数组交叉,生成4种条件组合的统计结果,最后求和
你之前的公式无效原因
- 第一个COUNTIFS数组写法:Excel会自动处理纵向+横向数组的交叉组合,但Google Sheets需要显式用
TRANSPOSE调整维度,或通过ARRAYFORMULA扩展计算 - 第二个SUMPRODUCT里的
MATCH(H:H,A2,0):MATCH返回的是匹配位置(非布尔值),无法直接用于逻辑判断,应替换为H:H=A2生成布尔数组来验证月份匹配
内容的提问来源于stack exchange,提问作者qazamy
相关产品推荐
相关产品推荐

