excel一列中不重复名字统计个数。

表的A列里有很多名字,其中有不少重复的,什么公式可以统计出不重复姓名个数,而且名字还会不定时复制进去。最好公式里针对A列的范围是A:A的区域。

选中A列---数据---高级筛选---选择不重复的记录---确定
在另一列输入公式
=SUBTOTAL(103,A:A)-1
公式后面写入减1的目的是去除列标签行这一个非人名的记录
如果没有列标签行公式就不用-1了
这时公式得出的值就是去除重复行后姓名的个数

但是去除筛选(即:全部显示)后,该公式得出的值就是A列全部文本内容的个数了,
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-03
在任意单元格输入以下数组公式=SUM(if($A$1:$A$5000<>“”,1/COUNTIF($A$1:$A$5000,$A$1:$A$5000),“”))。如果数据超过5000行,自已修改公式中单元格范围。
第2个回答  2012-12-19
假如a1是表头,名字从a2开始,公式:
=sumproduct(1/countif(indirect("a2:a"&counta(a:a)),indirect("a2:a"&counta(a:a))))
注意:a列的名字需连续往下输,中间不能出现空格。
第3个回答  2013-06-05
在B列任意一单元格输入公式,这里假设 A1;A16 是A列存放姓名的区域
=SUMPRODUCT(N(COUNTIF(A1:A16,A1:A16)=1)) 这是求出的是完全没有重复的名字的个数

=SUMPRODUCT(1/COUNTIF(A1:A16,A1:A16)) 这是把重复的姓名只算作一次,即总共有多少人

下面是代码,但是这样好像没必要,你说呢?
SUB AAA()
DIM D ,RNG AS RANGE
SET D=createobject("scripting.dictionary")
for each rng in activesheet.range("a:a")
if rng.value<>"" then d(rng.value)=""
next rng
msgbox d.count
set d=nothing
end sub
第4个回答  2012-12-19
在B1输入公式:
=countif(A:A,A1)
下拉后,显示数值1的即为A列只有一个,筛选后,求和即可求出不重复姓名的个数。
或者在B1输入公式:
=IF(A1<>0,IF(COUNTIF(A:A,A1)>1,"",1),"")
下拉后直接求和即可
相似回答