文章背景: 工作中,有时需要计算某一单元区域内不重复数字的个数。可以借助COUNTA和UNIQUE函数完成这一需求。下面介绍两种场景。

表中,数量这一列都是数字。D1单元格内的公式如下:
=COUNT(UNIQUE(D4:D10)) 首先通过UNIQUE函数进行去重,然后通过COUNT函数计数。
(1)COUNTA 函数计算范围中不为空的单元格的个数。
(2)COUNTA 函数计算包含任何类型的信息(包括错误值和空文本 (""))的单元格。例如,如果区域中包含的公式返回空字符串,COUNTA 函数计算该值。COUNTA 函数不会对空单元格进行计数。
(3)如果不需要对逻辑值、文本或错误值进行计数(换句话说,只希望对包含数字的单元格进行计数),请使用 COUNT 函数。
(4)UNIQUE 函数返回列表或范围中的一系列唯一值。

表中,数量这一列既有数字,也有文本。另外,有时需要对单元格区域进行筛选。为了在筛选状态下,依然可以得到正确的结果,这里使用了一个辅助列。
效果如下:

辅助列中,E5单元格内的公式如下:
=SUBTOTAL(102,D5)D1单元格内的公式如下:
=COUNT(UNIQUE(FILTER(D4:D10,E4:E10)))借助SUBTOTAL函数,可以识别可见单元格。借助FILTER函数,筛选出可见单元格。然后就回到第一种情况,获取非重复的数字个数。
(1)SUBTOTAL函数
返回指定的数据列表或数据库的分类汇总。
SUBTOTAL(function_num,ref1,[ref2],...)

参考资料:
[1] Excel指定条件下不重复计数的四种方法(https://www.sohu.com/a/483394565_408374)
[2] COUNTA 函数(https://support.microsoft.com/zh-cn/office/counta-%E5%87%BD%E6%95%B0-7dc98875-d5c1-46f1-9a82-53f3219e2509)
[3] UNIQUE function(https://support.microsoft.com/en-gb/office/unique-function-c5ab87fd-30a3-4ce9-9d1a-40204fb85e1e)
[4] UNIQUE function - quick way to find unique values in Excel(https://www.ablebits.com/office-addins-blog/excel-unique-function-find-unique-values/)
[5] 以一敌十的统计函数Subtotal都不掌握,还想成为Excel达人(https://zhuanlan.zhihu.com/p/55134043?utm_source=com.doc360.client&utm_medium=social&utm_oi=1174444581180968960)
[6] SUBTOTAL function(https://support.microsoft.com/en-au/office/subtotal-function-7b027003-f060-4ade-9040-e478765b9939)