Excel 简单排序:升序、降序

简单的排序就是指在排序的时候,设置单一的排序条件,将工作表中的数据按照指定的某一种数据类型进行重新排序,比如单一的升序或降序排序。打开实例文件“排序原始数据.xlsx”工作簿。

升序排序

步骤01:单击要排序的列的任意数据单元格,如“期末余额”,使之成为当前单元格,在“数据”选项卡中的“排序和筛选”组中单击“升序”按钮,如图6-25所示。

图6-25 单击“升序”按钮

步骤02:随后,表格按照“期末余额”由小到大的顺序排列,如图6-26所示。

图6-26 按升序排序

注意:执行排序时出现错误提示

如果用户在执行排序操作时,没有选择数据区域的单元格,屏幕上会弹出图6-27所示的提示对话框,单击“确定”按钮,重新选择当前单元格。

图6-27 提示对话框

降序排序

如果要对“期末余额”数据按从大到小的顺序排列,则需要使用“降序排序”命令。

步骤01:选择“期末余额”列的任意数据单元格,在“数据”选项卡中的“排序”组中单击“降序”按钮,如图6-28所示。

图6-28 单击“降序”按钮

步骤02:随后,表格按照“期末余额”数据从大到小的顺序排列,如图6-29所示。

图6-29 降序排序结果

Excel 是否可按数值降序/生产线升序双条件排列数据?

图6.1中包含两条生产线的19名员工的捐款数据,现要求将这些数据按捐款额的大小降序排列,同时要确保A线的员工排在一起,B线的员工排在一起。

例如,A线职员B的捐款大于A线职员A的捐款,那么职员B应该排在职员A的前面;如果B线职员C的捐款大于A线职员A的捐款,那么它不能排在A线职员A和B的前面,而是要排在所有A线职工的后面。

图6.1 需要排序的数据

解题步骤

快速访问工具栏的“升序排序”、“降序排序”及“开始”选项卡中“排序和筛选”下的子菜单“升序”和“降序”都只能单条件排序。要执行多条件排序,需要调用“自定义排序”菜单,具体操作步骤如下。

1.选择A1:E20区域。

2.单击功能区的“开始”→“排序和筛选”,弹出“排序”对话框。

3.单击“主要关键字”右方的倒三角按钮,然后从列表中选择“生产线”,表示第一个排序条件是A列的生产线,“次序”保持默认的“升序”不变,设置界面如图6.2所示。

图6.2 设置第一排序条件

4.单击“添加条件”,然后将“次要关键字”设置为“捐款”,将“次序”调整为“降序”,设置界面如图6.3所示。

图6.3 设置第二排序条件

5.单击“确定”按钮执行排序,双条件排序效果如图6.4所示。

图6.4 排序结果

从图6.4中可以看出,排序时采用了双条件,优先条件是生产线名称,次要条件是捐款数额,所有数据都依照这两个条件调整顺序。

知识扩展

1.在“排序”对话框中,“数据包含标题”复选框默认是处于选中状态的,表示选区中的首行不参与排序。假设排序前只选择了B线的A11:E20区域,那么不能勾选此选项。

2.尽管看起来排序后的图6.4和数据源图6.1的A列未产生变化,但是在设置排序条件时仍然需要使用两个条件,其中一个条件用于限制 A 列升序排列。如果只用“捐款”单条件降序排列,生产线名称就会被打乱,形成图6.5所示的效果。

图6.5 单条件排序结果

Excel 是否能只允许输入2000年到2015年之间的升序日期

疑难场景

公司成立于2000年,因此制表时所用到的时间都大于等于2000年、小于等于2015年。同时,由于报表中涉及时间时一律要求升序排列,如果下方单元格的时间小于上方单元格的时间则表示输入有误。此外,禁止日期区域的两个日期之间有空白单元格,即所有日期都需要填写完整,不能跳过一个日期。应该如何设置才能让单元格符合以上3个条件呢?

解题步骤

设置数据验证可以让指定区域只能输入2010年到2015年的升序日期,具体步骤如下。

1.选择需要进行限制的区域A2:A20。

2.单击功能区的“数据”→“数据验证”,弹出“数据验证”对话框。

3.将“允许”下拉列表中的“任何值”修改为“自定义”,然后在“公式”文本框中输入以下公式:

