【行政办公系列】统计重复出现的人的次数
HDUZN

在使用Excel表格的时候,有时候会需要统计某个人/所有人出现的次数。

以下分别介绍用Excel和Python的方法。

举例:如下这张表格,想统计每个人出现的次数。

注意:这里比单纯的姓名复杂一丢丢,要考虑到不同班级出现同名的情况(这并不是同一个人),只有相同班级同姓名的才是同一个人。

所以,首先,可以先用班级+姓名来表示一个人。在以上表格中增加一列,用公式A1&B1求出C列为班级+姓名(粘贴成文本值)。如下图:

Excel中统计重复出现的人的次数

Excel中主要分2步:

  • 第一步,通过删除重复值,得出没有重复名字的列;
  • 第二步,再统计没重复名字这一列,每个名字出现的次数就行了。

1.复制C列,删除重复值

  • 首先,复制C列到D列;
  • 然后,选中D列数据,打开【数据】->【数据工具】组中的【删除重复值】;
  • 最后,就得到了没有重复姓名的D列。

2.用countif公式求出现的次数

用公式=COUNTIF($C$1:$C$20,D1)求D1单元格内容在C列(C1:C20)中出现的次数。

3.把D列中的班级和姓名分开

把合在一起的班级姓名分开一下用截取字符串的两个函数:

  • 在F列求班级:=LEFT(D1,3) 表示从左开始,取3个字符;
  • 在G列求姓名:=MID(D1,4,4) 表示从中间第4个字符开始,取4个字符(如果有名字长的,多取几个字符就行)。

这样就把重复出现的人的次数统计出来了。结果如图:

之前还录过在Excel求重复人的金额的总和的视频。
其实也差不多,就是求次数的COUNTIF函数换成SUMIF函数求金额的和就行了。

Python统计Excel中重复出现的人的次数

Python中主要也是分2步:

  • 第一步,读取Excel表格中C列(班级+姓名)的数据,返回姓名列表List;
  • 第二步,用pandas库直接统计出次数。

看这篇笔记就行:Python pandas统计Excel表中人名次数

不过,先添加个标题行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import pandas as pd
import numpy as np
import os

def ex_count(ex_file, output_file):
# 1.从Excel读取
usecols = ['班级姓名']
sheet_name = 'Sheet1' # sheet名
df = pd.read_excel(ex_file, sheet_name=sheet_name, usecols=usecols)
data_list = np.array(df).tolist() # 把数据转为List

# 2.处理数据
result_list = [] # 一列数据
for data in data_list:
result_list.append(data[0])

# 3.写入Excel
if os.path.exists(output_file):
os.remove(output_file)
result = pd.value_counts(result_list) # 统计列表中每项的次数
# print(type(result)) # <class 'pandas.core.series.Series'>
result.to_excel(output_file)

ex_count('count_names.xlsx', '统计结果.xlsx')
  • 本文标题:【行政办公系列】统计重复出现的人的次数
  • 本文作者:HDUZN
  • 创建时间:2022-06-26 20:42:29
  • 本文链接:http://hduzn.cn/2022/06/26/【行政办公系列】统计重复出现的人的次数/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论