Excel中创建仅显示TOP10/BOTTOM10的分类平均评分水平条形图
Excel 只显示前/后10分类的平均评分水平条形图教程
我太懂这种感觉了——明明需求看着简单,实际操作起来就是卡壳,尤其是分类多的时候,要精准筛选前10或后10的平均评分做条形图,确实容易踩细节坑。下面我用你给的示例数据,一步步给你捋清楚怎么搞定:
方法一:用数据透视表(最省心的方式)
1. 先算出每个分类的平均评分
- 选中你的全部数据区域(包括
category和rating表头) - 点击顶部菜单栏的数据选项卡 → 选择数据透视表,随便选个空白位置放透视表就行(新工作表或者现有表的空白区都可以)
- 在右侧的透视表字段面板里:
- 把
category拖到行区域 - 把
rating拖到值区域,然后右键点击值区域里的rating→ 选值字段设置,把计算类型改成平均值,确定后就能看到每个分类的平均评分了(比如你的示例里A是9,B≈4.67,C是6.5,D是9)
- 把
2. 筛选出前10或后10的分类
- 点击透视表行区域里
category旁边的小筛选箭头 - 选择值筛选 → 前10项(要后10就选后10项)
- 在弹出的对话框里,确认“显示”是「最大10项」(或「最小10项」),依据一定要选对应的平均值字段(比如“平均值项:rating”),点确定后,透视表就只保留你要的前/后10分类了
3. 生成水平条形图
- 选中透视表里的所有数据(包括分类和对应的平均评分)
- 点击插入选项卡 → 选条形图里的簇状水平条形图
- 之后可以按需调整图表样式:比如把坐标轴标签调清晰、修改条形颜色、调整排序方向,最终就能得到你要的效果(像示例里的A 9、D 9……C 6.5、B 4.67对应的条形)
方法二:用公式+排序筛选(适合不想用透视表的情况)
如果你更习惯用公式手动计算,也可以这么来:
- 提取不重复分类:在空白单元格输入
=UNIQUE(A2:A10)(假设你的分类在A列,从A2开始),按回车就能得到所有不重复的分类 - 计算每个分类的平均值:在旁边单元格输入
=AVERAGEIF(A:A,C2,B:B)(C2是刚才提取的第一个分类,B列是评分列),下拉填充就能得到所有分类的平均评分 - 排序筛选:把分类和平均值这两列选中,按平均值从大到小(或从小到大)排序,然后手动保留前10或后10行数据,再选中这些数据插入水平条形图就行
内容的提问来源于stack exchange,提问作者userrandomnums
相关产品推荐
相关产品推荐

