一个复杂排序问题请大虾帮助,急!
原始表格如下:num 标题
1.1 张三
1.2 李四
10.1.3 王五
10.1.1 赵六
6.2.3 钱七
2.3 孙八
期望排序结果,根据NUM进行升序排列
num 标题
1.1 张三
1.2 李四
2.3 钱七
6.2.3 孙八
10.1.1 赵六
10.1.3 王五
--------------------编程问答-------------------- select num
from testtable order by
lpad(substr(num,1,instr(trim(num),'.')-1),3,'0') ||
decode(instr(trim(num),'.',1,2),
0,
(lpad(substr(trim(num),(instr(trim(num),'.')+1)),3,'0')) || '000',
(lpad(substr(trim(num),instr(trim(num),'.')+1,(instr(trim(num),'.',1,2))-(instr(trim(num),'.')+1)),3,'0'))
|| (lpad(substr(trim(num),(instr(trim(num),'.',1,2)+1)),3,'0'))) --------------------编程问答-------------------- 你什么数据库? --------------------编程问答-------------------- EXCEL数据?
假设数据在A,B两列
Sub macro1()
Application.ScreenUpdating = False
Dim i As Long, n As Long
[c:c] = [a:a].Value
[c:c].TextToColumns [c1], xlDelimited, , , , , , , True, ".", , , , True
With [a1].CurrentRegion.Offset(1, 0)
n = .Columns.Count
For i = n To 3 Step -1
.Sort [a2].Offset(, i - 1)
Next
.Offset(-1, 2) = ""
End With
Application.ScreenUpdating = True
End Sub
--------------------编程问答-------------------- 我用了分列的方法解决了,不过效率低。谢谢楼上大哥的帮助。 --------------------编程问答-------------------- 这个简单啊,网上搜一下就得到答案了.
补充:VB , VBA