跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在Excel中按奇数或偶数对行进行排序?

Author Xiaoyang Last modified

在Excel中按升序或降序对数字进行排序是一项常见任务,但有时您可能需要整理数据,使所有奇数归为一组,所有偶数归为另一组。例如,假设您有一个很大的数字列表,并希望将奇数和偶数值分开以方便分析或生成报表。按奇数或偶数值排序并非Excel的默认功能,但有多种实用方法可以帮助您实现这一目标。下面,您会找到几种解决方案来按奇数或偶数对行进行排序——无论您喜欢使用辅助列、公式、VBA代码还是高级插件都可以选择适合的方法。

A screenshot showing a list of numbers in Excel Arrow A screenshot showing the sorted list in Excel after applying sort by odd or even numbers

通过辅助列按奇数或偶数对行进行排序

使用Kutools for Excel按奇数或偶数对行进行排序

使用VBA代码按奇数或偶数对行进行排序

使用MOD公式识别奇数或偶数


通过辅助列按奇数或偶数对行进行排序

在Excel中按奇数或偶数值排序的最快方法之一是添加一个辅助列,该列可帮助Excel区分奇数和偶数以便进行排序操作。这种方法简单易行,适用于熟悉公式和排序功能的用户,且适用于任何Excel版本。此方法灵活,但确实需要临时添加一列。

1. 在您的数字列表旁边,在空白的相邻单元格中输入以下公式(例如,如果您的数字从A2开始,则将其输入到B2中): =ISODD(A2) 然后按Enter键。
请参见截图:

A screenshot showing how to apply the ISODD formula in Excel to identify odd numbers

提示:ISODD函数用于检查某个值是否为奇数。如果使用列标题,请确保公式引用的是正确的数据行。

2使用填充柄将公式向下拖动到整个列表旁边。该公式会为奇数填充TRUE,为偶数填充FALSE。这种视觉上的区别将是排序的基础。
请参见截图:

A screenshot showing the results of the ISODD formula in Excel indicating odd and even numbers

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

A screenshot showing the Sort options in Excel

4排序警告 对话框中,选择 扩展选定区域 并点击确定。这将确保所有行都正确排序,同时保持相关数据在一起。
请参见截图:

A screenshot of the Sort Warning dialog box

5点击 排序 按钮。如果您选择了“从小到大排序”,您的列表将按偶数在前、奇数在后的顺序分组(因为FALSE被认为小于TRUE)。
请参见截图:

A screenshot showing even numbers sorted together followed by odd numbers in Excel

注意:

1. 如果要使奇数出现在偶数之前,请在第3步中选择 从大到小排序
2. 排序完成后可以删除辅助列,以保持工作表整洁。
3. 注意不要仅对辅助列进行排序,否则会扰乱原始数据的顺序。

实用提示:此方法通用、离线可用,不需要宏或插件。但是,如果您经常需要按奇/偶排序,您可能希望尝试其他方法以提高自动化程度。


使用Kutools for Excel按奇数或偶数对行进行排序

对于那些管理大型数据集并希望获得更快、更灵活解决方案的用户,Kutools for Excel提供了一个高级排序功能,可以直接对奇数和偶数进行排序,而无需创建辅助列或编写复杂公式。这非常适合经常执行类似排序任务的用户,或者喜欢图形界面的用户。Kutools增强了排序功能,并支持高效的批量操作。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

安装Kutools for Excel后,按照以下步骤操作:

1. 选择您希望排序的数据范围。

2导航到 Kutools Plus > 排序 > 高级排序.
请参见截图:

A screenshot showing the Advanced Sort feature on the Kutools tab on the ribbon

3高级排序 对话框中,从 下拉菜单中选择您希望排序的列。在 排序依据 部分中,选择 奇偶数;然后选择所需的排序顺序: A到Z 表示偶数优先, Z到A 表示奇数优先。
请参见截图:

A screenshot of the Advanced Sort dialog box

4. 点击确定。您的列表将立即根据设置对奇数和偶数进行分组。以下是示例结果:

原始数据   从偶数到奇数排序   从奇数到偶数排序
A screenshot showing original unsorted data Arrow A screenshot showing data sorted from even to odd numbers in Excel Arrow A screenshot showing data sorted from odd to even numbers in Excel

点击了解有关此高级排序功能的更多信息。

立即下载并免费试用Kutools for Excel!

优点: 无需额外公式或列,界面简单,快速按奇/偶标准排序,非常适合频繁使用的用户。
注意事项: Kutools是一个第三方插件,需要安装,但因其强大的Excel增强功能而受到广泛信赖。


演示:使用Kutools for Excel按奇数或偶数对行进行排序

 
Kutools for Excel:超过 300 种实用工具触手可及!永久免费享受 AI 功能!立即下载!

使用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 或点击 Run button 按钮运行宏。在出现的输入框中选择您的数据列,宏将自动对数据进行排序,使偶数在奇数之前分组(或反之,取决于排序顺序)。

注意事项和故障排除:

  • 如果您将此宏应用于多列范围,只有所选列及其相邻列会被排序。为获得最佳效果,请仅选择要排序的列,或在高级用例中调整代码以实现多列排序。
  • 在运行宏之前,请确保已保存工作表,以避免意外数据丢失。
  • 非数字条目会被排到最底部以避免错误。

优点: 完全自动化,无残留辅助列,适合重复任务时快速完成。
局限性: 需要启用宏并具备一定的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中按域名对电子邮件地址进行排序?

如何在Excel中按最频繁值对数据进行排序?

如何在Excel中按删除线对数据进行排序或筛选?

如何在Excel中对行进行排序以将空白单元格置顶?


最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