如何在 Excel 中按行号的奇偶性对数据进行排序?
在 Excel 中按升序或降序对数字排序是常见操作,但有时您可能希望将数据重新组织为所有奇数集中在一起、所有偶数集中在一起的形式。例如,面对庞大的数字列表时,将奇数与偶数值分开有助于更轻松地分析数据或生成报告。虽然 Excel 本身并未内置按奇偶性排序的功能,但您仍可通过多种实用方法实现这一目标。以下介绍了几种按奇数或偶数对行进行排序的解决方案——无论您偏好使用辅助列、公式、VBA 代码,还是高级插件。
![]() | ![]() | ![]() |
使用辅助列按奇数或偶数对行进行排序
在 Excel 中,按奇偶值对数字排序的最快方法之一是添加一个辅助列,让 Excel 在排序时能轻松区分奇数和偶数。此方法简单直接,适用于所有 Excel 版本,尤其适合熟悉公式与排序功能的用户。虽然操作灵活,但需临时插入一个新列。
1. 在数字列表旁的空白相邻单元格中(例如,若数字从 A2 开始,则在 B2 中)输入以下公式:=ISODD(A2),然后按 Enter。
参见截图:

提示:ISODD 函数用于判断数值是否为奇数。若使用了列标题,请确保公式引用的是正确的数据行。
2. 使用填充柄将公式向下拖动,覆盖整个列表。公式会为奇数行返回 TRUE,偶数行返回 FALSE。这种视觉区分将作为排序的依据。
参见截图:

3. 保持公式单元格处于选中状态,然后单击数据> 排序小到大 或排序大到小。

4. 在排序警告对话框中,选择扩展选定区域,然后单击“确定”。这可确保所有行正确排序,同时保持相关数据完整关联。
参见截图:

5. 单击排序按钮。若选择“排序小到大”,您的列表将按偶数在前、奇数在后的顺序分组(因为 FALSE 被视为小于 TRUE)。
参见截图:

注意事项:
1. 要让奇数排在偶数前面,请在步骤 3 中选择排序大到小。
2. 排序完成后,可删除辅助列,让工作表更整洁。
3. 注意:切勿仅对辅助列排序,否则会打乱原始数据的顺序。
实用提示:此方法通用、无需联网,也无需宏或插件。但如果您经常需要按奇偶排序,不妨尝试其他方法,进一步提升自动化效率。
使用 Kutools for Excel 按奇数或偶数对行进行排序
Kutools for Excel 为管理大型数据集并追求更快、更灵活解决方案的用户,提供了高级排序功能,可直接按奇偶数排序——无需创建辅助列或编写复杂公式。此方法特别适合经常执行此类排序任务或偏好图形界面的用户。Kutools 不仅强化了排序功能,更高效支持批量操作,助您轻松提升效率!
安装 Kutools for Excel 后,请按以下步骤操作:
1. 选择需要排序的数据范围。
2. 转到 KUTOOLS PLUS > 排序 > 高级排序。
参见截图:

3. 在高级排序对话框中,从列下拉菜单中选择要排序的列;在排序依据部分,选择奇偶数,然后根据需要选择排序顺序:A 到 Z表示偶数在前,Z 到 A表示奇数在前。
参见截图:

4. 单击确定,您的列表将立即按设置对奇偶数进行分组。以下是示例结果:
| 原始数据 | 从偶数到奇数排序 | 从奇数到偶数排序 | ||
![]() | ![]() | ![]() | ![]() | ![]() |
优势:无需额外公式或辅助列,界面简洁直观,可快速按奇偶行条件排序,非常适合高频用户。
注意事项:Kutools 是一款需安装的第三方插件,凭借强大的 Excel 增强功能,广受用户信赖。
演示:使用 Kutools for Excel 按奇数或偶数对行进行排序
使用 VBA 代码按奇数或偶数对行进行排序
如果您希望自动化按奇偶值对数字进行排序的过程,使用 VBA 宏是一种高效之选。此方法特别适合具备基础宏知识的用户,尤其适用于需要频繁重复排序、希望避免添加辅助列或不愿依赖第三方插件的场景。VBA 能为您提供一种快速、简洁的原位排序方案。
1. 单击开发工具 > Visual Basic,打开 Microsoft Visual Basic for Applications 窗口。若未显示“开发工具”选项卡,可通过 Excel 选项启用。在 VBA 窗口中,单击插入 > 模块,并将以下代码粘贴到模块中:
Sub SortByOddEven()
Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim arr As Variant
Dim HelperArr() As Integer
Dim i As Long
On Error Resume Next
Set ws = Application.ActiveSheet
Set rng = Application.InputBox("Select the range to sort (single column):", "KutoolsforExcel", Type:=8)
If rng Is Nothing Then Exit Sub
arr = rng.Value
ReDim HelperArr(1 To UBound(arr, 1))
For i = 1 To UBound(arr, 1)
If IsNumeric(arr(i, 1)) Then
HelperArr(i) = arr(i, 1) Mod 2
Else
HelperArr(i) = 2 ' Non-numeric entries go last
End If
Next i
' Add helper column
rng.Offset(0, 1).Resize(UBound(arr, 1), 1).Value = Application.Transpose(HelperArr)
' Sort by helper column
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:=rng.Offset(0, 1), SortOn:=xlSortOnValues, Order:=xlAscending
With ws.Sort
.SetRange rng.Resize(, 2)
.Header = xlNo
.Apply
End With
' Remove helper column
rng.Offset(0, 1).Resize(UBound(arr, 1), 1).Clear
MsgBox "Rows are sorted by odd (1) or even (0) numbers.", vbInformation, "KutoolsforExcel"
End Sub 2. 按 F5 或单击
按钮运行宏。在弹出的输入框中选择数据列,宏将自动对数据进行排序,使偶数在前、奇数在后(或根据排序顺序反之亦然)。
注意事项与故障排除:
- 如果将此宏应用于多列区域,仅所选列及其相邻列会参与排序。为获得最佳效果,请仅选择需要排序的列;若需在高级使用场景中实现多列排序,可相应调整代码。
- 运行宏前,请务必保存工作表,以防数据意外丢失。
- 非数值条目将自动排至底部,以避免出错。
优势:完全自动化,无需保留辅助列,轻松应对重复任务。
局限性:需启用宏并具备一定 VBA 经验;处理敏感数据时请谨慎使用。
使用 MOD 公式识别奇数或偶数
除了 ISODD 函数外,您还可以使用 MOD 函数来轻松区分奇偶数。这种方法特别适合熟悉标准数学运算的用户,或正在使用缺少某些函数或本地化支持的旧版 Excel 的用户。MOD 方法会返回清晰的数值标识:0 代表偶数,1 代表奇数,助您精准掌控排序顺序,并无缝集成到其他排序工作流中。
1. 在数字旁边的空白单元格中(例如 B2)输入以下公式:
=MOD(A2,2) 此公式将 A2 中的值除以 2 并返回余数:偶数结果为 0,奇数结果为 1.
2. 将此公式向下填充,以应用到其余数字列表。
3. 按照前述辅助列方法,根据此辅助列对数据进行排序(数据 > 排序)。选择“从小到大”排序,即可将所有偶数(0)排在所有奇数(1)之前。
提示:
- 如果您的数据包含非整数值,MOD 函数仍可正常运行,但只有整数部分会按预期返回 0 或 1.
- 此方法不受语言和地区限制,且比 TRUE/FALSE 输出更直观。
- 您可通过切换升序与降序排序,轻松调整顺序。
相关文章:
如何在 Excel 中对行进行排序,使空白单元格显示在顶部?
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱





