如何在Excel中按角色筛选数据集计算胜率并制作堆叠图表?
Excel游戏对战角色胜率统计优化方案
问题背景
我用Excel记录游戏对战数据,核心列是Character(使用角色)和Winner(获胜方),现有数据如下:
| Character | Winner |
|---|---|
| Yuriko | me |
| Yuriko | Derevi |
| Yuriko | me |
| Yuriko | me |
| Winota | me |
| Winota | Derevi |
希望在另一张工作表生成胜率统计,目标效果:
| Yuriko Win % | Winota Win % |
|---|---|
| 75% | 50% |
我已用以下公式实现,但不够简洁,想找更优方法,同时希望制作堆叠图表直观展示数据:
- Yuriko出场次数:
=COUNTIF('Game Log'!F2:'Game Log'!F500,"Yuriko") - Yuriko获胜次数:
=COUNTIFS('Game Log'!K2:K500,"=me",'Game Log'!F2:F500,"=Yuriko")
Winota的统计需要复制公式,效率不高。
更优解决方案
1. 简化公式(适配多角色)
方案A:动态数组版(Excel 365/2021及以上)
一次性统计所有角色,无需重复写公式:
- 提取唯一角色:在统计工作表A2单元格输入
自动生成所有不重复的角色列表。=UNIQUE('Game Log'!F2:F500) - 计算出场次数:B2单元格输入
公式会自动溢出适配所有角色。=COUNTIF('Game Log'!F:F,A2) - 计算胜率:C2单元格输入
设置单元格格式为「百分比」,直接得到胜率。=COUNTIFS('Game Log'!F:F,A2,'Game Log'!K:K,"me")/B2
方案B:旧版Excel兼容版
用SUMPRODUCT合并计算逻辑,单个公式直接出胜率,比如Yuriko的胜率:
=SUMPRODUCT(('Game Log'!F2:F500="Yuriko")*('Game Log'!K2:K500="me"))/SUMPRODUCT(('Game Log'!F2:F500="Yuriko")*1)
只需替换角色名称即可复用公式。
2. 制作堆叠图表展示数据
步骤1:准备图表数据源
先整理每个角色的胜负次数:
- 获胜次数:
=COUNTIFS('Game Log'!F:F,A2,'Game Log'!K:K,"me") - 失败次数:
=B2-C2(B为出场次数,C为获胜次数)
整理成如下格式:
| 角色 | 获胜 | 失败 |
|---|---|---|
| Yuriko | 3 | 1 |
| Winota | 1 | 1 |
步骤2:插入堆叠柱形图
- 选中上述数据区域(含表头)
- 点击菜单栏「插入」→「柱形图」→「堆叠柱形图」
- 右键添加数据标签,修改图表标题为「角色对战胜负统计」,调整颜色区分胜负,让数据更直观。
内容的提问来源于stack exchange,提问作者Sugitime
相关产品推荐
相关产品推荐

