Table of contents
本教程将教你几个快速简单的方法,将Excel按字母顺序排列。 它还提供了非简单任务的解决方案,例如,当条目以名字开始时,如何按姓氏排列字母顺序。
在Excel中按字母顺序排序就像ABC一样简单。 无论你是对整个工作表还是选定的范围进行排序,垂直(一列)还是水平(一行),升序(A到Z)还是降序(Z到A),在大多数情况下都可以通过点击按钮完成任务。 然而在某些情况下,内置功能可能会出现问题,但你仍然可以找出一种方法来按字母顺序排序,如公式。
本教程将向你展示在Excel中按字母顺序排列的几种快速方法,并教你如何预见和预防排序问题。
如何在Excel中按字母顺序排列
总的来说,在Excel中按字母排序主要有3种方法:A-Z或Z-A按钮、排序功能和过滤。 下面你将看到每种方法的详细指导。
如何按字母顺序排列一列
在Excel中按字母排序的最快方法是这样的。
- 选择你想排序的那一列中的任何单元格。
- 关于 数据 选项卡,在 排序和过滤 组,点击其中一个 A-Z 来进行升序排序或 Z-A 降序排序,完成
同样的按钮也可以从 首页 标签> 编辑工作 组>。 排序和过滤 :
无论哪种方式,Excel都会立即将你的名单按字母顺序排列。
提示:在你完成排序后,在你做其他事情之前,仔细看看结果。 如果有什么地方看起来不对,点击 撤销 按钮来恢复原来的顺序。
按字母顺序排列,并将各行放在一起
如果你的数据集包含两个或多个列,你可以使用 A-Z 或 Z-A 按钮,将其中一列按字母顺序排列,Excel将自动移动其他列的数据,保持行的完整。
正如你在右边的排序表中所看到的,每一行的相关信息都被保存在一起。
在某些情况下,主要是当你的数据集中间只有一个或几个单元格被选中时,Excel不确定要对哪一部分数据进行排序,并询问你的指示。 如果你想对整个数据集进行排序,请保留默认的 扩大选择范围 选项被选中,并点击 分类 :
注意:在本教程中,"表 "只是任何数据集。 技术上讲,我们所有的例子都是针对范围的。 Excel表有内置的排序和过滤选项。
在Excel中过滤并按字母顺序排列
另一个在Excel中按字母排序的快速方法是添加一个过滤器。 这种方法的优点是一次性设置--一旦应用了自动过滤器,所有列的排序选项只需鼠标点击即可。
给你的表格添加过滤器很容易。
- 选择一个或几个列标题。
- 关于 首页 标签,在 "编辑 "组中,点击 排序和过滤 > 过滤器 .
- 小的下拉箭头将出现在每一列的标题中。 点击你想按字母顺序排列的那一列的下拉箭头,并选择 从A到Z排序 :
这一栏直接按字母顺序排列,过滤按钮上的一个向上的小箭头表示排序顺序(升序)。
要颠倒顺序,请选择 从Z到A的排序 从过滤器下拉菜单中选择。
拟 移除过滤器 ,只需点击 过滤器 再一次按下按钮。
如何将多栏按字母顺序排列
如果你想把几列的数据按字母顺序排列,请使用Excel 分类 命令,它对你的数据如何排序有更多的控制。
作为一个例子,让我们为我们的数据集再增加一列,然后按字母顺序排列条目,首先按 地区 ,然后通过 命名 :
要做到这一点,请执行以下步骤。
- 选择你要排序的整个表。
在大多数情况下,你可以只选择一个单元格,Excel会自动挑选其余的数据,但这是一个容易出错的方法,特别是当你的数据中存在一些空白(空白单元格)时。
- 关于 数据 选项卡,在 排序 & 筛选 组,点击 分类
- ǞǞǞ 分类 对话框中会出现Excel认为合适而自动为你创建的第一个排序级别。
在 排序方式 下拉框,选择你想先按字母顺序排列的那一列。 地区 在其他两个框中,保持默认设置。 排序 - 细胞值 和 秩序 - 从A到Z :
提示:如果第一个下拉菜单显示的是列字母而不是标题,请勾选 "取消"。 我的数据有标题 箱子。
- 点击 添加级别 按钮来添加下一级,并选择另一列的选项。
在这个例子中,第二层对在 命名 按字母顺序从A到Z列。
提示:如果你以相同的标准对多列进行排序,请点击 复制水平 而不是 添加级别 在这种情况下,你只需要在第一个框中选择不同的列。
- 如果需要的话,添加更多的排序级别,然后点击 认可 .
Excel将按照指定的顺序对数据进行排序。 如下面的截图所示,我们的表格完全按照字母顺序排列:首先按 地区 ,然后通过 命名 :
如何在Excel中按字母顺序对行进行排序
如果你的数据是水平排列的,你可能想按字母顺序跨行排序。 这也可以通过使用Excel 分类 特点。 这里是如何。
- 选择你要排序的范围。 如果你的表有不应该被移动的行标签,一定要把它们排除在外。
- 转到 数据 标签> 排序和过滤 组,并点击 分类 :
- 在 分类 对话框,点击 选项...
- 在小 分类选项 在出现的对话框中,选择 从左到右排序 ,然后点击 认可 以返回到 分类
- 从 排序方式 在其他两个框中,默认值就可以了,所以我们保留它们( 细胞值 在 排序在 盒,以及 从A到Z 在 秩序 框),然后点击确定。
结果是,我们表中的第一行是按字母顺序排序的,其余的数据也相应地重新排列,保留了条目之间的所有相关性。
在Excel中按字母顺序排序的问题
Excel的排序功能很神奇,但如果你处理的是结构不完善的数据,事情可能会出大问题。 以下是两个常见的问题。
空白或隐藏的列和行
如果你的数据中存在空行或隐藏的行和列,而你在点击排序按钮之前只选择了一个单元格,那么只有在第一个空白行和/或列之前的那部分数据会被排序。
一个简单的解决方法是在排序前消除空白并取消所有隐藏区域。 如果是空白行(不是隐藏行!),你可以先选择整个表格,然后按字母顺序排列。
无法识别的列标题
如果你的列头的格式与其他数据不同,Excel会很聪明地识别它们并排除在排序之外。 但如果列头行没有特殊的格式,你的列头很可能会被视为普通条目,并最终出现在排序数据的中间位置。 为了防止这种情况发生,只选择数据行,然后进行排序。
当使用 分类 对话框,确保 我的数据有标题 复选框被选中。
如何在Excel中用公式按字母顺序排序
Microsoft Excel提供了各种功能来应对许多不同的任务。 很多,但不是全部。 如果你面临的挑战没有内置的解决方案,有可能用公式就能完成。 对于字母排序也是如此。 下面,你会发现几个例子,当字母排序只能用公式来完成。
如何在Excel中按姓氏字母顺序排列
由于英语中有几种常见的名字写法,你有时会发现自己处于这样一种情况,即条目以名字开始,而你却需要按姓氏来排列字母顺序。
在这种情况下,Excel的排序选项无法提供帮助,所以让我们求助于公式。
在A2的全称中,在两个不同的单元格中插入以下公式,然后沿列复制,直到最后一个有数据的单元格。
在C2中,提取 第一个名字 :
=left(a2,search(" ",a2)-1)
在D2,拉动 姓氏 :
=right(a2,len(a2)-search(" ",a2,1))
然后,以逗号分隔的相反顺序串联各部分。
=D2&", "&C2
公式的详细解释可以在这里找到,现在让我们只关注结果。
由于我们需要按字母顺序排列名字,而不是公式,所以要把它们转换成数值。 为此,选择所有公式单元格(E2:E10),按Ctrl+C复制它们。 右键单击所选单元格,单击 价值观 根据 粘贴选项 ,然后按回车键。
很好,你就快成功了!现在,选择结果列中的任何单元格,点击 从A到Z 或 Z到A 上的按钮。 数据 选项卡,你就可以看到--一个按姓氏字母顺序排列的列表。
如果你需要恢复到原来的 名字 姓氏 格式,还有一些工作需要你去做。
通过使用下面的公式再次将名字分成两部分(其中E2是逗号分隔的名字)。
获取 第一个名字 :
=right(e2, len(e2) - search(" ", e2))
获取 姓氏 :
=left(e2, search(" ", e2) - 2)
并将这两部分结合起来。
=G2&" "&H2
再执行一次公式到数值的转换,你就可以开始了。
这个过程在纸面上可能看起来有点复杂,但相信我,在你的Excel中只需要几分钟的时间。 事实上,它甚至比阅读本教程的时间还要短,更不用说手动将名字按字母顺序排列 :)
如何在Excel中对每一行单独按字母顺序排列
在之前的一个例子中,我们讨论了如何通过使用排序对话框对Excel中的行按字母顺序排列。 在那个例子中,我们处理的是一组相关的数据。 但如果每一行都包含独立的信息呢? 你如何对每一行单独进行字母排序?
如果你有合理数量的行,你可以一个一个地执行这些步骤进行排序。 如果你有成百上千的行,这将是一种巨大的时间浪费。 公式可以更快地做同样的事情。
假设你有许多数据行,应该像这样按字母顺序重新排列。
首先,将行标签复制到另一个工作表或同一工作表中的其他位置,然后使用以下数组公式将每一行按字母顺序排列(其中B2:D2是源表中的第一行)。
=INDEX($B2:$D2, MATCH(COLUMNS($B2:B2), COUNTIF($B2:$D2, "<="&$B2:$D2), 0)
请记住,在Excel中输入数组公式的正确方法是按Ctrl + Shift + Enter 。
如果你对Excel数组公式不是很熟悉,请按照以下步骤在你的工作表中正确输入它。
- 在第一个单元格(本例中为G2)中输入公式,然后按Ctrl + Shift + Enter键。 当你这样做时,Excel将用{大括号}括住公式。 不要尝试手动输入大括号,那是行不通的。
- 选择公式单元格(G2),向右拖动填充柄,将公式复制到第一行的其他单元格(本例中最多为I2单元格)。
- 选择第一行(G2:I2)的所有公式单元格,向下拖动填充柄,将公式复制到其他行。
重要提示!上述公式在使用时有几个注意事项:你的源数据不应包含 空细胞 或 重复值 .
如果你的数据集有一些空白,可以用IFERROR函数包住公式。
=IFERROR(INDEX($B2:$D2,MATCH(COLUMNS($B2:B2),COUNTIF($B2:$D2,"<="&$B2:$D2),0)), " ")
不幸的是,没有一个简单的解决方案,如果你知道一个,请在评论中分享。
这个公式如何运作
上述公式是基于经典的INDEX MATCH组合,用于在Excel中执行水平查询。 但由于我们需要一种 "按字母顺序查询",我们以这种方式重建了它。
COUNTIF($B2:$D2,"<="&$B2:$D2)将同一行中的所有数值相互比较,并返回它们的相对等级数组。 例如,在第2行,它返回{2,3,1},意味着Caden是第2位,Oliver是第3位,Aria是第1位。 这样,我们得到MATCH函数的查询数组。
COLUMNS($B2:B2)提供查询值。 由于巧妙地使用了绝对和相对引用,返回的数字随着我们向右递增。 也就是说,对于G2,查询值是1,对于H2-2,对于I2-3。
MATCH在COUNTIF()返回的查找数组中搜索由COLUMNS()计算的查找值,并返回其相对位置。 例如,对于G2,查找值是1,它位于查找数组的第3个位置,所以MATCH返回3。
最后,INDEX根据其在行中的相对位置提取实值。 对于G2,它提取了B2:D2范围内的第三个值,即Aria。
如何在Excel中按字母顺序对每一列进行排序
如果你处理的是以列为单位垂直组织的独立的数据子集,你可以很容易地调整上述公式,对每一列进行单独的字母排列。 只要用ROWS()替换COLUMNS(),使一些列坐标为绝对值,行坐标为相对值,你的公式就准备好了。
=INDEX(A$3:A$5,MATCH(ROWS(A$3:A3),COUNTIF(A$3:A$5,"<="&A$3:A$5),0))
请记住,这是一个 阵列公式 ,这应该用Ctrl + Shift + Enter完成。
除了为那些无法用Excel内置排序选项完成的任务提供解决方案外,公式还有一个优势(虽然有争议:)--它们可以使排序 有活力 有了内置功能,每次添加新的条目时,你都必须求助于你的数据。 有了公式,你可以随时添加新的数据,排序的列表将自动更新。
如果你想让你的新的字母排列方式成为静态的,可以用以下方法将公式和它们的结果替换掉 粘贴专用 > 价值观 .
要想仔细了解本教程中讨论的公式,欢迎下载我们的Excel字母顺序工作表。 感谢你的阅读,希望下周在我们的博客上见到你!