一、Excel基础方法
COUNTIF函数统计单一名字 使用`=COUNTIF(姓名列范围, "具体名字")`统计特定名字的出现次数。例如`=COUNTIF(B1:B100, "张三")`会返回"张三"在B1到B100单元格中出现的次数。
数据透视表统计多个名字
- 选中数据区域,插入数据透视表;
- 将姓名拖至“行标签”,出现次数拖至“值”区域,可快速统计多个名字的频次。
删除重复值后统计
使用`删除重复值`功能或`RANK.EQ`函数筛选唯一姓名,再统计数量。例如:
```excel
=SUM(1/COUNTIF(A2:A100, A2:A100))
```
输入后按`Ctrl+Shift+Enter`确认为数组公式。
二、Linux命令行方法
通过/etc/passwd文件统计
使用`grep`、`cut`和`wc`命令:
```bash
grep -v '^' /etc/passwd | cut -d: -f1 | wc -l
```
该命令会排除注释行,提取用户名并计数。
使用getent命令
结合`wc`命令:
```bash
getent passwd | cut -d: -f1 | wc -l
```
通过系统数据库查询所有用户名并统计。
awk命令统计
直接提取用户名并计数:
```bash
awk -F: '{print $1}' /etc/passwd | wc -l
```
使用冒号作为字段分隔符,输出用户名行数。
三、编程方法(Python示例)
使用Python的`collections.Counter`类高效统计重名数量:
```python
names = ['张三', '李四', '张三', '王五', '李四']
name_counts = Counter(names)
top_100 = name_counts.most_common(100)
print(top_100)
```
此代码会输出出现次数最多的前100个姓名(适用于大规模数据)。
四、注意事项
数据预处理: 统计前需确认数据格式统一,避免因空格或特殊字符导致统计错误; 性能优化
根据实际需求选择合适方法,Excel适合中小规模数据统计,Linux命令适合系统级批量处理,编程方法则适合复杂场景和大规模数据分析。