Excel中如何按照一组无规律文本中的数字排序(高手指点,多谢)

2024-11-19 02:46:01
推荐回答(3个)
回答1:

打开excel---按 ALT+F11---左边双击你这组数据所在的表 如 sheet1,在弹出的窗口里面复制代码进去,按 F5运行。
如果还是不会,可以把表发我邮箱,我帮你放进去。

Sub 排序()
Dim I As Long, J As Long, Arr()
Dim N As Long
For I = 1 To Range("B65536").End(xlUp).Row
For J = 1 To Len(Range("B" & I).Text)
If IsNumeric(Mid(Range("B" & I).Text, J, 1)) Then
ReDim Preserve Arr(N)
Arr(N) = Val(Mid(Range("B" & I).Text, J)) & "," & Range("B" & I).Text
N = N + 1
Exit For
End If
Next
Next
Call Paixu(Arr)
For I = 0 To UBound(Arr)
Range("B" & I + 1) = Split(Arr(I), ",")(1)
Next
End Sub
Private Function Paixu(ByRef Arr()) '冒泡法排序
For I = UBound(Arr) To LBound(Arr) Step -1
For J = LBound(Arr) To I - 1
If Val(Arr(I)) < Val(Arr(J)) Then
Temp = Arr(I)
Arr(I) = Arr(J)
Arr(J) = Temp
End If
Next
Next
End Function

回答2:

这个得需要使用VBA语言了,做一个小程序,对每行的第二列逐字母进行判断,如果是数字就拷贝到第三列。最后根据第三列对所有行排序即可。
另外,每行数据应该还是有一定规律的,比如是否都是两个数字?是否数字都是挨着一起的?如果是这样就比较好办了。

回答3:

B1
=-LOOKUP(,-MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$20),1)),0),ROW($1:$20)))

按ctrl+shift+enter结束公式输入,下拉填充

然后选中AB两列,以B列数字为主关键字进行排序。