分享

只需 Excel 函数就能实现,选下拉菜单,表格就能自动升或降序排序

 樵夫1964 2021-11-19

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

听上去要动用 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 区域 --> 选择菜单栏的“开始”-->“条件格式”-->“数据条”--> 选择所需的数据条样式

图片
图片

这是选择下拉菜单的动态效果。

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多