跳到主要内容

在 Excel 中使用条件计算唯一值

要仅根据另一列中的指定条件计算唯一值,您可以应用基于 SUM、FREQUENCY、MATCH 和 ROW 函数的数组公式。 此分步指南可帮助您了解最令人伤脑筋的公式用法。


如何使用 Excel 中的条件计算唯一值?

如下面的产品表所示,同一店铺在不同日期出售了一些重复产品,现在,我想获得从店铺 A 出售的产品的唯一计数,您可以应用以下公式。

通用公式

{=SUM(--(FREQUENCY(IF(range=criteria,MATCH(vals,vals,0)),ROW(vals)-ROW(vals.firstcell)+1)>0))}

参数

范围:单元格范围包含符合条件的值;
标准:您要基于的唯一值计数标准;
瓦尔斯:要从中计算唯一值的单元格范围;
vals.firstcell:要从中计算唯一值的范围的第一个单元格。

注意:此公式必须作为数组公式输入。 应用公式后,如果公式周围有大括号,则成功创建数组公式。

如何使用这些公式?

1.选择一个空白单元格放置结果。

2.在其中输入以下公式,然后按 按Ctrl + 转移 + 输入 同时获得结果。

=SUM(--(FREQUENCY(IF(E3:E16=H3,MATCH(D3:D16,D3:D16,0)),ROW(D3:D16)-ROW(D3)+1)>0))

:在此公式中,E3:E16 是包含符合条件的值的范围,H3 包含条件,D3:D16 是包含要计算的唯一值的范围,D3 是 D3:D16 的第一个单元格。 您可以根据需要更改它们。

这个公式如何运作?

{=SUM(--(FREQUENCY(IF(E3:E16=H3,MATCH(D3:D16,D3:D16,0)),ROW(D3:D16)-ROW(D3)+1)>0))}

  • IF(E3:E16=H3,MATCH(D3:D16,D3:D16,0)):
1) E3:E16=H3: 这里检查值 A 是否存在于 E3:E16 范围内,如果找到则返回 TRUE,否则返回 FALSE。 你会得到一个这样的数组 {TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;}。
2) 比赛(D3:D16,D3:D16,0):MATCH函数获取D3:D16范围内每一项的第一个位置,并返回这样的数组{1;2;3;2;1;1;3;2;1;1;1;2;3; 2}。
  • IF({TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;},{1;2;3;2;1;1;3;2;1;1;1;2;3;2}):现在对于数组 1 中的每个 TRUE 值,我们将获得数组 2 中的相应位置,对于 FALSE,我们将获得 FALSE。 在这里,您将获得一个新数组 {1;FALSE;FALSE;2;FALSE;FALSE;3;FALSE;FALSE;1;FALSE;FALSE;3;FALSE}。
  • 行(D3:D16)-行(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;FALSE;FALSE;2;FALSE;FALSE;3;FALSE;FALSE;1;FALSE;FALSE;3;FALSE},{1;2;3;4;5;6;7;8;9;10;11;12;13;14}):这里 FREQUENCY 函数返回给定数组中每个数字的频率:{2;1;2;0;0;0;0;0;0;0;0;0;0;0}。
  • =SUM(--({2;1;2;0;0;0;0;0;0;0;0;0;0;0}>0)):
1) {2;1;2;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};
2) --{真;真;真;假;假;假;假;假;假;假;假;假;假;假}:这两个减号将“TRUE”转换为 1,将“FALSE”转换为 0。这里您将得到一个新数组为{1;1;1;0;0;0;0;0;0;0;0;0 ;0;0}。
3) SUM{1;1;1;0;0;0;0;0;0;0;0;0;0;0}:SUM 函数对数组中的所有数字求和并返回最终结果为 3。

相关功能

Excel SUM 函数
Excel SUM 函数添加值

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

Excel IF功能
Excel IF函数根据比较结果执行简单的逻辑测试,如果结果为TRUE,则返回一个值,如果结果为FALSE,则返回另一个值。

Excel MATCH功能
Excel MATCH 函数在单元格范围内搜索特定值,并返回该值的相对位置。

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


相关公式

计算过滤列表中可见行的数量
本教程说明如何使用 SUBTOTAL 函数计算 Excel 中筛选列表中的可见行数。

计算范围内的唯一值
本教程介绍了如何使用指定的公式在 Excel 中的列表中仅计算重复项中的唯一值。

使用条件计算可见行
本教程提供了详细的步骤来帮助您使用条件计算可见行。

在非连续范围上使用 COUNTIF
本分步指南演示了如何在 Excel 中的非连续区域上使用 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 一样。
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Looking for the same formula but with one more criteria... I tried adding AND() after the IF() to have my two criterias but it didn't work. Do you have a solution?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations