24小时热门版块排行榜    

查看: 934  |  回复: 1

lascqy

银虫 (小有名气)

[交流] 在HSE能带数据处理中的问题及解决已有1人参与

在WDD880227提到的重新排序过程中(http://muchong.com/bbs/viewthread.php?tid=4241731&fpage=1),有一个很头疼的问题,因为列与列之间是相关的,所以只能一列一列的进行排序操作。当能带数比较多的时候,工作量就比较恐怖了。。
于是我们希望能对对所有列进行相对独立的排序
在Origin中做了很多尝试,能力有限,没能实现origin的宏操作
希望有高手支持。。
在excel中也是同样的情况,但是却有法可解。
二种办法,
一种是利用公式
例如
=SMALL($A$2:$A$12,ROW()-15)
其中15是一个参数,代表从第几行起输出数据,small表示返回数据组中第K个最小值,前边的A2,A12也是可变参数,对于怎么应用到其他列。。相信用过Execl的人都明白吧。。。
另一个参考就是
在sheet2中可以这样做
=IF(ROW()>COUNTA(Sheet1!A$1:A$1000),"",SMALL(Sheet1!A$1:A$1000,ROW(1:1)))
这个公式包含一个逻辑判断。。如果行号大于列中(COUNTA)非零的单元格,则返回空(“”)如果不大于,则返回SMALL的值,ROW后边指的是单元格位置*:*
同样也是之后应用到所有单元格。。

第二种方法。。自然就是宏了
利用VBA代码
sub colsort()
Set ss = Selection
For i = 1 To ss.Columns.Count
ss.Columns(i).Sort Key1:=ss.Columns(i), Order1:=xlAscending, Header:=xlNo, _
  Orientation:=xlTopToBottom
Next
End Sub
然后执行宏就可以了

[ Last edited by lascqy on 2012-3-14 at 16:19 ]
回复此楼

» 收录本帖的淘帖专辑推荐

科研啊科研

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

WDD880227

木虫 (正式写手)

顶~~!!
smiling&fighting...
2楼2012-03-14 16:18:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lascqy 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见