Excel怎样两行为一组排序?

第一行:5
第二行:咯楼
第三行:2
第四行:天空
第五行:6
第六行:太空
……
把表格排序成
第一行:2
第二行:天空
第三行:5
第四行:哈楼
第五行:6
第六行:太空
……
总之就是两行为一组,以单数行的数字为顺序,从小到大排序

方法一是使用公式,把两行一组的表格转换为一行一组,对转换结果进行排序,然后再写公式转换回去。

方法二是使用VBA,把数据读入数组中,然后编程对数组进行排序,最后写会表中。


过程可能都比较复制,简单说一下公式法,关键就是两个转换公式,行转换为列的公式为:

=INDEX($A:$A,(ROW(A1)-1)*2+COLUMN(A1))

最后列转换为行的公式为:

=INDEX(C:D,ROUNDDOWN((ROW(A1)-1)/2,0)+1,MOD(ROW(A1)-1,2)+1)

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-29

第一步 将两行内容合并;  第一行:5 哈喽,第二行:5 哈喽;

第三行:2 天空,第四行:2 天空;

第五行:6 太空,第六行:6 太空。

第二步 按照数据大小进行排序;

第三步  使用excel中的替换功能将第一行数字后面的文字换成空格(n*替换成空格),将第二行文字前面的数字替换成空格(*n替换成空格)

第2个回答  2019-11-29

可以用公式进行排序,假设数据在A列,如图:

B1用公式:

=INDEX(A$1:A$6,MATCH(SMALL(A$1:A$6,INT(ROW(A2)/2)),A$1:A$6,)+MOD(ROW(A2),2))

下拉。

追问

在你的公式中A$1:A$6是选取 A1到A6的区域吧,但是我有些内容是A1到A6,有些内容是A1到A8,有些内容是A1到A55等等等等,我试过换成$A:$A,虽然可以,但容易卡死。公式可不可以改成选中A列中含有的数值区域进行排序

追答

将公式中的引用改为足够大,不要用整列,就可以了。

本回答被提问者采纳
第3个回答  2020-01-05
1.将两行内容合并; 第一行:5 哈喽,第二行:5 哈喽; 第三行:2 天空,第四行:2 天空; 第五行:6 太空,第六行:6 太空。
2.按照数据大小进行排序;
3.使用excel中的替换功能将第一行数字后面的文字换成空格(n*替换成空格),将第二行文字前面的数字替换成空格(*n替换成空格)
相似回答