COUNTIF 怎么用?数个数这件事,它比你想的能干的更多

2026-10-21 5 次浏览 Excel 函数
COUNTIF 看起来只是"数个数",其实能做去重计数、查重、判断是否录入、排名。这篇用一张员工名单,把 COUNTIF 的六种用法一次讲完。
COUNTIF(条件区域, 条件)
用途数一数在某个区域里,满足条件的有几个。

这是 SUMIF 的孪生兄弟。 还没学过 SUMIF 的话先看 SUMIF 怎么用,两篇一起吃,五分钟搞定。

参数结构几乎一样,只是少了一个"求和区域"——因为它的结果本来就是个数字(个数),不需要再去别处取数。

所以如果你已经会 SUMIF,这篇你可以用五分钟看完。

先看表:公司员工名单

姓名性别部门学历
张三男技术部本科
李四男市场部本科
王五男技术部硕士
赵六女财务部本科
麻七女技术部大专
张三男技术部本科

HR 会问的问题:男员工几个?技术部几个?本科以上几个?有没有重名?

全是 COUNTIF。

关键如果你连「先学哪个函数」都还没想好,建议从 Excel 最值得先学的 10 个函数 开始,那里按使用频率排了顺序。

用法一:数"等于某个值"的

男员工人数:

=COUNTIF(B2:B7, "男")

技术部人数:

=COUNTIF(C2:C7, "技术部")

结构和 SUMIF 完全一样:在哪儿数 + 数什么。

用法二:数"大于/小于"的

这个用不了几次,但要用的时候很救命。比如数"销售额超过 30 的":

=COUNTIF(D2:D7, ">30")

和 SUMIF 一样,符号必须在引号里。

常用的几个:

想数什么写法
大于 30`">30"`
大于等于 30`">=30"`
小于 100`"<100"`
不等于"未完成"`"<>未完成"`
空白单元格`""`
非空白`"<>"`
关键最后两个特别有用:`""` 数的是"空着的格子有几个"(比如还没填结果的),`"<>"` 数的是"填了东西的有几个"。

用法三:条件放在单元格里

=COUNTIF(C2:C7, F1)

F1 里写"技术部",结果就变。同样的规矩:引用不加引号。

带符号就拼接:

=COUNTIF(D2:D7, ">"&F1)

用法四:查重(这个最实用)

判断某个名字有没有重复出现:

=COUNTIF($A$2:$A$7, A2)

结果是 1 表示只有一次,2 表示重复了。往下拖,重复的都会显示 2 以上。

再加上 IF,直接标出来:

=IF(COUNTIF($A$2:$A$7, A2)>1, "重复", "")
关键注意 `$A$2:$A$7` 必须加 `$`。因为你要始终在整个名单里找,而不是随着拖动缩小范围。这一条是查重公式的关键。

用法五:判断"是否已录入"

做数据录入的时候,想立刻知道"这个人是不是已经填过了":

=IF(COUNTIF($A$2:$A$7, A2)>0, "已录入", "")

因为 COUNTIF 结果大于 0 就说明存在。这个写法在名单核对、报名表查漏时特别好用。

关键为什么用 `>0` 而不是 `>1`:如果你在录入时就检查(当前格还没算进去),`>0` 更合适。如果是事后查重,用 `>1`。

用法六:数"不重复的有几个"

这个稍微绕,但很值得学。

技术部有几个不同的学历?

=SUMPRODUCT((C2:C7="技术部")*(1/COUNTIF(D2:D7, D2:D7)))

思路拆解:

  1. `COUNTIF(D2:D7, D2:D7)` —— 每个学历在这一列出现了几次
  2. `1/` 这个结果 —— 出现 3 次的变成 1/3,出现 1 次的变成 1
  3. 加起来 —— 3 个 1/3 正好等于 1,也就是"算一次"
关键这是经典的去重计数套路。它有个前提:区域内不能有空白单元格(会除以 0 报错)。如果有空白,改用 `SUMPRODUCT((区域<>"")/COUNTIF(区域,区域&""))`。

COUNTIF 的局限,得说清楚

COUNTIF 一次只能一个条件。 要"技术部 + 本科"这样两个条件同时满足,得用 COUNTIFS:

=COUNTIFS(C2:C7, "技术部", D2:D7, "本科")

COUNTIFS 的参数顺序是"成对出现":区域1、条件1、区域2、条件2……

关键注意:COUNTIFS 没有"求和区域"这个概念,所以不存在 SUMIFS 那种顺序反转的坑。这一点比 SUMIF/SUMIFS 那对友好。

六个用法速查

想做什么公式
数男员工`=COUNTIF(B:B,"男")`
数大于 30 的`=COUNTIF(D:D,">30")`
条件在单元格`=COUNTIF(C:C,F1)`
查重`=COUNTIF($A$2:$A$7,A2)`
判断是否已录入`=IF(COUNTIF($A$2:$A$7,A2)>0,"已录入","")`
多条件计数`=COUNTIFS(区域1,条件1,区域2,条件2)`

一句话总结

COUNTIF 就是"在某一列里数一数符合条件的有几个"。条件带符号放引号,条件在格子别加引号,查重记得区域要按 F4 锁住。
关键配合着看:SUMIF 那篇讲透了"条件怎么写",这篇就不再重复。两个函数共用同一套条件语法,学会一个,另一个白送。

评论 0

还没有评论,来说第一句吧。

发表评论

提交后需审核通过才会显示。

对作品感兴趣?

欢迎交流使用体验、功能建议或技术问题,看到消息我会尽快回复。