分享

Excel揭秘12:排序规则与排序技术

 zhangshoupen 2017-11-17

 

Excel中,我们可以使用排序功能方便地对数据进行排序。

 

通常,我们可以使用开始选项卡“编辑排序和筛选中的命令,如图1所示。

 1


也可以使用数据选项卡排序和筛选组中的排序命令,如图2所示。

 2

 

然而,有时排序的结果不会像我们想像中的那样,这就需要了解Excel对不同类型数据的排序顺序。

 

Excel对不同类型数据的排序顺序

如下图3所示,对不同类型的数据进行了升序和降序排列。

 3

 

以升序排列为例,从中我们可以发现下面的规律:

  • 首先排序的是数字,按从小到大的顺序排列。因为Excel是以序列数来存储日期的,因此日期参与数字的排序。

  • 其次排序的是数字和字母混合的文本。其先后次序为:

先是作为文本处理的数字:0 1 2 3 4 5 6 7 8 9

然后是空格、感叹号和特殊符号:

最后是字母,按字母表先后顺序排列并区分大小写:

A B C D E F G H I J K L MN O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z

撇号()和连字符(-)被忽略,但是如果两个文本字符串除连字符外完全相同,则包含连字符的文本排在后面。

  • 接着是布尔值,其中FALSE在前,TRUE在后。

  • 然后是错误值,如#DIV/0!#REF!

  • 最后是空单元格。无论升序还是降序,空单元格总排在最后。

 

降序排列的基本顺序与上面的相反,如图4所示。

 4

 

排序中的误区和问题

在排序过程中,我们可能有一些想当然的情况导致排序与想像中的不同,也可能会遇到一些结果有差异的问题。

  • 如下图5所示的数据:

 5


可能认为Excel会为我们排序成图6所示的结果。

 6


但实际上的结果如图7所示。

 7


从上文中排序顺序的讲解,我们应该能够理解此时Excel的排序顺序为什么与我们想像的不同。

 

  • 有时候Excel排序时似乎没有将第1个数据参与排序,如下图8所示。

 8


结果本来应该是1 2 3 4 5 6 7 8 9,但9并没有参与排序。

这是因为在“排序”对话框中,选取了“数据包含标题”复选框,如图9所示。此时,Excel将最顶端的9当成了标题,没有将其排序。

 9

 

  • Excel能够自动感知认为应该包含在排序中的单元格。此时,Excel会弹出对话框询问是否扩展选定区域(如图10所示),不会要求具体增加的单元格,而是直接扩展并加入其认为需要的单元格并排序,这有可能不符合你的要求。因此,不应该将控制权交由Excel处理,你必须能够确定需要排序的范围。

 10

 

  • Excel能够自动感知类似数字的文本,如本文开头的图3所示。此时,Excel会弹出如图11所示的对话框,询问是否将类似数字的文本与数字一样处理。

 11


如果像如图11所示,选取“分别将数字和以文本形式存储的数字排序”,那么对于本文开头图3所示的示例,即为图3中呈现的结果。如果选取“将任何类似数字的内容排序”,那么对于图3所要排序的数据,如果要求以升序排列,那么结果如图12所示。

 12

 

排序技术示例

自定义排序

如下图13所示,要求单元格区域B2:D10中的数据以城市为关键字按单元格B13:B17的顺序排列。

 13

 

首先,自定义排序序列。

如图14所示,在“Excel选项”的“常用”选项卡中,单击“编辑自定义列表”。

14


在自定义序列的“选项”中,导入单元格区域B13:B17中的内容,如图15所示。当然,也可以单击“添加”按钮,按顺序手动输入序列。

15

 

然后,选中要排序的单元格区域B2:D10,调出“排序”对话框。在“主要关键字”中选择“城市”,在“次序”中选择“自定义序列”,如图16所示。

 16


在弹出的如图15所示的自定义序列选项框中,选择刚才自定义的序列,单击“确定”,如图17所示。

 17


单击“确定”,结果如图18所示。

 18

 

块排序

如下图19所示,需要根据学号对每个学生进行排序,在排序时每个学生的学号、姓名、性别、班级、成绩都要在一起。

 19


首先,创建一个辅助列,使用每个学生的学号填充该列相应的单元格。

在单元格C3中的公式如下:

=IF(A3=''学号'',B3,C2)

下拉至数据单元格底端,结果如下图20所示。

 20


然后,选择所有数据单元格进行排序,如下图21所示。

 21


主要关键字选列C,不要选取“数据包含标题”,单击“确定”,结果如下图22所示。

 22

 

自动更新排序

如下图23所示,单元格B2:B10中的数值改变时,列D和列E中的排序数据会自动更新。

 23


实现上述效果主要是两个数组公式。

在单元格D2:D10中输入数组公式:

=SMALL(B2:B10,ROW(INDIRECT(''1:''& ROWS(B2:B10))))

在单元格E2:E10中输入数组公式:

=LARGE(B2:B10,ROW(INDIRECT(''1:''& ROWS(B2:B10))))

 

关于Excel排序,你有什么好的示例吗?欢迎分享。




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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多