Excel排序的详细方法

如果排序标准只有1个的话,可以使用简单方法。但是如果标准有2个以上时,就要使用详细方法了。操作顺序如下:

➊ 任意点击想要排序表格中的一个单元格(表中的任意单元格)。

➋ 【数据】选项卡➛点击【排序】。

➌ 在【主要关键字】中选择【日期】。

➍ 在【次序】中选择【升序】。

➎ 选中【数据包含标题】。

➏ 点击【确定】。

当存在多个排序条件时,点击【添加条件】,可以追加条件。

Excel掌握正确操作排序、自动筛选、数据透视表的条件

“我不会排序。”

“即使点了自动筛选,下方数据也不在筛选范围。”

你是否也遇到上述的烦恼呢?用 Excel 制作表格时,“排序”、“自动筛选”都是我们必须要掌握的功能。实际上,要想让这些功能正常运行是有一定前提条件的。

建立数据库的4个条件

排序、自动筛选、数据透视表等都属于 Excel 的“数据分析功能”。要让这些“数据分析功能”正常运作,需要在表格中创建“数据库”。数据库形式的表格,必须满足以下4个条件。

  • 第一行为标题行
  • 第二行之后,每行连续输入一个数据
  • 周边不临接含有多余数据的单元格

(相对独立的单元格范围)

  • 中间没有空白行

具体来说,就是下表的状态。

数据库范例

像这样的格式,就是数据库了,可以正常运作排序、自动筛选功能。让我们来尝试一下,在这个表格范围内选择其中一个,按住Ctrl +A ,整个表格都会被选中。

按下Ctrl +A ,选中整个含有数据的表格

也就是说,数据库功能的目标范围一直延伸到数据最下面一行。

为了方便大家理解,现在和中途有空白行的表格做比较。如下表,中间存在空白行,在空白行上方范围内选中某个单元格,按下Ctrl +A 。

中间存在空白行,按下Ctrl +A 后

空白行下面的部分并不被识别是同一数据库范围,也就是说无法执行排序、自动筛选等操作。如果在进行排序和自动筛选时发现有些数据并不在范围内,就要认真确认表格中间是否存在空白行。

Excel在序列输入时经常会增减选项

像 C 列中的“负责人选项表”这一项目的选项,在实际工作中调整这个选项的数量的情况其实非常普遍。如输入商品名称等操作,输入选项会因为商品的改动或下架有所调整。遇到这样的情况,如果“负责人选项表”所指定的范围是 C2:C4这种固定范围的话,如果之后要在单元格 C5中追加新的负责人名字,那么就无法出现在单元格 A2的序列输入选项列中。

输入新的负责人,无法显示在序列中

如此一来,想要把 C5也放入指定范围中,我们需要再次设置【来源】指定的范围。如果不需要经常增减选项的话,这样的操作也不会花太多时间,但若是需要频繁修改【来源】的范围,那么就麻烦了。如果序列输入可以自动对应【来源】内容做出调整,即使需要频繁修改也不会觉得麻烦。

为此,请在“负责人选项表”名称的引用位置里输入如下公式:

=OFFSET(负责人!$C$1,1,0,COUNTA(负责人!$C:$C)-1,1)

引用位置中输入=OFFSET(负责人!$C$1,1,0,COUNTA(负责人!$C:$C)-1,1)

这里使用的是 OFFSET 函数。这个函数非常重要,请务必掌握。这一函数的要点有两个:

  • 确定作为基准的单元格,将其理解为引用的单元格从这一位置“偏离”
  • 以基准单元格偏离后为起点来指定单元格的范围

OFFSET 函数的公式:

【公式】

=OFFSET(基准单元格,偏离行数,偏离列数)

OFFSET 函数的语法为:“第一参数指定的单元格(基准单元格)开始,第二参数指定向上或向下偏移几行,第三参数指定从第二参数偏离后的位置向右或向左偏移几行”。第二参数为正数则向下移动,为负数则向上移动。第三参数为正数则向右移动,为负数则是向左移动。

下面来看一下使用案例吧。下图中的工作表是 A1:D3为范围以性别和课程来分类的费用表。

A1:D3为范围以性别和课程来分类的费用表

男性为1、女性为2,并用括号括起来。每项各自以单元格 A1为基准,男性的费用在单元格 A1的下一行,女性的费用在单元格 A1的下两行。

