count
统计函数三剑客:COUNT()、COUNTIF()、COUNTIFS()详解
一、函数家族概述
1. 核心函数对比表
| 函数 | 语法 | 功能 | 统计内容 | 条件数量 |
|---|---|---|---|---|
| COUNT() | =COUNT(value1, [value2], ...) | 统计数值个数 | 数字、日期、时间 | 无条件 |
| COUNTIF() | =COUNTIF(range, criteria) | 按单条件统计 | 满足条件的单元格 | 单条件 |
| COUNTIFS() | =COUNTIFS(range1, criteria1, ...) | 按多条件统计 | 满足多个条件的单元格 | 多条件 |
2. 重要特性
- 所有函数返回数字类型
- 最多255个参数(COUNT)
- 条件区域大小必须一致
- 支持通配符(* ? ~)
- 忽略错误值
二、详细示例数据表
表1:学生成绩统计表(20条记录)
| 学号 | 姓名 | 班级 | 语文 | 数学 | 英语 | 物理 | 化学 | 是否寄宿 | 是否班干部 |
|---|---|---|---|---|---|---|---|---|---|
| S001 | 张三 | 1班 | 85 | 92 | 78 | 88 | 90 | 是 | 是 |
| S002 | 李四 | 1班 | 78 | 95 | 88 | 75 | 82 | 是 | 否 |
| S003 | 王五 | 2班 | 92 | 88 | 76 | 90 | 85 | 否 | 是 |
| S004 | 赵六 | 2班 | 45 | 65 | 58 | 85 | 72 | 是 | 否 |
| S005 | 孙七 | 3班 | 88 | 96 | 92 | 92 | 95 | 否 | 是 |
| S006 | 周八 | 3班 | 76 | 85 | 79 | 78 | 80 | 是 | 否 |
| S007 | 吴九 | 1班 | 95 | 39 | 94 | 68 | 70 | 否 | 是 |
| S008 | 郑十 | 2班 | 82 | 78 | 85 | 88 | 84 | 是 | 否 |
| S009 | 钱一 | 3班 | 89 | 92 | 87 | 82 | 88 | 否 | 是 |
| S010 | 王一 | 1班 | 73 | 68 | 52 | 76 | 65 | 是 | 否 |
| S011 | 刘二 | 2班 | 84 | 79 | 86 | 89 | 87 | 否 | 否 |
| S012 | 陈三 | 3班 | 39 | 42 | 45 | 92 | 88 | 是 | 是 |
| S013 | 杨四 | 1班 | 91 | 87 | 93 | 77 | 81 | 否 | 否 |
| S014 | 黄五 | 2班 | 67 | 71 | 69 | 84 | 79 | 是 | 是 |
| S015 | 赵七 | 3班 | 98 | 96 | 99 | 85 | 92 | 否 | 是 |
| S016 | 周九 | 1班 | 53 | 56 | 51 | 91 | 86 | 是 | 否 |
| S017 | 吴十 | 2班 | 82 | 88 | 85 | 79 | 83 | 否 | 是 |
| S018 | 郑一 | 3班 | 89 | 92 | 87 | 88 | 90 | 是 | 否 |
| S019 | 王二 | 1班 | 74 | 69 | 72 | 83 | 77 | 否 | 是 |
| S020 | 孙三 | 2班 | 47 | 51 | 49 | 96 | 91 | 是 | 否 |
表2:产品销售记录表(15条记录)
| 订单ID | 产品名称 | 类别 | 销售日期 | 销售数量 | 单价 | 销售金额 | 销售员 | 地区 | 是否退货 |
|---|---|---|---|---|---|---|---|---|---|
| ORD001 | iPhone 15 | 手机 | 2024-01-05 | 2 | 5999 | 11998 | 张三 | 北京 | 否 |
| ORD002 | 华为P60 | 手机 | 2024-01-06 | 1 | 4999 | 4999 | 李四 | 上海 | 否 |
| ORD003 | 小米13 | 手机 | 2024-01-08 | 5 | 3999 | 19995 | 王五 | 广州 | 是 |
| ORD004 | MacBook Pro | 电脑 | 2024-01-10 | 1 | 14999 | 14999 | 张三 | 北京 | 否 |
| ORD005 | 索尼耳机 | 配件 | 2024-01-12 | 10 | 1999 | 19990 | 李四 | 上海 | 否 |
| ORD006 | 三星电视 | 家电 | 2024-01-15 | 2 | 8999 | 17998 | 王五 | 广州 | 否 |
| ORD007 | 华为平板 | 平板 | 2024-01-18 | 3 | 2999 | 8997 | 张三 | 北京 | 是 |
| ORD008 | 戴尔笔记本 | 电脑 | 2024-01-20 | 1 | 7999 | 7999 | 李四 | 上海 | 否 |
| ORD009 | iPhone 15 | 手机 | 2024-01-22 | 1 | 5999 | 5999 | 王五 | 广州 | 否 |
| ORD010 | 华为P60 | 手机 | 2024-01-25 | 2 | 4999 | 9998 | 张三 | 北京 | 否 |
| ORD011 | 小米电视 | 家电 | 2024-01-28 | 1 | 3499 | 3499 | 李四 | 上海 | 否 |
| ORD012 | 苹果手表 | 穿戴 | 2024-01-30 | 3 | 2999 | 8997 | 王五 | 广州 | 是 |
| ORD013 | 联想电脑 | 电脑 | 2024-02-01 | 2 | 5999 | 11998 | 张三 | 北京 | 否 |
| ORD014 | 华为手环 | 穿戴 | 2024-02-03 | 5 | 399 | 1995 | 李四 | 上海 | 否 |
| ORD015 | 三星手机 | 手机 | 2024-02-05 | 1 | 6999 | 6999 | 王五 | 广州 | 否 |
表3:员工信息表(12条记录)
| 工号 | 姓名 | 部门 | 入职日期 | 基本工资 | 绩效等级 | 年龄 | 性别 | 是否已婚 | 籍贯 |
|---|---|---|---|---|---|---|---|---|---|
| E001 | 张明 | 销售部 | 2018-03-15 | 8000 | A | 35 | 男 | 是 | 北京 |
| E002 | 李华 | 技术部 | 2019-07-20 | 10000 | B | 28 | 男 | 否 | 上海 |
| E003 | 王芳 | 人事部 | 2020-01-10 | 7000 | A | 32 | 女 | 是 | 广州 |
| E004 | 赵强 | 财务部 | 2017-05-18 | 9000 | C | 40 | 男 | 是 | 深圳 |
| E005 | 孙丽 | 市场部 | 2021-11-30 | 7500 | B | 26 | 女 | 否 | 杭州 |
| E006 | 周伟 | 销售部 | 2019-04-14 | 8500 | A | 33 | 男 | 是 | 成都 |
| E007 | 吴刚 | 技术部 | 2018-09-12 | 11000 | A | 37 | 男 | 是 | 武汉 |
| E008 | 郑洁 | 人事部 | 2020-08-22 | 7200 | B | 29 | 女 | 否 | 南京 |
| E009 | 钱勇 | 财务部 | 2019-12-05 | 8800 | C | 31 | 男 | 是 | 西安 |
| E010 | 王静 | 市场部 | 2022-01-05 | 6800 | B | 25 | 女 | 否 | 重庆 |
| E011 | 刘洋 | 销售部 | 2020-03-25 | 8200 | A | 30 | 男 | 是 | 天津 |
| E012 | 陈晨 | 技术部 | 2021-06-30 | 9500 | B | 27 | 男 | 否 | 长沙 |
三、COUNT()函数详解
1. 基本语法与参数
=COUNT(value1, [value2], [value3], ...)
2. 实际应用示例
示例1:统计有效成绩数量
在表1的K列(有效成绩数):
=COUNT(D2:H2)
结果:
张三:D2:H2 = 85,92,78,88,90 → 5个数值
如果某科缺考(如赵六数学65是数值,包含在内)
示例2:统计多列数值
统计所有学生的语文和数学成绩总数:
=COUNT(D:D, E:D) // 统计D列和E列
或:
=COUNT(D2:D20, E2:E20)
示例3:统计销售金额条目
在表2的J列(有效销售记录数):
=COUNT(G2:G16) // G列是销售金额
结果:统计所有数值型销售金额 → 15
示例4:统计工资条目
在表3的K列(有工资记录人数):
=COUNT(E2:E13) // E列是基本工资
结果:所有员工都有工资记录 → 12
3. COUNT的局限性
注意:COUNT只统计数值
以下情况不计数:
1. 文本:=COUNT("100") → 0(文本"100")
2. 逻辑值:=COUNT(TRUE) → 0
3. 空单元格:=COUNT("") → 0
4. 错误值:=COUNT(#N/A) → 0
四、COUNTIF()函数详解
1. 基本语法
=COUNTIF(range, criteria)
2. criteria参数详解
| 条件类型 | 写法示例 | 说明 |
|---|---|---|
| 数值条件 | ">60" | 大于60 |
| 文本条件 | "张三" | 等于"张三" |
| 通配符 | "张*" | 以"张"开头 |
| 日期条件 | ">2024-01-01" | 2024年1月1日后 |
| 单元格引用 | ">"&A1 | 大于A1的值 |
3. 实际应用示例
示例5:统计及格人数
在表1统计语文及格人数:
=COUNTIF(D2:D20, ">=60")
结果:统计语文≥60的人数
计算:查看D列,只有赵六45<60,陈三39<60 → 18人及格
示例6:统计班级人数
统计1班人数:
=COUNTIF(C2:C20, "1班")
结果:C列中"1班"的数量 → 6人
示例7:统计寄宿生
统计寄宿学生数:
=COUNTIF(I2:I20, "是") // I列是否寄宿
结果:"是"的数量 → 10人
示例8:统计特定产品销量
在表2统计手机类别订单数:
=COUNTIF(C2:C16, "手机") // C列是类别
结果:类别为"手机"的数量 → 5单
示例9:统计高单价订单
统计单价>5000的订单:
=COUNTIF(F2:F16, ">5000") // F列是单价
结果:单价>5000的数量 → 7单
示例10:使用通配符统计
统计华为产品订单:
=COUNTIF(B2:B16, "华为*") // B列产品名称
结果:产品名以"华为"开头的数量 → 3单
示例11:统计特定日期后订单
统计1月15日后的订单:
=COUNTIF(D2:D16, ">2024-01-15") // D列销售日期
结果:日期>2024-01-15的数量 → 7单
示例12:统计非空单元格
统计有退货记录的订单:
=COUNTIF(I2:I16, "<>") // I列是否退货
结果:非空单元格数量 → 15(所有行都有值)
五、COUNTIFS()函数详解
1. 基本语法
=COUNTIFS(range1, criteria1, [range2, criteria2], ...)
2. 实际应用示例
示例13:多条件统计学生
统计1班且寄宿的学生数:
=COUNTIFS(C2:C20, "1班", I2:I20, "是")
解释:
range1: C2:C20(班级),criteria1: "1班"
range2: I2:I20(是否寄宿),criteria2: "是"
结果:既是1班又寄宿的人数 → 3人
示例14:统计优秀学生
统计数学≥90且英语≥90的学生:
=COUNTIFS(E2:E20, ">=90", F2:F20, ">=90")
结果:数学和英语都≥90的人数 → 4人
示例15:统计特定产品在特定地区
统计北京地区手机订单数:
=COUNTIFS(C2:C16, "手机", H2:H16, "北京")
结果:类别为"手机"且地区为"北京"的数量 → 2单
示例16:统计特定销售员的高金额订单
统计张三销售且金额>10000的订单:
=COUNTIFS(G2:G16, ">10000", H2:H16, "张三")
注意:H列是销售员,但在表2中销售员列是H列
实际应为:
=COUNTIFS(G2:G16, ">10000", 销售员列, "张三")
示例17:统计日期区间订单
统计1月10日到1月20日的订单:
=COUNTIFS(D2:D16, ">=2024-01-10", D2:D16, "<=2024-01-20")
结果:日期在2024-01-10到2024-01-20之间的数量 → 5单
示例18:统计员工信息(多维度)
在表3统计:
销售部已婚男性员工数:
=COUNTIFS(C2:C13, "销售部", H2:H13, "男", I2:I13, "是")
结果:部门=销售部、性别=男、已婚=是 → 3人
示例19:统计年龄和工资范围
统计年龄30-40岁且工资>8000的员工:
=COUNTIFS(G2:G13, ">=30", G2:G13, "<=40", E2:E13, ">8000")
结果:年龄30-40且工资>8000 → 6人
示例20:排除特定条件统计
统计非退货的北京地区订单:
=COUNTIFS(H2:H16, "北京", I2:I16, "<>是")
注意:"<>是"表示不等于"是"
结果:地区=北京且非退货 → 4单
3. COUNTIFS高级技巧
技巧1:动态条件范围
使用单元格引用作为条件:
=COUNTIFS(D2:D20, ">="&K1, D2:D20, "<="&K2)
// K1=开始日期,K2=结束日期
技巧2:处理空值
统计有成绩但非班干部的学生:
=COUNTIFS(D2:H2, "<>", J2:J20, "否")
// "<>"表示非空
技巧3:多条件或关系
统计数学≥90或英语≥90的学生:
=COUNTIFS(E2:E20, ">=90") + COUNTIFS(F2:F20, ">=90") -
COUNTIFS(E2:E20, ">=90", F2:F20, ">=90")
六、综合对比与选择指南
1. 何时使用哪个函数?
| 场景 | 推荐函数 | 示例 |
|---|---|---|
| 统计所有数值 | COUNT | 统计成绩数量 |
| 统计非空单元格 | COUNTA | 统计填写人数 |
| 统计空单元格 | COUNTBLANK | 统计缺考科目 |
| 单条件统计 | COUNTIF | 统计及格人数 |
| 多条件统计 | COUNTIFS | 统计1班及格人数 |
2. 性能考虑
简单统计用COUNT,条件统计用COUNTIF/COUNTIFS
大数据量时,COUNTIFS比多个COUNTIF相加更高效
3. 常见错误与解决
错误1:区域大小不一致
错误:=COUNTIFS(A1:A10, ">0", B1:B9, ">0")
正确:=COUNTIFS(A1:A10, ">0", B1:B10, ">0")
错误2:条件格式错误
错误:=COUNTIF(A1:A10, >60) // 缺少引号
正确:=COUNTIF(A1:A10, ">60")
错误:=COUNTIF(A1:A10, ">A1") // 文本比较
正确:=COUNTIF(A1:A10, ">"&A1)
错误3:通配符冲突
如果要查找真正的"*"号:
=COUNTIF(A1:A10, "~*") // ~是转义符
七、实战综合案例
案例1:学生成绩统计分析系统
需求:统计各种学生数据
1. 总学生数:=COUNTA(B2:B20) // 姓名非空数
2. 各班人数:=COUNTIF(C2:C20, "1班") // 1班人数
3. 及格率:=COUNTIF(D2:D20, ">=60")/COUNT(D2:D20)
4. 优秀生(均分≥85):需要先计算平均分,或用:
=COUNTIFS(D2:D20, ">=85", E2:E20, ">=85", F2:F20, ">=85")
5. 寄宿班干部:=COUNTIFS(I2:I20, "是", J2:J20, "是")
案例2:销售业绩分析报告
生成销售报告:
1. 总订单数:=COUNTA(A2:A16) // 订单ID数
2. 有效订单(非退货):=COUNTIF(I2:I16, "否")
3. 各销售员业绩:
张三:=COUNTIFS(H2:H16, "张三", I2:I16, "否")
李四:=COUNTIFS(H2:H16, "李四", I2:I16, "否")
王五:=COUNTIFS(H2:H16, "王五", I2:I16, "否")
4. 高价值订单(金额>10000):=COUNTIF(G2:G16, ">10000")
5. 手机品类北京销量:=COUNTIFS(C2:C16, "手机", H2:H16, "北京", I2:I16, "否")
案例3:人力资源统计
员工统计:
1. 各部门人数:
销售部:=COUNTIF(C2:C13, "销售部")
技术部:=COUNTIF(C2:C13, "技术部")
人事部:=COUNTIF(C2:C13, "人事部")
2. 各年龄段分布:
20-29岁:=COUNTIFS(G2:G13, ">=20", G2:G13, "<=29")
30-39岁:=COUNTIFS(G2:G13, ">=30", G2:G13, "<=39")
40岁以上:=COUNTIF(G2:G13, ">=40")
3. 绩效分布:
A级:=COUNTIF(F2:F13, "A")
B级:=COUNTIF(F2:F13, "B")
C级:=COUNTIF(F2:F13, "C")
4. 已婚男性员工:=COUNTIFS(H2:H13, "男", I2:I13, "是")
案例4:智能数据监控
数据质量监控:
1. 数据完整率:
=1 - COUNTBLANK(D2:H20)/COUNT(D2:H20) // 成绩完整率
2. 异常数据检测:
成绩异常(<0或>100):=COUNTIF(D2:H20, "<0") + COUNTIF(D2:H20, ">100")
3. 一致性检查:
寄宿但非班干部:=COUNTIFS(I2:I20, "是", J2:J20, "否")
4. 趋势分析:
本月新增:=COUNTIF(D2:D16, ">="&EOMONTH(TODAY(),-1)+1)
八、练习与测试
基础练习
- 统计表1中所有学生的数学成绩数量
- 统计表2中单价在3000-8000之间的订单数
- 统计表3中技术部未婚员工人数
中级练习
- 统计表1中2班数学及格但英语不及格的学生数
- 统计表2中1月份手机品类非退货订单数
- 统计表3中工资在8000-10000且绩效为A或B的员工数
高级练习
- 创建一个动态统计面板,根据选择的班级、科目、分数段统计学生数
- 设计一个销售分析模板,自动统计各销售员、各品类、各地区的销售数据
- 建立一个员工信息仪表盘,实时显示各部门、各年龄段、各绩效等级人数
九、总结与最佳实践
核心要点总结
- COUNT:数数字
- COUNTIF:按条件数
- COUNTIFS:按多条件数
使用建议
- 明确统计目标:先想清楚要统计什么
- 检查数据质量:确保数据格式一致
- 验证统计结果:手动抽查验证公式正确性
- 使用名称管理器:给常用区域定义名称
- 添加注释说明:复杂公式添加说明
记忆口诀
COUNT函数数数字,文本逻辑它不理
COUNTIF加条件,筛选统计真便利
COUNTIFS多条件,复杂查询不再难
区域大小要一致,条件格式别忘记
一句话总结
COUNT家族是Excel的"计数器家族"——COUNT是基础款,COUNTIF是智能款,COUNTIFS是豪华款,满足你从简单到复杂的所有统计需求!
掌握了COUNT、COUNTIF、COUNTIFS这三个函数,你就能轻松应对Excel中90%的统计需求。记住:先明确需求,再选择函数,最后验证结果!
一、COUNT() 函数
用途
统计包含数字的单元格数量
语法
COUNT(value1, [value2], ...)
参数说明
- value1:必需。要计数的第一个参数
- value2, ...:可选。要计数的其他参数,最多可包含255个参数
- 只统计数字:包括正数、负数、百分比、日期、时间、公式结果
- 忽略的内容:文本、逻辑值、空单元格、错误值
示例数据表
| A | B | C | D | E |
|---|---|---|---|---|
| 姓名 | 销售额 | 是否达标 | 日期 | 备注 |
| 张三 | 1500 | TRUE | 2023/1/5 | 优秀 |
| 李四 | FALSE | 需跟进 | ||
| 王五 | 2400 | TRUE | 2023/1/6 | |
| 赵六 | 1800 | 2023/1/7 | 良好 |
示例题目
-
统计销售额列有几个数字
=COUNT(B2:B5)结果:3(李四为空,不计) -
统计日期列有几个数字
=COUNT(D2:D5)结果:3(李四为空,不计) -
多区域统计
=COUNT(B2:B5, D2:D5)结果:6(销售额3个 + 日期3个)
二、COUNTIF() 函数
用途
按单个条件统计单元格数量
语法
COUNTIF(range, criteria)
参数说明
- range:必需。要计数的单元格区域
- criteria:必需。统计条件,可以是:
- 数字:
100 - 文本:
"北京"(必须用双引号) - 表达式:
">100" - 通配符:
"张*"(以张开头的文本) - 单元格引用:
A2
- 数字:
示例数据表
| A | B | C |
|---|---|---|
| 姓名 | 部门 | 销售额 |
| 张三 | 销售部 | 1500 |
| 李四 | 技术部 | 800 |
| 王五 | 销售部 | 2400 |
| 赵六 | 销售部 | 1800 |
| 孙七 | 技术部 | 1200 |
示例题目
-
统计销售部人数
=COUNTIF(B2:B6, "销售部")结果:3 -
统计销售额大于1000的人数
=COUNTIF(C2:C6, ">1000")结果:4(李四800不符合) -
使用通配符统计姓张的人数
=COUNTIF(A2:A6, "张*")结果:1(只有张三) -
统计空白单元格数量
=COUNTIF(A2:A6, "")结果:0(没有空白) -
统计非空白单元格
=COUNTIF(A2:A6, "<>")结果:5
三、COUNTIFS() 函数
用途
按多个条件统计单元格数量(所有条件必须同时满足)
语法
COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
参数说明
- criteria_range1:必需。第一个条件区域
- criteria1:必需。第一个条件
- 后续参数:可选。可添加最多127个条件区域/条件对
- 所有条件必须同时满足(AND关系)
示例数据表
| A | B | C | D |
|---|---|---|---|
| 姓名 | 部门 | 销售额 | 是否达标 |
| 张三 | 销售部 | 1500 | 是 |
| 李四 | 技术部 | 800 | 否 |
| 王五 | 销售部 | 2400 | 是 |
| 赵六 | 销售部 | 1800 | 是 |
| 孙七 | 技术部 | 1200 | 否 |
| 周八 | 销售部 | 900 | 否 |
示例题目
-
统计销售部且达标的人数
=COUNTIFS(B2:B7, "销售部", D2:D7, "是")结果:2(张三、赵六) -
统计销售部且销售额>1000的人数
=COUNTIFS(B2:B7, "销售部", C2:C7, ">1000")结果:3(张三1500、王五2400、赵六1800) -
三个条件:销售部、销售额>1000、达标
=COUNTIFS(B2:B7, "销售部", C2:C7, ">1000", D2:D7, "是")结果:2(张三、赵六) -
统计技术部未达标的人数
=COUNTIFS(B2:B7, "技术部", D2:D7, "否")结果:2(李四、孙七)
五、综合练习题
数据表
| A | B | C | D |
|---|---|---|---|
| 产品 | 类别 | 单价 | 库存 |
| 手机 | 电子产品 | 2999 | 50 |
| 笔记本 | 电子产品 | 6999 | 30 |
| 衬衫 | 服装 | 199 | 100 |
| 裤子 | 服装 | 299 | 80 |
| 耳机 | 电子产品 | 399 | 150 |
| 鞋子 | 服装 | 499 | 60 |
练习题
- 统计总共有多少种产品
- 统计电子产品有多少种
- 统计单价超过500的产品数量
- 统计服装类且库存大于70的产品数量
- 统计电子产品且单价在1000-5000之间的产品数量
参考答案
1. =COUNT(A2:A7) 或 =COUNTA(A2:A7) → 6
2. =COUNTIF(B2:B7, "电子产品") → 3
3. =COUNTIF(C2:C7, ">500") → 2(笔记本、手机)
4. =COUNTIFS(B2:B7, "服装", D2:D7, ">70") → 2(衬衫、裤子)
5. =COUNTIFS(B2:B7, "电子产品", C2:C7, ">=1000", C2:C7, "<=5000") → 1(手机)