一、Excel基础方法
COUNTIF函数统计单一姓名出现次数 使用`=COUNTIF(姓名列范围, 单一姓名)`,例如`=COUNTIF(A2:A100, "张三")`可统计"张三"出现的次数。
SUMIF函数统计非空姓名数量
输入`=SUMIF(A:A, "<>", B:B)`可统计A列非空姓名总数,但需注意此方法不区分重复姓名。
结合排序与RANK.EQ函数去重统计
- 先对姓名列排序,再使用`=SUM(RANK.EQ(A2, A$2:A10, 0))`统计唯一姓名数量。
二、Excel高级技巧
动态数组公式统计唯一值
输入`=SUM(1/COUNTIF(A2:A100, A2:A100))`(需按Ctrl+Shift+Enter输入)或`=SUMPRODUCT(1/COUNTIF(A2:A100, A2:A100))`,通过排除重复项计算唯一姓名数。
数据透视表快速统计
- 通过插入数据透视表,选择姓名字段作为行标签,可快速汇总不同姓名的频次。
三、编程实现(Python)
使用Python的`collections.Counter`类可高效统计姓名频次:
```python
import collections
names = ['张三', '李四', '张三', '王五', '李四', '张三']
name_counts = collections.Counter(names)
print(name_counts.most_common(100)) 输出前100个姓名及频次
```
若需处理大规模数据,可结合`heapq`模块维护前100个高频姓名:
```python
import heapq
from collections import defaultdict
names = ['张三', '李四', '张三', '王五', '李四', '张三']
name_freq = defaultdict(int)
for name in names:
name_freq[name] += 1
维护前100个高频姓名
top100 = heapq.nlargest(100, name_freq.items(), key=lambda x: x)
print(top100)
```
四、其他场景扩展
按条件统计: 结合`SUMIF`与`COUNTIF`函数,例如统计特定分数区间的不同姓名数量。 多条件统计
以上方法可根据数据规模和具体需求选择,Excel适合中小规模数据快速统计,而Python更适合处理超大规模数据集。