在EXCEL里有没有内部函数能将数字型字符串进行内部从小到大排序?

来源:百度知道 编辑:UC知道 时间:2024/05/18 10:42:34
例如:
将"0914"重排为"0149"
将"91020"重排为"00129"。

一条完整的Excel 函数, 只可判断一个字符, 如判断4个字符, 便要写4条公式, 再用3个 & 将4条公式串起来
A1 = "0914"
数组公式输入:
=SMALL(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1,1)&SMALL(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1,2)&SMALL(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1,3)&SMALL(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1,4)
Ctrl + Shift + Enter 三键输入

如 A1 是 "1050175626", 公式便会非常长
此类判断多组字符再串连, 并非函数的强项, 应改用VBA自定义函数, 刚写代码如下:
Function az(num) As String
Dim xxx(1 To 10)
For i = 1 To Len(num)
j = Mid(num, i, 1) + 1
xxx(j) = xxx(j) + 1
Next
For ii = 1 To 10
az = az & String(xxx(ii), Trim(ii - 1))
Next
End Function
输入公式 =az(A1)
马上显示 0011255667