麻辣家族討論版版's Archiver

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

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=116288&ptid=23281]1#[/url] [i]e86137[/i] [/b]

建議可以甲、乙資料分開各別排序後再結合一起,謝謝

Andy2483 發表於 2021-7-29 09:19

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=116288&ptid=23281]1#[/url] [i]e86137[/i] [/b]


    如果資料在A欄
1.複製一份到B欄
2.另複製一份到D欄
3.B欄選取以 甲 做為分隔符號剖析得到C欄數字
4.D欄選取以 乙 做為分隔符號剖析得到E欄數字
5.以C.E欄做排序
以上參考

hcm19522 發表於 2021-7-29 10:17

[url]https://blog.xuite.net/hcm19522/twblog/589920080[/url]

samwang 發表於 2021-7-30 18:17

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=116288&ptid=23281]1#[/url] [i]e86137[/i] [/b]

資料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

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=116345&ptid=23281]5#[/url] [i]samwang[/i] [/b]


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

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供