如何让数据表自动排序?升序或降序,点一下选项它就自动排了,不用每次都菜单设置 。
听上去要动用 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 列的字体设置为白色 。
文章插图
推荐阅读
- 宝宝睡觉后脑勺出汗怎么回事
- 农业局是做什么的 农业局属于什么单位
- 宝宝睡觉摆大字原因
- 怎么改密码箱密码修改
- 断奶四五天了还能吃吗
- 端午节祝福语给下属 给下属的节日寄语
- 励志微信说说 励志微信说说句子简短
- 原神共鸣石怎么用
- 卷发棒是托运还是登机