关于课程,初级为1、中级为2、高级为3。也是以单元格 A1为基准,初级在 A1向右一列,中级在 A1向右第二列,高级在 A1向右第三列。

这时,在单元格 B5输入代表性别的数值,在单元格 B6输入代表课程的数值,单元格 B7中就会显示相应的费用金额。想要建立这种结构,需要在单元格 B7输入以下函数公式:

=OFFSET(A1,B5,B6)

在单元格 B7中输入=OFFSET(A1,B5,B6)

这个公式可以导出以单元格 A1为基准,A1~B5指定的数字向下、B6指定的数字向右偏移的单元格的值。

如图所示,第二参数单元格 B5为1,第三参数指定的单元格 B6为2。如此一来,A1向下偏移一格、再向右偏移两格……即指向 C2的值。这利用的是 OFFSET 函数的基础逻辑:第一参数指定的单元格为基准,第二参数指定的数字向下,再从这一位置以第三参数指定的数字向右移动所指向的单元格。

第二参数指定的数字若为负数,则第一参数为基准向上移动,第三参数指定的数字若为负数,则第一参数为基准向左移动。

顺带一提,运用这一函数也可以解决“在 VLOOKUP 函数中,是否能获取位于检索列左侧的数值吗”这一问题(参考 P116)。

如何指定范围

另外,通过 OFFSET 函数,还能以从基准单元格按第二参数数值向下、第三参数数值向右偏移的位置为起点,再次指定范围。但是此时需再追加2个参数。

=OFFSET(基准单元格,偏移行数,偏移列数,高度,宽度)

在下表中,B 列为每天的销售额。在单元格 D1中输入想要知道从1号开始到第 N 天的累计销售额的天数,单元格 G1就会自动显示销售额数据。

此表中,D1的数值为2,销售额 G1中则显示1日~2日两天的累计销售额。

在单元格 G1中,需要输入以下函数公式:

=SUM(OFFSET(B1,1,0,D1,1))

一般要计算数值的和,都会用到 SUM 函数,SUM 函数可计算出括号内指定的单元格范围内的和。SUM 函数括号内的 OFFSET 函数就在指定的单元格范围。

首先,我们只看 OFFSET 函数部分,确认它所指定的范围。这是以单元格 B1为基准,向下移动1格、向右移动0格,也就是不向右移动。于是,偏移的目标单元格为 B2。

再以 B2为起点,指向第四参数指定的行数(此表中单元格 D1的值为2,即2行)和第五参数指定的1列的范围(具体为 B2:B3)。

这里需要掌握的重要信息为:OFFSET 函数的第四参数指定的范围的行数若发生变化,OFFSET 函数指定的范围也会有所变化。

OFFSET 函数所指定的范围,可利用“根据单元格 D1的值,纵向扩展”这一点灵活应对。

  • D1值为3➛B2:B4
  • D1值为5➛B2:B6

应用这个方法,即便是序列输入模式,可以应对【来源】范围中数据有所增加的情况,选项也会自动增加。

那么接下来,我们再来看一下刚刚以“负责人选项表”为引用范围输入的公式。

=OFFSET(负责人!$C$1,1,0,COUNTA(负责人!$C:$C)-1,1)

我们来分析一下这个公式。首先,以“负责人”工作表中单元格 C1为基准,向下移动1格、向右移动0格的目标单元格,即单元格 C2为起点的范围。

想要指定这个范围的行数,需要使用 COUNTA 函数。通过 COUNTA 函数,将整个 C 列的含数据的单元格的行数减去1。由于 C 列中含数据的单元格中含有第一行“负责人选项表”这一项目,因此需要减去这一行。

然后,用第五参数指定范围的宽度为1。

第四参数的 COUNTA 函数一般所取的是整个 C 列中含数据的行数减1后得到的数字,所以当 C 列中追加负责人后,“负责人选项表”的范围也应自动进行相应的扩大。

如此一来,单元格指定范围的“负责人选项表”下的数值,与单元格 A2的菜单中的下拉选项的数值必须要一致。

“负责人选项表”与单元格 A2的菜单中的下拉选项的数值一致

Excel为单元格或多个单元格范围定义名称

