跳至主要内容

在Excel中统计范围内的唯一值数量

Author: Siluvia Last Modified: 2025-07-31

本教程解释了如何使用指定公式在Excel列表中仅统计重复项中的唯一值数量。

doc-count-unique-values-in-range-1


如何在Excel的一列中统计唯一值?

假设您有一个如下截图所示的产品表,要统计“产品”列中的唯一值,您可以应用以下公式之一。

doc-count-unique-values-in-range-2

通用公式

=SUMPRODUCT(--(FREQUENCY(MATCH(范围,范围,0),ROW(范围)-ROW(范围.首单元格)+1)>0))

=SUMPRODUCT(1/COUNTIF(范围,范围))

参数

范围:您希望仅统计唯一值的单元格范围;
范围.首单元格:范围的第一个单元格。

如何使用这些公式?

1. 选择一个空白单元格以输出结果。

2. 将以下公式之一输入所选单元格并按Enter键。

=SUMPRODUCT(--(FREQUENCY(MATCH(D3:D16,D3:D16,0),ROW(D3:D16)-ROW(D3)+1)>0))

=SUMPRODUCT(1/COUNTIF(D3:D16,D3:D16))

doc-count-unique-values-in-range-3

注意事项:

1) 在这些公式中,D3:D16是您希望统计唯一值的单元格范围,而D3是该范围的第一个单元格。您可以根据需要更改它们。
2) 如果指定范围内存在空单元格,第一个公式将返回#N/A错误,第二个公式将返回#DIV/0错误。

公式解释

=SUMPRODUCT(--(FREQUENCY(MATCH(D3:D16,D3:D16,0),ROW(D3:D16)-ROW(D3)+1)>0))

  • MATCH(D3:D16,D3:D16,0):MATCH函数获取范围D3:D16中每个项目的位置,如果值在数据范围内多次出现,它将返回相同的位置以获得类似{1;2;3;2;1;1;3;2;1;1;1;2;3;2}的数组。
  • ROW(D3:D16)-ROW(D3)+1这里的ROW函数返回引用D3:D16和D3的行号,您将得到{3;4;5;6;7;8;9;10;11;12;13;14;15;16}-{3}+1。
  • 数组中的每个数字减去数字3然后加1,最终返回{1;2;3;4;5;6;7;8;9;10;11;12;13;14}。
  • FREQUENCY({1;2;3;2;1;1;3;2;1;1;1;2;3;2},{1;2;3;4;5;6;7;8;9;10;11;12;13;14}):频率函数计算每个数字在数据数组中出现的频率,并返回类似{6;5;3;0;0;0;0;0;0;0;0;0;0;0}的数字数组。
  • SUMPRODUCT(--{6;5;3;0;0;0;0;0;0;0;0;0;0;0}>0):
{6;5;3;0;0;0;0;0;0;0;0;0;0;0}>0:数组中的每个数字与0比较,如果大于0则返回TRUE,否则返回FALSE。您将得到类似{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}的TRUE FALSE数组;
--{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}:这两个减号将“TRUE”转换为1,“FALSE”转换为0。这里您将得到一个新的数组{1;1;1;0;0;0;0;0;0;0;0;0;0;0}。
SUMPRODUCT({1;1;1;0;0;0;0;0;0;0;0;0;0;0}):SUMPRODUCT函数对数组中的所有数字求和并返回最终结果为3。

=SUMPRODUCT(1/COUNTIF(D3:D16,D3:D16))

  • COUNTIF(D3:D16,D3:D16):COUNTIF函数统计每个值在范围D3:D16中出现的次数,使用所有相同的值作为条件。它返回类似{6;5;3;5;6;6;3;5;6;6;6;5;3;5}的数组,这意味着笔记本电脑出现6次,投影仪出现5次,显示器出现3次。
  • 1/{6;5;3;5;6;6;3;5;6;6;6;5;3;5}数组中的每个数字除以1,并返回新的数组{0.166666666666667;0.2;0.333333333333333;0.2;0.166666666666667;0.166666666666667;0.2;0.333333333333333;0.166666666666667;0.166666666666667;0.166666666666667;0.333333333333333;0.2;0.333333333333333;}。
  • SUMPRODUCT({0.166666666666667;0.2;0.333333333333333;0.2;0.166666666666667;0.166666666666667;


    0.2;0.333333333333333;0.166666666666667;0.166666666666667;0.166666666666667;0.333333333333333;0.2;


    0.333333333333333;})
    :然后SUMPRODUCT函数对数组中的所有数字求和并返回最终结果为3。

相关功能

Excel SUMPRODUCT 函数 Excel SUMPRODUCT 函数可用于将两列或多列或数组相乘,然后获取乘积的总和。

Excel FREQUENCY 函数 Excel FREQUENCY 函数计算值在值范围内出现的频率,然后返回垂直数组的数字。

Excel MATCH 函数 Excel MATCH 函数在一系列单元格中搜索特定值,并返回该值的相对位置。

Excel ROW 函数 Excel ROW 函数返回引用的行号。

Excel COUNTIF 函数 Excel COUNTIF 函数用于统计满足某一条件的单元格数量。


相关公式

统计筛选列表中的可见行数 本教程解释了如何使用SUBTOTAL函数在Excel中统计筛选列表中的可见行数。

基于条件统计唯一值 本分步指南帮助基于另一列中的指定条件统计唯一值。

带条件统计可见行 本教程提供详细步骤,帮助您带条件统计可见行。

在非连续范围内使用COUNTIF 本分步指南演示了如何在Excel中的非连续范围内使用countif函数。


最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于智能执行革新数据分析:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  无需公式四舍五入 ...
超级 VLookup多条件  |  多值  |  跨多表  |  模糊查找...
高级下拉列表简易下拉列表  |  级联下拉列表  |  多选下拉列表...
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  比较列以 选择相同和不同单元格 ...
特色功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿与工作表管理器 | 资源库(自动文本)  |  日期提取  |  合并工作表  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊筛选(筛选粗体/斜体/删除线...) ...
排名前 15 的工具集12 个文本工具添加文本删除特定字符 ...)  |  50+ 种图表 类型甘特图 ...)  |  40+ 实用 公式基于生日计算年龄 ...)  |  19 个插入工具插入二维码从路径插入图片 ...)  |  12 个转换工具小写金额转大写汇率转换 ...)  |  7 个合并和拆分工具高级合并行拆分 Excel 单元格 ...)  |  ... 更多功能
使用您偏好的语言来操作 Kutools - 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

Kutools for Excel 拥有超过 300 项功能,确保您所需的一切都仅需一键之遥...


Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读和编辑

  • 一秒内在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的生产力可提升 50%。
  • 为 Office(包括 Excel)带来高效标签页,就像 Chrome、Edge 和 Firefox 一样。