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

在 Excel 中根据条件统计唯一数字值

作者晓阳修改日期

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

doc-count-unique-values-with-criteria-1


在 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.
  • criteria_range:用于匹配您指定条件的单元格区域;
  • criteria:您希望以其为条件的判断条件;
  • range:需要统计唯一值的单元格区域。

请在空白单元格中输入以下公式,并按下 Ctrl + Shift + Enter 组合键获取正确结果,见下图:

=SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))

doc-count-unique-values-with-criteria-2


公式说明:

=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)))

doc-count-unique-values-with-criteria-3


公式说明:

=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)

doc-count-unique-values-with-criteria-4

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 般的便捷体验。