另外,在【来源】栏中指定含有作为选项的数据的单元格范围时,除用鼠标直接选中范围外,还可以命名单元格范围后再指定。因为 Excel 2003以前的版本,如果要将其他工作表的单元格作为“来源”使用,无法直接用鼠标操作选择范围来设置(Excel 2007之后的版本中可以)。

Excel 可以给任意单元格或单元格范围命名。这种功能叫作“定义名称”。

比如说,将单元格范围 C2:C4命名为“负责人选项表”吧。

➊ 选择单元格 C1,【公式】选项卡➛点击【定义名称】。

➋ 弹出“新建名称”的画面。

➌ 在【名称】一栏中输入想命名的名称。

运行这一功能后,能将选中的单元格的数值自动加入“名称”一栏中。如果想使用的数值已经存在于工作表的单元格中,那么直接选中该单元格即可。

➍ 如想要消除【引用位置】栏中原来的所有内容,可以用鼠标选择 C2:C4范围,点击【确定】。

➎ 于是 C2:C4范围被命名为“负责人选项表”。

在确认、编辑定义后的名称及其引用范围时,可以使用“名称管理器”。在【公式】选项卡中点击【名称管理器】后,就会看到以下画面,立刻就会知道名称和其对应的范围。

【名称管理器】画面

Excel下拉菜单:在工作表中预先制作选项一览

如下图所示,想要将 C 列中的负责人设置为选项,在单元格 A2中以序列模式输入,应该如何设置呢?

把 C 列中的负责人为选项,在单元格 A2中设置序列输入

选项数量不会有所增减(也就是说,后期不会进行数据更新),想在同一个工作表中设置参照系时,可以按照下面的步骤快速设置。

➊ 选中单元格 A2,【数据】选项卡➛点击【数据有效性】。

➋ 【设置】选项卡➛【允许】中选择【序列】。

➌ 【来源】栏中点击一下,鼠标选中单元格 C2~C4,点击【确定】。

这样就单元格 A2中设置了范围以 C2:C4为来源的序列输入模式。

单元格 A2,设置了单元格范围以 C2:C4为来源的序列输入模式

像这样,预先将单元格设置为序列输入模式,之后只要从选项中选择即可,不仅输入操作会更加轻松,也能避免输入错误信息。

比起将序列输入的来源范围放在同一张工作表中,另外准备一个工作表作为“选项表”用来整合数据这种做法更加方便。

Excel如何限制单元格的数值

在第5章中曾介绍过,输入日期时要用公历的形式输入,但这也是非常麻烦的工作。而且,在表格中输入数据的人可能并不是十分清楚输入日期的方法。

因此,在制作需要输入日期的表格时,应该把年、月、日的数据分别输入3个不同单元格中,以这3个单元格的数值为参数,用 DATE 函数填充日期数据。这样就可以避免每次都输入斜线,提高了输入效率。

将年、月、日分别输入3个不同的单元格中,以这3个单元格的数值为参数,用 DATE 函数填充日期数据

运用这种方法的话,在输入数据时就不会出现错误。前文中也曾提到,有时会使用已经制作好的表格,而有些人不清楚要按照公历的格式输入日期。这个方法让其他填写表格的人也能够正确输入日期数据,从而顺利推进工作。

如上表,在单元格 A1中输入“年份”,单元格 A2输入“月份”,单元格 A3输入“日期”。单元格 A6的 DATE 函数以单元格 A1、A2、A3的数值为参数生成日期数据。单元格 B6的 TEXT 函数引用单元格 A6的数据生成的星期数据。

这时,如果想要在输入月份的单元格中不出现1~12以外的数字,可以按照以下步骤操作。

➊ 选中只允许输入1~12的数值的单元格,即单元格 A2,点击【数据】菜单栏➛点击【数据有效性】。

➋ 从【允许】中选择【整数】。

➌ 【最小值】输入1,【最大值】输入12,并按【确定】。

这样在单元格 A2里,即便想要输入1~12之外的数值,系统也会立刻弹出下图中的提示,无法输入。

如果想输入1~12之外的数值,会出现警告提示

这样就能防止输入错误。

使用“数据有效性”的2个好处

想要提高工作效率和生产率有一点很重要,那就是建立零失误的结构。如果出现错误,就需要花费不必要的时间与精力去恢复数据,这样就会使工作的生产率下降。所以说,努力降低失误的发生概率,与提高生产率有直接联系。

