在 Excel 中根据条件统计唯一数字值
在 Excel 工作表中,您可能会遇到需要根据特定条件统计唯一数字值数量的情况。例如,如何统计报告中产品“T-shirt”的唯一数量值,如下图所示?本文将为您介绍几种在 Excel 中实现此任务的公式方法。

在 Excel 2019、2016 及更早版本中,根据条件统计唯一数字值
在 Excel 2019 及更早版本中,您可以结合 SUM、FREQUENCY 和 IF 函数,根据条件创建用于统计区域中唯一值的个数的公式,通用语法如下:
{=SUM(--(FREQUENCY(IF(criteria_range=criteria,range),range)>0))}
Array formula, should press Ctrl + Shift + Enter keys together.
Array formula, should press Ctrl + Shift + Enter keys together.
- criteria_range:用于匹配您指定条件的单元格区域;
- criteria:您希望以其为条件的判断条件;
- range:需要统计唯一值的单元格区域。
请在空白单元格中输入以下公式,并按下 Ctrl + Shift + Enter 组合键获取正确结果,见下图:
=SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))

公式说明:
=SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))
- IF(A2:A12=E2,C2:C12):当 A 列产品为“T-shirt”时,此 IF 函数会返回 C 列中的对应数值,结果为如下数组:{FALSE;300;500;FALSE;400;FALSE;300;FALSE;FALSE;FALSE;350}。
- FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)= FREQUENCY({FALSE;300;500;FALSE;400;FALSE;300;FALSE;FALSE;FALSE;350},{200;300;500;350;400;450;300;550;200;260;350}):FREQUENCY 函数可统计数组列表中每个数字的出现次数,并返回如下结果:{0;2;1;1;1;0;0;0;0;0;0;0}。
- --(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0)=--({0;2;1;1;1;0;0;0;0;0;0;0}>0):判断数组中每个值是否大于 0,结果为:{FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}。接着,双负号会将 TRUE 和 FALSE 转换为 1 和 0,最终返回的数组为:{0;1;1;1;1;0;0;0;0;0;0;0}。
- SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))=SUM({0;1;1;1;1;0;0;0;0;0;0;0}):最后,使用 SUM 函数对这些值进行求和,最终得出总数:4.
提示:
如果您需要基于多个条件统计唯一值,只需在公式中用 * 字符添加其他条件即可:
=SUM(--(FREQUENCY(IF((criteria,_range 1=criteria 1)* (criteria,_range 2=criteria 2)*…,range),range)>0))
在 Excel 365 中根据条件统计唯一数字值
在 Excel 365 中,可通过 ROWS、UNIQUE 和 FILTER 函数组合,根据条件统计唯一数字值,通用语法如下:
=ROWS(UNIQUE(FILTER(range,criteria_range=criteria)))
- range:包含唯一值需要统计的单元格区域。
- criteria_range:用于匹配您指定条件的单元格区域;
- criteria:您希望以其为条件的判断条件;
请复制或输入以下公式到单元格,然后按下 Enter 键返回结果,见下图:
=ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))

公式说明:
=ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))
- A2:A12=E2:该表达式用于检测 E2 单元格的值是否出现在 A2:A12 区域,并返回如下结果:{FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}。
- FILTER(C2:C12,A2:A12=E2):FREQUENCY 函数可用于统计数组列表中每个数字的出现次数,并返回如下结果:{0;2;1;1;1;0;0;0;0;0;0;0}。
- UNIQUE(FILTER(C2:C12,A2:A12=E2))=UNIQUE({300;500;400;300;350}):这里,UNIQUE 函数可从列表数组中提取唯一值,最终结果为:{300;500;400;350}。
- ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))=ROWS({300;500;400;350}):ROWS 函数可根据指定单元格区域或数组返回行数,结果为:4.
提示:
1. 如果匹配值在数据区域中不存在,将返回错误值。如需将错误值替换为 0,请使用以下公式:
=IFERROR(ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2))), 0)

2. 如需基于多个条件统计唯一值,只需在公式中用 * 符号添加其他条件:
=ROWS(UNIQUE(FILTER(range,(criteria_range 1=criteria 1)* (criteria_range 2=criteria 2)*…)))
相关函数介绍:
- SUM:
- Excel 中的 SUM 函数可返回所选数值的总和。
- FREQUENCY:
- FREQUENCY 函数用于统计指定区间内数值出现的次数,并返回一个垂直排列的数字数组。
- ROWS:
- ROWS 函数可返回指定引用或数组中的行数。
- UNIQUE:
- UNIQUE 函数可返回某个列表或区域中的唯一值列表。
- FILTER:
- FILTER 函数能够根据您设定的条件,筛选出指定的数据区域。
更多相关文章:
- 统计列中唯一的数字或日期
- 假设您有一个包含重复数字的列表,现在希望统计列表中唯一值或仅出现一次的数值的数量,如下图所示。本文将为您介绍几种在 Excel 中快速高效完成此任务的实用公式。
- 统计两列之间全部匹配项/重复值
- 比较两列数据并统计所有匹配项或重复值,是我们经常会遇到的任务。例如,假设您有两列姓名,其中部分名字同时出现在第一列和第二列。现在,您希望统计这两列中所有匹配的名字(即匹配项可能出现在任意位置)。如下图所示,本教程将为您介绍几种可在 Excel 中实现这一目标的公式。
- 统计等于多个值的单元格数
- 假设 A 列中有一份产品清单,现在,您希望统计 C4:C6 区域内指定产品“Apple”、“Grape”和“Lemon”在 A 列中的总数量,如下图所示。通常情况下,Excel 的 COUNTIF 和 COUNTIFS 函数无法满足这一需求。本文将为您介绍如何通过 SUMPRODUCT 与 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 般的便捷体验。