新版Excel用=COUNTA(UNIQUE(A2:A100))直接统计不重复值,旧版用=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100))兼容计算,也可用高级筛选人工计数。

Excel里要快速知道一列数据里到底有多少个不重复的值,比如客户姓名、产品编号或地区名称,不能直接用COUNTA硬算——那样会把重复出现的名字全加进去,结果虚高。你得让Excel识别“这个值之前有没有见过”,再只给每个首次出现的值记1次。
新版Excel(365/2021+):一行公式直接出数
这一步操作起来很简单,直接在空白单元格输入公式回车就行。
选中一个空白单元格,输入:=COUNTA(UNIQUE(A2:A100)),其中A2:A100替换成你实际的数据区域。
按Enter,数字立刻出来。UNIQUE函数会自动剔除重复项生成新数组,COUNTA负责数这个数组里有几个非空项。
【注意:如果A2:A100里混有空单元格,UNIQUE会把空值也当作一个“唯一项”计入总数,导致结果偏大】。建议先用筛选或条件格式确认该区域是否连续无空行,或手动缩窄为A2:A98这类明确不含空值的范围。
旧版Excel(2007–2019):用SUMPRODUCT稳住不报错
老版本没有UNIQUE函数,但可以用SUMPRODUCT+COUNTIF组合实现兼容性最强的统计,不用按Ctrl+Shift+Enter,也不怕区域里有文本。
方法一:基础单列统计
在目标单元格输入:=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100)),回车即得结果。
方法二:防空值容错版
若担心A列存在空白单元格引发#DIV/0!错误,改用此公式:=SUMPRODUCT((A2:A100"")/COUNTIF(A2:A100,A2:A100&""))。它自动跳过空单元格,且兼容含文本的数据。
这个公式原理是:对每个非空值,算它在整个区域中出现了几次;用1除以次数,相同值的多个1/n加起来刚好等于1;SUMPRODUCT最后把所有这些“1”加总,就是不重复项个数。
不写公式也能搞定:高级筛选+人工计数
如果你不想碰函数,或者需要同时看到去重后的原始名单,就用Excel自带的高级筛选功能。
第一步:点击数据列任意单元格(如A2)→ 切换到【数据】选项卡 → 点击【高级】;
第二步:勾选“将筛选结果复制到其他位置”和“选择不重复的记录”;
第三步:在“复制到”框中点选一个空白起始单元格(如D2),点击确定;
第四步:去D列粘贴区底部看状态栏——它会实时显示“共×行”;或者在任意空白格输入:=ROWS(D2:D1000)-COUNTBLANK(D2:D1000),回车读数。
这一步不需要记忆函数,适合临时查数或给同事演示。筛选出的名单可直接复制使用,比纯公式更直观。


















