返回列表 上一主題 發帖

[發問] Excel VBA條件排序問題

[發問] Excel VBA條件排序問題

想請問各位大大
若在同一儲存格內,可以利用三種條件下去排序嗎?
例如︰
L20[9/C]N
L20[7.5/B.5]S
L20[3.5/B.5]E
L20[15.5/D]N
L20[19/F]N      
L20[15.5/F.5]N  
L20[7/C]N      
L20[2/E]S      
L20[21/E]N      
     
---------------------------------------------------------
第一個條件為 L20、L10、L30,中括弧前為一個條件(紅色)
排序完成後,再來以中括弧內的數字大小排序(藍色)
最後以中括弧內的英文作排列(綠色)

L20[15.5/D]N

希望會排序成下列情況

L20[2/E]S  
L20[3.5/B.5]E
L20[7.5/B.5]S
L20[7/C]N  
L20[9/C]N
L20[15.5/D]N
L20[15.5/F.5]N  
L20[19/F]N         
L20[21/E]N      

還請各位大大幫忙想了,謝謝。

隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集4100篇 EXCEL函數

TOP

回復 2# hcm19522


    E2:E10{=INDEX(A:A,RIGHT(SMALL(MID(A$2:A$10,2,2)*10^9+MID(A$2:A$10,5,FIND("/",A$2:A$10)-5)*10^6+CODE(MID(A$2:A$10,FIND("/",A$2:A$10)+1,1))/1%+ROW(A$2:A$10),ROW(A1)),2))

抱歉,可以問一下
這判斷的流程是? 而紅字部份,是怎麼判斷的?

TOP

本帖最後由 hcm19522 於 2017-12-18 10:06 編輯

回復 3# 蒼雪

程式中10^9 .10^6與*1%三數的設定為第一二不超過99 (9與6次方與小數點一位差別) , 第二三用 CODE應差2次即可 ,最後2位給ROW空間 ,若數據大於99 ,空間須留3次方 ,如此往前推 ,大者*幾次方 "恆大" ,再擷取ROW空間的位置進行排序
幾次方沒固定 重點不可重疊
隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集4100篇 EXCEL函數

TOP

回復 1# 蒼雪


    輔助欄+自訂排序之方式,請參考:https://goo.gl/38zBPM
E0137_1.png
2017-12-18 11:06
*YC的筆記鋪 - Excel、Word教學
http://lyc017.pixnet.net/blog

TOP

回復 4# hcm19522


   今天實際使用了一下,結果整條的排序都只有L20[2/E]S....
    不知道是在哪一個環節出錯了

-----------------------------------------------------------------
若在這個條件可以完成下,可以也將相鄰的儲存格整列移動嗎?
L20[2/E]S  這個是在B欄,還有A、C欄的資料也可以一同移動嗎?

TOP

回復 6# 蒼雪

複製公式 不含 "=" ,貼上後加 "="   ;最前 "{" 代表 shift+ctrl+enter 三鍵一起按所產生 ,非程式裡面
隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集4100篇 EXCEL函數

TOP

回復 7# hcm19522


    有喔,我知道Ctrl+Shift+Enter
    今天反覆的再試了幾次,都還是一樣的情況

    結果出來會是 E2:10 都是 L20[2/E]S

TOP

回復 8# 蒼雪

原稿E2:E10{=INDEX(A:A,RIGHT(SMALL(MID(A$2:A$10,2,2)*10^9+MID(A$2:A$10,5,FIND("/",A$2:A$10)-5)*10^6+CODE(MID(A$2:A$10,FIND("/",A$2:A$10)+1,1))/1%+ROW(A$2:A$10),ROW(A1)),2))
隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集4100篇 EXCEL函數

TOP

回復 9# hcm19522


   

實驗結果

擷取.PNG
2017-12-20 16:12



我取下 〔INDEX(A:A,RIGHT(SMALL(MID(A$2:A$10,2,2)*10^9+MID(A$2:A$10,5,FIND("/",A$2:A$10)-5)*10^6+CODE(MID(A$2:A$10,FIND("/",A$2:A$10)+1,1))/1%+ROW(A$2:A$10),ROW(A1)),2))〕
來使用,結果得到的是 圖片的結果...

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題