乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel中如何对同一行的不同单元格的数字进行排序-excel对数字排序,excel按最后数字排序

excel中如何对同一行的不同单元格的数字进行排序-excel对数字排序,excel按最后数字排序

作者:乔山办公网日期:

返回目录:excel表格制作


原来数据在A列

在B1输入

=len(A1)

填充到底

选中AB两列

以B列为主要关键字升序排列



D1单元格输入公式后,按SHIFT+CTRL+ENTER三键结束
=SUM(SMALL(--RIGHT(A1:C1),{1,2,3})*10^{0,1,2})

 1、假设“所属AP分组”在copyA列,“# AP MAC地址”在B列,且C列、D列没有数据(如果有数据,将辅助列放在最后一列)

2、在D2输入

1=--MID(A2,MATCH(,0/MID(A2,ROW($1:$99),15),),15)

按【CTRL+SHIFT+回车】后 ,下拉填充公式。

3、C2输入

1=SUBSTITUTE(A2,D2,"")

下拉填充公式(如上图)

4、选中A2:Dn(n指你A列最大数据行数),执行排序,第一关键字设置为C列,第二关键字设置为D列,确定,OK!



Public cc As Variant
Dim arr(), arr1(), arr2()
Sub 知道正则排序()
Set regx = CreateObject("vbscript.regexp")
With regx
.Global = True
.Pattern = "[\u4E00-\u9FFF]\d+\.?\d?"              '正则匹配一个汉字+多个数字
Set mat = .Execute(cc)                           '输入单元格变量
ReDim arr(1 To 1, 1 To mat.Count)
ReDim arr1(1 To 1, 1 To mat.Count)
For Each m In mat
k = k + 1
arr(1, k) = m                                      '结果转换成数组
Next m
k = 0
End With
End Sub
Sub 主体()
If ActiveCell = "" Then
MsgBox "请选择一个有内容的单元格或区域!"
GoTo Endd
End If
Strr = InputBox("请输入一个新的排序,用[.]隔开:" & Chr(10) & "数量不要超过每单元内的汉字数!", "输入序列", "3.2.1")
For Each cc In Selection
次数 = 次数 + 1
行 = cc.Row
列 = cc.Column
Call 知道正则排序
顺序数组 = Split(Strr, ".")
For Each 序列 In 顺序数组
n = n + 1
arr1(1, n) = arr(1, 序列)                   '交换数组
Next 序列
Erase arr
n = 0
arr1 = Application.Index(arr1, 1, 0)       '提取数组第一行
'ReDim Preserve arr2(1 To 1, 1 To 次数)
Cells(行, 列 + 3) = Join(arr1, "")         '输出
'arr2(1, 次数) = Join(arr1, "")            '链接输出备用
Erase arr1
Next cc
Endd:
End Sub

代码功能:

1、先选中要处理的数据(不要包含空单元格!)

2、点击执行,结果会输出到数据右侧

代码使用方法:

Alt+F11调出VBA窗口

如需源文件,私信或给我接收e69da5e887aae799bee5baa6e79fa5e98193336邮箱,发给你。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网