KutoolsforOffice — 一套方案,五大工具。事半功倍。

统计区域中唯一值的个数在 Excel 区域中

作者Siluvia修改日期

本教程将为您介绍如何在 Excel 列表中通过指定公式,仅统计唯一值,轻松剔除重复项。

doc-统计区间唯一值-1


如何统计 Excel 某一列指定区域内唯一值的数量?

假如您拥有如下截图所示的产品表,若只需统计产品列中的唯一值,可直接使用以下任一公式。

doc-统计区间唯一值-2

通用公式

=SUMPRODUCT(--(FREQUENCY(MATCH(range,range,0),ROW(range)-ROW(range.firstcell)+1)>0))

=SUMPRODUCT(1/COUNTIF(range,range))

参数

区域:需要统计唯一值的单元格区域;
区域.首格:区域的第一个单元格。

如何使用这些公式?

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-统计区间唯一值-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}):FREQUENCY 函数可统计数据数组中每个数字出现的频率,并返回如下数组:{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/FALSE 数组:{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;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},其中 Laptop 出现 6 次,Projector 出现 5 次,Display 出现 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 函数可用于统计符合指定条件的单元格数量。


相关公式

统计筛选列表中可见行数
本教程将为您详细讲解如何在 Excel 中利用 SUBTOTAL 函数统计筛选列表中的可见行数,轻松提升工作效率。

按条件统计统计区域中唯一值的个数
本分步指南将帮助您根据另一列指定的条件,仅统计唯一值。

按条件统计可见行
本教程将为您详细讲解如何根据条件统计可见行数,助您轻松提升工作效率。

对非连续区域使用 COUNTIF
本分步指南将为您演示如何在 Excel 中对非连续区域使用 COUNTIF 函数。


这款最佳办公效率工具

Kutools for Excel —— 助您脱颖而出

🤖KUTOOLS AI 助手:基于数据分析的变革创新智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮显示或标记重复项  |  删除空白行  |  合并列或单元格且不丢失数据  |  不使用公式的四舍五入……
超级 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 般的便捷体验。