Excel技术需求:统计姓名出现天数,同日多次出现仅计1次
统计姓名的唯一出现天数(同一日期仅计1天)
原始表格数据
| date | period | name |
|---|---|---|
| 1/5/2024 | 1 | SAM |
| 1/5/2024 | 2 | SAM |
| 1/5/2024 | 3 | JHONE |
| 2/5/2024 | 1 | SAM |
| 2/5/2024 | 1 | JHONE |
| 2/5/2024 | 2 | JHONE |
| 2/5/2024 | 3 | ROB |
| 3/5/2024 | 1 | JHONE |
解决方法
方法1:Excel操作
- 用
UNIQUE函数提取不重复姓名列表:=UNIQUE(C2:C9) - 对每个姓名,用
SUMPRODUCT+COUNTIFS统计唯一日期数,示例公式(对应单元格E2为姓名):=SUMPRODUCT(1/COUNTIFS(A2:A9,A2:A9,C2:C9,E2))
方法2:Python(Pandas)代码
import pandas as pd # 构造数据 data = pd.DataFrame({ 'date': ['1/5/2024', '1/5/2024', '1/5/2024', '2/5/2024', '2/5/2024', '2/5/2024', '2/5/2024', '3/5/2024'], 'period': [1,2,3,1,1,2,3,1], 'name': ['SAM', 'SAM', 'JHONE', 'SAM', 'JHONE', 'JHONE', 'ROB', 'JHONE'] }) # 统计每个姓名的唯一日期出现天数 count_result = data.groupby('name')['date'].nunique() # 格式化输出 for name, days in count_result.items(): print(f"{name:>8} = {days}天")
最终统计结果
- SAM = 2天
- JHONE = 3天
- ROB = 1天
内容的提问来源于stack exchange,提问作者Meem
相关产品推荐
相关产品推荐

