这个问题不需要用micro,用function就可以解决

在CDE的旁边建立一些dummy colum,假设是FGH
在f1输入下面的function:
=rank(c1,$c:$f,1),把这个公式fill right到h1,再fill down到N行(N是你的cde里面数据的最大行数,多一点也没关系)。
这样你所有的数据都有了自己的rank。
在I列series fill到N行(就是1,2,3,4....)
然后在A1输入下面的function:
=sumif($f:$h,$i1,$c:$f)
然后fill down,搞定!
基本的想法就是,把数据的rank找出来,然后根据他们的rank,放到各自的位置上。
这样做的好处是完全自动,只要你输入一行数据,就会自动排列一次。不过有可能整个数据表都需要重新计算。
另外,上面的算法要求你的数据没有重复。如果有重复,就要在rank的数据里面加上一些多余的变量来避免重复。总之,妥善利用dummy列。:)

所有跟帖: 

谢谢扮猪吃老鼠的好主意! -laohutuchong- 给 laohutuchong 发送悄悄话 (0 bytes) () 10/17/2006 postreply 12:39:09

请您先登陆,再发跟帖!