Board logo

標題: [發問] excel 中文+數字的排序 [打印本頁]

作者: e86137    時間: 2021-7-29 06:23     標題: excel 中文+數字的排序

每次客戶給我的資料會有甲1~甲1000以上
跟乙1~乙1000以上
總共會有2000筆資料以上
排序是亂的

我想要排成
甲1~甲1000多  再來乙1~乙1000多

如果用內建的排序A~Z
會變成乙1乙10乙100......甲998甲999
變成這樣的排序

用內建的排序Z~A
會變成甲999甲998.......乙100乙10乙1

本來想用自訂清單的功能
但數量好像有限制

用內建的自訂清單有個甲,乙,丙......
但排了也還是乙在前面
作者: samwang    時間: 2021-7-29 07:41

回復 1# e86137

建議可以甲、乙資料分開各別排序後再結合一起,謝謝
作者: Andy2483    時間: 2021-7-29 09:19

回復 1# e86137


    如果資料在A欄
1.複製一份到B欄
2.另複製一份到D欄
3.B欄選取以 甲 做為分隔符號剖析得到C欄數字
4.D欄選取以 乙 做為分隔符號剖析得到E欄數字
5.以C.E欄做排序
以上參考
作者: hcm19522    時間: 2021-7-29 10:17

https://blog.xuite.net/hcm19522/twblog/589920080
作者: samwang    時間: 2021-7-30 18:17

回復 1# e86137

資料A欄(A1是項目,從A2開始是資料甲或乙),請測試看看,謝謝

Sub test()
Dim Arr, i&
Arr = Range([c1], [a65536].End(3))
For i = 2 To UBound(Arr)
    Arr(i, 2) = Left(Arr(i, 1), 1)
    Arr(i, 3) = Mid(Arr(i, 1), 2)
Next
[a1].Resize(UBound(Arr), 3) = Arr
With [a1].Resize(UBound(Arr), 3)
    .Sort Key1:=.Item(2), Order1:=2, _
    Key2:=.Item(3), Order2:=1, Header:=xlYes
End With
Range("B2:C" & UBound(Arr)) = ""
End Sub
作者: e86137    時間: 2021-7-30 20:51

回復 5# samwang


成功了
這個方式也很方便!!!
感謝分享~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)