Excel 中有一个重要功能——数据有效性。使用这个功能,有2个好处:

  • 更高效地输入数据
  • 避免输入错误

例如,需要从几个选项中多次输入相同数据时,在需要输入的单元格范围内将有效性条件设定为允许“序列”输入,这样就能从下拉菜单中选择想输入的数据。

使用“序列”输入有一个好处,就是能够确保每次都用相同字符串输入相同的数据。例如,要输入相同公司名称的时候,有的地方是“××股份有限公司”,有的是“××(股份公司)”,这些数据虽然都代表同一家公司,但也会出现不同的字符串(这种情况叫作“标示不统一”)。在这种情况下,在统计和处理数据时,Excel 无法将这两种公司名称数据自动识别为同一家,因此会出现各种各样的错误。

另外,限制单元格中的数值,也能防止输入错误。

Excel消除单元格内换行的2个方法

消除单元格内换行的方法有2个。

第1种,使用 CLEAN 函数。例如,在含有以下公式的单元格中,会返回消除单元格 A1的换行后的数值。

=CLEAN(A1)

另一种方法就是使用替换功能。例如,想要一次性消除 A 列中所有单元格的换行,可进行如下操作。

➊ 选择 A 列,按Ctrl +H 启动替换功能

➋ 点击【替换】菜单后,按下快捷键Ctrl +J (菜单中没有显示内容,不要介意,继续操作)

➌ 点击【全部替换】➛点击【关闭】

Excel单元格内的换行,以及换行后的数据

制作表格时,特别是当项目名称无法完全显示在一行单元格中,就需要换行输入。想要在 Excel 的单元格中换行,可以在需要换行的位置按下面的快捷键。

Alt +Enter

切记不要按空格换行。

但是,我们要注意,换行后的单元格的值,会与换行前的单元格的值有所不同。比如下面这个例子,单元格 A2与单元格 B2分别输入“大大改善”。单元格 B2在“大大”之后按下Alt +Enter 进行了换行处理。在单元格 C2中输入 EXACT 函数来检查两个单元格内的数值是否相同。结果是返回 FALSE。也就是说,这两个单元格内的数值并不相同。

内容都是“大大改善”,换行后却变成了不同的数值

因此,在处理用于 VLOOKUP 函数的检索值、检索范围等数值的换行时有必要注意这一点。如果有对某一个数值进行过换行处理,那么在计算时就有可能无法得到预期的结果。这是因为这个快捷键具有“强制换行”的意思。

制作易懂的表格:每隔一行标不同颜色,做成简单易懂的表格

作为使用条件格式的应用实例,我们可以制作出下表这样每隔一行填充颜色的条纹式表格,让数据看起来更清晰。

每隔一行填充颜色的表格

当然,这种操作也绝对不能“逐个手动填充”,务必牢记要将复杂的操作变得轻松、简单。

在这个例子中想法最重要。如何利用条件格式设置“每隔一行填充颜色”呢?

答案是“仅对奇数行或偶数行填充颜色”,这样就能每隔一行填充颜色了。

例如,要给奇数行填充颜色,那么针对表格内的单元格,设定“若此单元格为奇数行则填充颜色”。单元格的行数可用 ROW 函数取得。若用 ROW 函数得到的行数是否为奇数,可以用“该数字除以2余1则为奇数”这个逻辑进行判定。让我们看一下具体的操作步骤。

➊ 选择想要设置的范围

➋ 【开始】菜单栏➛【条件格式】➛点击【新建规则】

➌ 选择【使用公式确定要设置格式的单元格】

➍ 栏目中输入以下公式

=MOD(ROW(),2)=1

➎ 【格式】➛在【填充】中选择喜欢的颜色点击确定➛回到【新建规则】点击确定

这样就可以做到给每隔一行填充颜色。

每隔一行就填充上了颜色

此处出现的 MOD 函数,能够得出第二参数指定的数值除以第一参数指定的数字后得到的余数。下列逻辑式,针对在指定的单元格范围中的各个单元格设定了“ROW 函数取得的数字被2除余1”的条件。

=MOD(ROW(),2)=1

这样就能够设定给在选中的范围内符合这一公式的单元格填充颜色。