作者JieJuen (David)
看板Office
标题Re: [问题] Excel的排序问题
时间Fri Nov 2 23:47:17 2007
即使要每列每列单独的排序,
似乎也不需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
1F:→ JieJuen:对了,因为是数字,可用rank.如果不是的话..再想想(用CODE?) 11/03 00:13