如何在excel中设置下拉菜单排序

如何让数据表自动排序?升序或降序,点一下选项它就自动排了,不用每次都菜单设置 。


听上去要动用 VBA 了?没错 VBA 的确是个很好的办法,但是很多人不是怵吗,那我就教个公式法,也能实现这效果 。


案例:


下图 1 是公司销售人员的获客统计表,请制作一个定义排序规则的下拉菜单,一点就能按要求自动排序 。


效果如下图 2 所示 。

如何在excel中设置下拉菜单排序

文章插图
如何在excel中设置下拉菜单排序

文章插图


解决方案:


1. 先把目标区域和下拉菜单的样式搭建好 。
如何在excel中设置下拉菜单排序

文章插图


2. 选中 G2 单元格 --> 选择菜单栏的“数据”-->“数据验证”-->“数据验证”
如何在excel中设置下拉菜单排序

文章插图


3. 在弹出的对话框中选择“设置”选项卡,按以下方式设置 --> 点击“确定”:
  • 允许:选择“序列”
  • 来源:输入“升序,降序”

如何在excel中设置下拉菜单排序

文章插图


下拉菜单已经设置完成 。
如何在excel中设置下拉菜单排序

文章插图


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(...):根据下拉菜单的文字,分别执行升序或降序排列

如何在excel中设置下拉菜单排序

文章插图
如何在excel中设置下拉菜单排序

文章插图


5. 将 C 列设置为第一个辅助列,在 C2 单元格中输入以下公式:
=B2&COUNTIF($B$2:B2,B2)


公式释义:
  • COUNTIF($B$2:B2,B2):统计从 B2 开始到当前行,B2 单元格总共出现了几次
  • B2$...:将 B2 及其出现的次数连接起来,从而变成一个唯一值;这样即使获客数有重复,也能匹配到不同的姓名

如何在excel中设置下拉菜单排序

文章插图
如何在excel中设置下拉菜单排序

文章插图


6. 将 F 列设置为第二个辅助列,在 F2 单元格中输入以下公式:
=E2&COUNTIF($E$2:E2,E2)


公式释义同上 。
如何在excel中设置下拉菜单排序

文章插图
如何在excel中设置下拉菜单排序

文章插图


7. 在 D2 单元格中输入以下公式:
=INDEX(A:A,MATCH(F2,C:C,0))


公式释义:
  • MATCH(F2,C:C,0):找出 F2 在 C 列序列中出现的位置顺序,是一个数值;
  • INDEX(A:A,...):匹配出 A 列中对应位置的值

如何在excel中设置下拉菜单排序

文章插图


8. 选中 C2:F2 区域向下拖动,从而复制公式 。
如何在excel中设置下拉菜单排序

文章插图


9. 将 C 和 F 列的字体设置为白色 。
如何在excel中设置下拉菜单排序

文章插图

推荐阅读