如何用Excel COUNTIF类函数按代码计数并按右侧数值折算?
解决方法
你可以用SUMPRODUCT或数组版SUM函数实现这个折算计数需求,以下是具体公式和说明:
假设条件
- 代码列是A列,数值列是B列
- 要统计的目标代码放在单元格
D2中
公式1:SUMPRODUCT(推荐,无需数组快捷键)
=SUMPRODUCT((A:A=D2)*IF(B:B=0.5,1,MAX(B:B,1)))
公式逻辑
(A:A=D2):筛选出所有匹配目标代码的行,符合条件返回1,否则返回0IF(B:B=0.5,1,MAX(B:B,1)):对每行数值做折算处理:- 数值为0.5时计1
- 数值大于1时取实际值
- 其他情况(如数值=1)计1(匹配普通COUNTIF的基础计数逻辑)
SUMPRODUCT将筛选结果与折算值相乘后求和,得到最终统计数
公式2:数组版SUM(旧版Excel适用)
如果使用Excel 2019及更早版本,需要用数组公式:
=SUM(IF(A:A=D2,IF(B:B=0.5,1,IF(B:B>1,B:B,1)),0))
输入完成后需按Ctrl+Shift+Enter触发数组计算(Excel 365/2021版本直接回车即可)
示例验证
针对你提到的代码SNLS-UBT:
- 普通COUNTIF返回5(共5条记录)
- 假设其中1条数值为3,另外4条为0.5
- 代入公式计算:
4*1 + 3 = 7,与你预期的结果一致
内容的提问来源于stack exchange,提问作者rohannair
相关产品推荐
相关产品推荐

