|
楼主 |
发表于 2015-12-8 16:02
|
显示全部楼层
按你附件的要求,用我的二维数组多key排序写了2个代码,比工作表排序大约快3倍。
方法-1、把cx列也列入排序。这样一共是4个key参与排序。
读取数据时,先要把第1列从文本型转为数值型。
排序参数:
sr = Array(102, 2, 103, 2, 1, 2, 2, 1)……102列cx降序、103列cy降序、第1列降序、第2列升序。
nr = szpx1(ar, 2, sr)……此处2代表前面2行不参与排序,从第3行开始。
过程中,第一次cx排序后,忽略后面空值继续。
最后输出有效结果955行。
………………
方法-2、先读取cx列中有效行对应3列写入数组,这样一共只要3个key参与排序。
读取数据时,也要把第1列从文本型转为数值型。
排序参数:
sr = Array(1, 2, 2, 2, 3, 1)……第1列cy列降序、第2列a列降序、第3列b列升序。
nr = szpx2(ar, 0, k - 1, sr)……行范围从0,k-1 (k为有效cx列行数)
最后输出有效结果955行。
…………
结果是,第2种方法速度更快一些。
|
|