Excel中通过函数实现对表格数据自动升降序排序,简单到没朋友!我们先来看一下效果演示:
效果演示
这种排序的特点是:
未使用到任何的VBA宏代码,通过纯函数功能实现;
通过选项按钮实现升序和降序的选择;
即使数据中存在重复值也一样可以进行排序;
输入数据后即可以实现实时排序的效果;
如果你喜欢这种效果,那就跟着这篇教程一起学习吧!
第1步:在C列建立辅助列;
目的:此步骤的目的是为了处理重复数据。通过在原数据上加一个特别小的不重复值,将原数据转换为不可能出现重复值的情况;
在C3单元格输入以下公式,并向下拖动公式至C11单元格:=B3+ROW()/1000000
建立辅助列
第2步:插入选项按钮,实现升、降序的选择;
点击开发工具-插入-选项按钮控件,在表格的空白位置拖动,画出2个控件,并分别命名为升序和降序,并右键设置控件格式,将单元格链接指定到单元格:$F$2,这样设置后,当我们点击升序选项时,$F$2单元格的值显示为1;点击降序选项时则显示为2;
建立升降序选项按钮
第3步:使用自定义格式将$F$2显示为升序或降序;
选择单元格$F$2,右键设置单元格格式,分类选:自定义,类型中输入以下格式代码:
[=1]升序;[=2]降序;
自定义格式
第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……;
通过条件格式-数据条设置蓝色数据条的效果:
输入核心公式
精彩评论