如何让数据表自动排序?升序或降序,点一下选项它就自动排了,不用每次都菜单设置。
听上去要动用 VBA 了?没错 VBA 的确是个很好的办法,但是很多人不是怵吗,那我就教个公式法,也能实现这效果。
案例:
下图 1 是公司销售人员的获客统计表,请制作一个定义排序规则的下拉菜单,一点就能按要求自动排序。
效果如下图 2 所示。
解决方案:
1. 先把目标区域和下拉菜单的样式搭建好。
2. 选中 G2 单元格 --> 选择菜单栏的“数据”-->“数据验证”-->“数据验证”
3. 在弹出的对话框中选择“设置”选项卡,按以下方式设置 --> 点击“确定”:
下拉菜单已经设置完成。
4. 在 E2 单元格中输入以下公式:
=IF($G$2="升序",SMALL($B$2:$B$14,ROW(A1)),LARGE($B$2:$B$14,ROW(A1)))
公式释义:
SMALL($B$2:$B$14,ROW(A1)):选出区域 $B$2:$B$14 中第 ROW(A1) 小的单元格;随着公式下拉,ROW(A1) 会逐行递增,从而实现从小到大排序;LARGE($B$2:$B$14,ROW(A1)):选出区域 $B$2:$B$14 中第 ROW(A1) 大的单元格;if(...):根据下拉菜单的文字,分别执行升序或降序排列
5. 将 C 列设置为第一个辅助列,在 C2 单元格中输入以下公式:
=B2&COUNTIF($B$2:B2,B2)
公式释义:
COUNTIF($B$2:B2,B2):统计从 B2 开始到当前行,B2 单元格总共出现了几次B2$...:将 B2 及其出现的次数连接起来,从而变成一个唯一值;这样即使获客数有重复,也能匹配到不同的姓名
6. 将 F 列设置为第二个辅助列,在 F2 单元格中输入以下公式:
=E2&COUNTIF($E$2:E2,E2)
公式释义同上。
7. 在 D2 单元格中输入以下公式:
=INDEX(A:A,MATCH(F2,C:C,0))
公式释义:
MATCH(F2,C:C,0):找出 F2 在 C 列序列中出现的位置顺序,是一个数值;INDEX(A:A,...):匹配出 A 列中对应位置的值
8. 选中 C2:F2 区域向下拖动,从而复制公式。
9. 将 C 和 F 列的字体设置为白色。
现在选择下拉菜单的选项,第二个数据表就会自动根据要求排序。
接下来我们再加上数据条,这样可以使得数据差距更加可视化。
10. 选中 E2:E14 区域 --> 选择菜单栏的“开始”-->“条件格式”-->“数据条”--> 选择所需的数据条样式
这是选择下拉菜单的动态效果。
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。