这是个高频问题,经常有人问图表有没有排序功能?
图表本身虽然没有排序功能,但是我们可以通过重新构造数据,使得图表能够自动排序。
案例:
将下图 1 数据表制作成柱形图,柱形需要自动按成绩从高到低排序。效果如下图 2 所示。
解决方案:
先构造数据。
1. 在 E 列将成绩按从高到低排序:在 E2 单元格输入以下公式 --> 下拉复制公式:
=LARGE($B$2:$B$9,ROW(1:1))
公式释义:
ROW(1:1):获取第一行的行值,结果为 1;随着公式下拉,结果会自动递增为 2,3,……
LARGE($B$2:$B$9,...):获取区域中第 n 大的值
2. 在 F 列构造第一个辅助列,在 F2 单元格中输入以下公式 --> 下拉复制公式:
=COUNTIF(E$2:E2,E2)
公式释义:
如果 E 列的成绩有重复,统计它是第几次重复
3. 在 C 列构造第二个辅助列,在 C2 单元格中输入以下公式 --> 下拉复制公式:
=B2&COUNTIF(B$2:B2,B2)
公式释义:
COUNTIF(B$2:B2,B2):如果 B 列的成绩有重复,统计它是第几次重复
B2&...:将 B2 的值与它的重复序数连接起来,就得到一个唯一值。这样的话,即使有重复的成绩,也能查找出不同的姓名
4. 在 D 列按排序的成绩匹配出姓名:在 D2 单元格中输入以下公式 --> 下拉复制公式:
=INDEX($A$2:$A$9,MATCH(E2&F2,$C$2:$C$9,0))
公式释义:
MATCH(E2&F2,$C$2:$C$9,0):将 E2 和 F2 的数据连接,结果为成绩及其重复序数的连接数字,这是个唯一值;与 C 列的同逻辑唯一值匹配,得到一个代表区域内排位的数字
INDEX($A$2:$A$9,...):匹配出区域内对应排位的值
数据已经构造完毕,下面开始制作图表。
5. 选中 D1:E9 区域 --> 选择菜单栏的“插入”-->“二维柱形图”-->“簇状柱形图”
6. 双击图表上的柱形,在右侧的“设置数据系列格式”区域选择“填充与线条”选项卡 --> 选择所需的填充色
7. 删除网格线和坐标轴
8. 点击图表右上角的“+”号 --> 勾选“数据标签”
自动排序的柱形图就制作完成了。
如果原始数据表中的成绩发生了变化,柱状图会自动重新降序排列。
Excel学习世界
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货