看板 Office 關於我們 聯絡資訊
即使要每列每列單獨的排序, 似乎也不需VBA~ --------------------------------------- A B C D E F G H I J K L M N O 1 1 7 5 E1 . . I1 J1 , M1 ; ; 2 3 6 3 . . . ^ , , ; ; ; 3 2 5 7 . . . ^ , , ; ; ; 4 3 7 2 . . . ^ , , ; ; ; 5 6 1 2 3 --------------------------------------- 同樣記號表拖曳範圍 E1 =RANK(A1,$A1:$C1,1) I1 =E1 拉至I4 J1 =COUNTIF($E1:E1,F1)+F1 M1 =INDEX($A1:$C1,MATCH(M$6,$I1:$K1,0)) M6 N6 O6是打上您想要排的順序 IJK部分是當值相同時,照先後順序定出不同的名次。 結果: M N O 1 5 7 3 3 6 2 5 7 2 3 7 就算有100列也是一次完成~(雖然是比較辛苦的一次XD) ※ 引述《nube3315 (寫os作業)》之銘言: : 標題: Re: [問題] Excel的排序問題 : 時間: Mon Aug 21 00:24:15 2006 : : ※ 引述《NhStory (任思念隨心所欲.....)》之銘言: : : (若是和其他不同軟體互動之問題 請記得一併填寫) : : 您所使用的軟體為: office excel : : 版本:2003 : : 問題: 一般排序都是由上向下排 : : ex. 1 7 5 1 7 5 : : 3 6 3 → 2 5 7 : : 2 5 7 3 6 3 : : 3 7 2 3 7 2 : : 若要由左向右排 則要怎麼設定? : : ex. 1 7 5 1 5 7 : : 3 6 3 → 3 3 6 : : 2 5 7 2 5 7 : : 3 7 2 2 3 7 : : 剛用一個檔案想排序 就發現了這問題... : : 一列一列排序是可以 但大量套用就沒辦法了 : : 就程式的想法來說,應該是把你每一行每一行都看成是同一類型的資料 : 比如像 成績啊 年齡之類的, : 所以不管是你要直的排還是橫的排 他都不會把資料打散 所以直排若要每列單獨排,也可用上面的方法~ : 其實如果要做 橫的排序 excel的排序是做的出來的啊 : 只要把<依欄排序>改成<依列排序>就好了 : 以你的例子 做出來的結果就會是 : 1 5 7 : 3 3 6 : 2 7 5 : 3 2 7 : 不過就像你講的,有100列你就要做100次。 : : 只是你的期望 比較不太一樣 所以就沒有辦法用比較一般的方法 : : 我想到的方法是,你可以用excel vba 去寫一個function : 這個function的工作就是去吃每一列的數字 : 然後把每一列排序好 : 全部排完以後,再做輸出的動作 : : 再把這個function錄製成macro (做成一個按鈕之類的) : 這樣做這件事情就會方便一點。 : : 如果你對excel vba 有興趣的話,可以去書店買書來研究 : 我覺得學會的話 對使用excel處理文書滿有幫助的 : 我再這邊也教不了多少, : 只是稍微分享一下我的想法這樣 : : -- : █◣█ █ █ ██◣ ███ ███ ███ ███ ███ ╭══╮ : █◥█ █ █ █▅█ █▇▇ ▇▇█ ▇▇█ ███ █▇▇ 好人! : █ █ ███ █▅█ █▇▇ ▇▇█ ▇▇█ ███ ▇▇█ ╰══╯ : telnet://ptt2.cc───┐┌────────────────────────── : ───────────┘└ 悶 是空氣不夠主動吧. . . . . . .... ────── : ────────────────────────────────────Plague : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 59.117.208.240 : 推 NhStory:謝謝 ^^ 09/02 12:35 : 推 martinccu:太複雜了...直接「轉置、排序,再轉置」就好了.... 11/15 01:40 : → martinccu:這樣也不需使用複雜的功能 11/15 01:41 : 推 martinccu:抱歉,看錯了,果然是需要以VBA才能快速進行 11/15 01:56 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.48.216
JieJuen:對了,因為是數字,可用rank.如果不是的話..再想想(用CODE?) 11/03 00:13
JieJuen:#192koisu 7507 10/31 21:51