excel利用数组公式和自定义函数对单元格内的数字排序

时间:2023-04-22 08:52:05 

假如Excel工作表的A1单元格中包含某个数字,如“987650056789”,要将各位数字按从小到大顺序排列,即得到“005566778899”,通常可以用数组公式或自定义函数:

如果单元格内的数字不超过15为,可使用下面的数组公式将数字按从小到大的顺序排列,在B1单元格中输入:

=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)))

注意需按Ctrl+Shift+Enter结束输入。如果要将数字按从大到小的顺序排列,可将“SMALL”改为“LARGE”函数。受数字精度的限制,如果单元格内的数字超过15位,可能得不到正确的结果。而使用自定义函数则可用于较长的文本形式的数字。

按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口粘贴下列代码:

Function SortNumsInCell(num As String, Optional order As Boolean) As String
Dim Str As String
For i = 0 To 9
For j = 1 To UBound(Split(num, i))
Str = IIf(order, i & Str, Str & i)
Next
Next
SortNumsInCell = Str
End Function

上述代码定义了一个自定义函数,它有两个参数,第一个为单元格内的数字或直接输入的数字,第二个参数为“0”或省略时指定按从小到大的顺序排列,为“1”时则相反。关闭VBA编辑器,返回Excel界面,在B1中输入公式:

=sortnumsincell(A1)

即可得到按从小到大排列的数字。如果输入:

=sortnumsincell(A1,1)

则返回从大到小顺序排列的数字。

标签:公式,函数,数字,自定义,Excel函数
0
投稿

猜你喜欢

  • Win7系统扫描仪添加步骤全程图解

    2023-12-22 04:35:52
  • XP系统如何取消开机自动进行c盘检测

    2023-06-07 16:23:05
  • Win10系统怎样限制应用程序打开或关闭摄像头?

    2023-11-14 21:10:09
  • 如何使用wps制作装订线

    2022-12-14 10:59:19
  • 如何快速将Win7默认字体还原呢?

    2023-01-29 10:44:12
  • cad属性增强编辑器怎么用?

    2022-10-18 02:10:53
  • connectify怎么用_connectify设置使用教程

    2023-06-27 04:45:48
  • snkrs抢鞋技巧_snkrs抢鞋详细攻略教程

    2022-08-02 15:04:47
  • VLOOKUP函数的使用方法和操作示例

    2023-06-08 00:00:34
  • 深度分享微软原装Win10 U盘正版开箱全记录

    2022-06-15 06:12:20
  • ​电脑版wps页面铺满蓝色的斜线如何删除

    2022-12-18 04:22:12
  • 微软发布Win10升级指导视频 我的Windows 10升级在哪里?

    2022-11-14 18:49:28
  • win7怎么升级win10系统版本?

    2022-04-30 16:27:28
  • 海尔台式电脑进入bios设置U盘启动的方法步骤教程

    2022-06-26 05:57:12
  • VBA代码中两种调用Excel函数的操作方法

    2023-11-24 02:22:55
  • PowerPivot 强大的数据分析处理工具

    2022-01-27 11:17:47
  • Win10隐藏空的光盘、软盘等驱动器图标的方法

    2023-03-09 14:03:21
  • InfoTool.exe是什么进程 InfoTool进程是什么文件的

    2023-11-17 21:41:49
  • excel表是什么

    2022-08-02 12:07:52
  • Win10专业版如何使用分屏快捷键?

    2023-06-22 19:15:33
  • asp之家 电脑教程 m.aspxhome.com