公式表示A2的值必须大于等于2010年1月1日、小于2015年12月31日、大于等于A1单元格的数值(如果A1是文本则当作0计算)、A1单元格不能等于空值。

公式中的A2和A1采用的是相对引用,因此公式在不同单元格中时,公式中的A2和A1将代表不同的单元格。对于A2单元格的数据验证,采用的是公式

而A4单元格会将A2变成A4、将A1变成A3,其数据验证公式为

简言之,公式中的A2和A1并非代表A2单元格和A1单元格,而是当前单元格与上一个单元格,公式在不同单元格中A2和A1将代表不同的对象。

4.打开“数据验证”对话框的“出错警告”选项卡,“样式”保持“停止”不变,将“标题”设置为“友情提示”,将“错误信息”设置为“1.只能是2010年到2015年之间的日期2.必须是升序的日期3.上方不能有空白单元格”。图3.18和图3.19分别是设置公式与设置出错警告信息。

由于公式较长,在图 3.18 中未完整显示公式,请读者直接使用案例文件,在文件中有完整的公式。

使用公式限制单元格

图3.18 使用公式限制单元格

图3.19 指定警告信息

5.在“数据验证”对话框中单击“确定”按钮返回工作表界面。

6.在A2单元格输入日期2008-9-1,单击Enter键后Excel将弹出如图3.20所示的警告信息,同时禁止用户输入。

7.单击“重试”按钮,重新输入日期“2010-10-5”,由于此日期符合所有要求,因此Excel允许正常输入。

8.在A3单元格录入日期“2010-2-8”,由于当前日期不符合“大于等于上方单元格的日期”这个条件,因此Excel会弹出如图3.21所示的提示信息,同时禁止用户输入。

图3.20 日期小于2010年

图3.21 非升序日期

9.单击“重试”按钮,然后重新输入日期“2012-12-8”,此日期可以正常输入。

10.选择 A5 单元格,然后输入日期“2015-8-9”,尽管此日期在指定的范围之内,且大于前面的所有日期,但是不符合“上方单元格不能空白”的条件,因此Excel会禁止输入,同时弹出如图3.22所示的警告信息对话框。

图3.22 上方单元格空白

通过测试可以确定本例的数据验证设置满足所有需求。

知识扩展

1.DATE(2010,1,1)代表2010年1月1日,不能使用“"2010-1-1"”或“"2010年1月1日"”来代表2010年1月1日,因为它们都是文本,而DATE(2010,1,1)才是真正的日期值。

2.DATE(2015,12,31)代表2015年的最后一天,同理不能使用“"2015-12-31"”或“"2015年12月31日"”。

3.N函数可以将文本转换成0,数值保持不变,例如:

=N("Excel")——运算结果为0

=N(2015)——运算结果为2015

在本例中,由于上方的一个单元格有可能是日期值也有可能是文本,使用N函数将A1转换成数值后再与A2进行比较,否则A2单元格不管输入什么日期都会禁止输入,因为任意日期值都小于文本值。

4.Excel对数据的大小排序是:

逻辑值>文本>字母>数值

其中逻辑值包含 True 和 False,文本包含汉字、标点符号、片假名等,字母即 A~Z 和 a~z各26个英文字母。数值包含正数、负数、0,日期也是数值,仅仅显示形态不同于数值,但其本质仍是数值。

根据以上排序可以得知,任意文本都是大于数值和日期的,因此当 A1 是文本、A2 是日期时,A1总是大于A2。

5.And函数用于校验多个条件是否全部成立,本例中使用了3个条件,即And函数的3个参数。And函数支持1~255个参数。

6.设置数据验证时,不管当前选中了多大的区域,公式中只写左上角一个单元格,Excel会自动将这个公式应用到所有单元格中,而且公式会随单元格地址变化而变化,自动适应,不过前提是公式中的单元格采用相对引用。

7.通过数据验证对单元格的值进行限制时,如果是简单的限制,使用“允许”下拉列表的各种现成设置足以应付,像本例这种复杂的多条件限制则必须通过公式来限制。

8.多条件限制时只能通过公式一次性指定多个条件,不能分多次设置数据验证,像条件格式那样多个条件并存,因此本例中不同的错误类型只能共用一条警告信息。

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。