KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中对单元格内的数字进行排序?

作者Xiaoyang修改日期

对我们来说,对一列中的数字进行排序既简单又常见,但您是否尝试过对单个单元格内的数字进行排序?或许除了逐个手动排列外,您尚未找到更高效的方法。本文将为您介绍如何在 Excel 中轻松实现单元格内数字的排序。

对公式内的数字进行排序

使用自定义函数对单元格内的数字进行排序

使用 VBA 代码对单元格内以逗号分隔的数字进行排序


蓝色右向箭头气泡对公式内的数字进行排序

若要对工作表中单元格内的数字进行排序,您可以应用以下长公式,请按如下操作:

1. 在数据旁输入以下公式,本例中我将其输入到单元格 C1 中,参见截图:

=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))

使用公式对单元格内的数字进行排序

2. 然后同时按下 Ctrl + Shift + Enter 键,再将填充柄拖动至目标区域以应用此公式,即可获得按从小到大排序的数字。参见截图:

将填充柄拖动到目标区域以应用此公式

注意:

1. 若单元格中的数字超过 15 位,此公式将无法返回正确结果。

2. 若需按降序对数字进行排序,可使用以下公式:=TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT(“1:“&LEN(A1))),1),ROW(INDIRECT(“1:“&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT(“1:“&LEN(A1))))),REPT(“0“,LEN(A1)))。

3. 在上述公式中,A1 代表包含待排序数字的单元格,您可根据实际需求灵活调整。

kutools for excel AI 的截图

借助 KUTOOLS AI 解锁 Excel 的神奇功能

  • 智能执行:只需输入简单命令,即可执行单元格操作、分析数据并创建图表。
  • 自定义公式:生成量身定制的公式,助您优化工作流程!
  • VBA 编码:轻松编写并运行 VBA 代码。
  • 公式解析:轻松掌握复杂公式,一目了然!
  • 文本翻译:轻松打破电子表格中的语言障碍!
借助 AI 驱动的工具提升您的 Excel 能力。立即下载,体验前所未有的高效!

蓝色右向箭头气泡使用自定义函数对单元格内的数字进行排序

由于公式存在一些限制,您可以使用以下自定义函数,对超过 15 位数字的单元格内容进行排序。

1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口

2. 单击插入> 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:对单元格内的数字进行排序

Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'Update 20140717
Dim xOutput As String
For i = 0 To 9
  For j = 1 To UBound(VBA.Split(pNum, i))
    xOutput = IIf(pOrder, i & xOutput, xOutput & i)
  Next
Next
SortNumsInCell = xOutput
End Function

3. 然后保存并关闭代码,返回工作表,在数据旁边的空白单元格中输入公式 =sortnumsincell(A1),参见截图:

使用自定义函数对单元格内的数字进行排序

4. 然后将填充柄拖动至目标单元格以应用此公式,所有单元格中的数字将按升序自动排序,如下图所示:

将公式拖动并填充到其他单元格

注意:如需按降序对数字进行排序,请输入公式 =sortnumsincell(A1,1)


蓝色右向箭头气泡 使用 VBA 代码对单元格内以逗号分隔的数字进行排序

如果您的数字由特定字符(如逗号、分号、句点等)分隔(如下图所示),该如何对单元格中的数字进行排序?现在,我为您介绍一段 VBA 代码来实现此功能。

对由逗号分隔的数字进行排序

1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口

2. 单击插入> 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:对单元格内以逗号分隔的数字进行排序

Sub SortNumsInRange()
'Update 20140717
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng
    Arr = VBA.Split(Rng.Value, ",")
    For i = 0 To UBound(Arr)
        xMin = i
        For j = i + 1 To UBound(Arr)
            If Arr(xMin) > Arr(j) Then
                xMin = j
            End If
        Next j
        If xMin <> i Then
            temp = Arr(i)
            Arr(i) = Arr(xMin)
            Arr(xMin) = temp
        End If
    Next i
    Rng.Value = VBA.Join(Arr, ",")
Next
End Sub

3. 然后按下 F5 键运行此代码,在弹出的提示框中选择包含数字的单元格,参见截图:

用于选择单元格的 VBA 代码

4. 然后单击确定,原始区域中所有单元格的数字将按升序排序。

注意:您可以根据需要将上述代码中的逗号“,”替换为任意其他字符。此代码仅支持升序排序。


相关文章:

如何在 Excel 中对带连字符的数字进行排序?

如何在 Excel 中按出现频率最高的值对数据进行排序

如何在 Excel 中按域对邮箱地址进行排序?

如何在 Excel 中排序行,使空单元格位于顶部?

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 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、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