Excel中通过函数实现对表格数据自动升降序排序,简单到没朋友!我们先来看一下效果演示:

Excel中通过函数实现对表格数据自动升降序排序

效果演示

这种排序的特点是:

  1. 未使用到任何的VBA宏代码,通过纯函数功能实现;

  2. 通过选项按钮实现升序和降序的选择;

  3. 即使数据中存在重复值也一样可以进行排序;

  4. 输入数据后即可以实现实时排序的效果;

如果你喜欢这种效果,那就跟着这篇教程一起学习吧!

第1步:在C列建立辅助列;

目的:此步骤的目的是为了处理重复数据。通过在原数据上加一个特别小的不重复值,将原数据转换为不可能出现重复值的情况;

在C3单元格输入以下公式,并向下拖动公式至C11单元格:=B3+ROW()/1000000

Excel中通过函数实现对表格数据自动升降序排序

建立辅助列

第2步:插入选项按钮,实现升、降序的选择;

点击开发工具-插入-选项按钮控件,在表格的空白位置拖动,画出2个控件,并分别命名为升序和降序,并右键设置控件格式,将单元格链接指定到单元格:$F$2,这样设置后,当我们点击升序选项时,$F$2单元格的值显示为1;点击降序选项时则显示为2;

Excel中通过函数实现对表格数据自动升降序排序

建立升降序选项按钮

第3步:使用自定义格式将$F$2显示为升序或降序;

选择单元格$F$2,右键设置单元格格式,分类选:自定义,类型中输入以下格式代码:

[=1]升序;[=2]降序;

Excel中通过函数实现对表格数据自动升降序排序

自定义格式

第4步:输入函数计算得出升降序;

  • 在E3单元格输入以下公式并拖动公式至E11单元格:

=IF($F$2=1,INDEX($A$3:$A$11,MATCH(SMALL($C$3:$C$11,ROW(A1)),$C$3:$C$11,0),1),INDEX($A$3:$A$11,MATCH(LARGE($C$3:$C$11,ROW(A1)),$C$3:$C$11,0),1))
  • 在F3单元格输入以下代码并拖动公式至F11单元格:

=IF($F$2=1,INDEX($B$3:$B$11,MATCH(SMALL($C$3:$C$11,ROW(A1)),$C$3:$C$11,0),1),INDEX($B$3:$B$11,MATCH(LARGE($C$3:$C$11,ROW(A1)),$C$3:$C$11,0),1))

公式锦囊:INDEX+MATCH是经典的查询定位函数组合;LARGE和SMALL函数是返回第N个最大值和最小值的函数;ROW(A1)函数是返回行号的函数,用于产生序列1,2,3……;

  • 通过条件格式-数据条设置蓝色数据条的效果:

Excel中通过函数实现对表格数据自动升降序排序

输入核心公式

Excel中通过函数实现对表格数据自动升降序排序