根据 Excel 中的条件计算唯一数值
在 Excel 工作表中,您可能会遇到根据特定条件计算唯一数值数量的问题。 例如,如何从报告中计算产品“T 恤”的唯一数量值,如下图所示? 在本文中,我将展示一些在 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 恤”,则此 IF 函数返回 C 列中的值,结果是这样的数组:{FALSE;300;500;FALSE;400;FALSE;300;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}):FREQUENCE函数用于对数组列表中的每个数值进行计数,并返回结果为:{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,_range1=criteria1)* (criteria,_range2=criteria2)*…,range),range)>0))
根据 Excel 365 中的条件计算唯一数值
在 Excel 365 中,ROWS、UNIQUE 和 FILTER 函数的组合可以帮助根据条件计算唯一数值,通用语法是:
=ROWS(UNIQUE(FILTER(range,criteria_range=criteria)))
- range:要计数的具有唯一值的单元格的范围。
- criteria_range:与您指定的条件相匹配的单元格范围;
- criteria:您要基于的唯一值计数条件;
请将以下公式复制或输入到单元格中,然后按 输入 返回结果的关键,请参见屏幕截图:
=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):FREQUENCE函数用于对数组列表中的每个数值进行计数,并返回结果为:{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_range1=criteria1)* (criteria_range2=criteria2)*…)))
使用的相对功能:
- 和:
- Excel SUM 函数返回提供的值的总和。
- 频率:
- FREQUENCY 函数计算值在一个值范围内出现的频率,然后返回一个垂直的数字数组。
- 行:
- ROWS 函数返回给定引用或数组中的行数。
- 独特的:
- UNIQUE 函数返回列表或范围中的唯一值列表。
- 过滤:
- FILTER 功能有助于根据您定义的条件过滤一系列数据。
更多文章:
- 计算列中的唯一数值或日期
- 假设您有一个包含一些重复项的数字列表,现在,您想要计算唯一值的数量,或者这些值在列表中只出现一次,如下面的屏幕截图所示。 在本文中,我们将讨论在 Excel 中快速轻松地解决此任务的一些有用公式。
- 计算两列之间的所有匹配/重复项
- 比较两列数据并计算两列中的所有匹配项或重复项可能是我们大多数人的常见任务。 例如,您有两列名称,有些名称同时出现在第一列和第二列中,现在,您想要计算两列之间所有匹配的名称(位于两列内任何位置的匹配项),如下图所示,本教程将介绍一些在 Excel 中实现这一目标的公式。
- 计数单元格数等于多个值之一
- 假设,我在 A 列中有一个产品列表,现在,我想从 A 列中获取列在 C4:C6 范围内的特定产品 Apple、Grape 和 Lemon 的总数,如下图所示。 通常,在 Excel 中,简单的 COUNTIF 和 COUNTIFS 函数在这种情况下不起作用。 这篇文章,我将谈谈如何通过 SUMPRODUCT 和 COUNTIF 函数的组合快速轻松地解决这个工作。
最佳办公效率工具
Kutools for Excel-帮助您从人群中脱颖而出
🤖 | Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行 | 生成代码 | 创建自定义公式 | 分析数据并生成图表 | 调用 Kutools 函数... |
热门特色: 查找、突出显示或识别重复项 | 删除空白行 | 合并列或单元格而不丢失数据 | 不使用公式进行四舍五入 ... | |
超级VLookup: 多重标准 | 多重价值 | 跨多页 | 模糊查询... | |
副词。 下拉列表: 简易下拉列表 | 依赖下拉列表 | 多选下拉列表... | |
列管理器: 添加特定数量的列 | 移动列 | 切换隐藏列的可见性状态 | 将列与 选择相同和不同的单元格 ... | |
特色功能: 网格焦点 | 设计图 | 大方程式酒吧 | 工作簿和工作表管理器 | 资源库 (自动文本) | 日期选择器 | 合并工作表 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊过滤器 (过滤粗体/斜体/删除线...)... | |
前 15 个工具集: 12 文本 工具 (添加文本, 删除字符 ...) | 50+ 图表 类型 (甘特图 ...) | 40+ 实用 公式 (根据生日计算年龄 ...) | 19 插入 工具 (插入二维码, 从路径插入图片 ...) | 12 转化 工具 (小写金额转大写, 货币兑换 ...) | 7 合并与拆分 工具 (高级组合行, 拆分 Excel 单元格 ...) | ... 和更多 |
Kutools for Excel 拥有超过 300 个功能, 确保只需点击一下即可获得您所需要的...
Office 选项卡 - 在 Microsoft Office(包括 Excel)中启用选项卡式阅读和编辑
- 一秒钟即可在数十个打开的文档之间切换!
- 每天为您减少数百次鼠标单击,告别鼠标手。
- 查看和编辑多个文档时,可将您的工作效率提高50%。
- 为 Office(包括 Excel)带来高效的选项卡,就像 Chrome、Edge 和 Firefox 一样。