EXCEL行内怎么分组排序

Excel内第5行( 为方便,我把列头加在数字前面)
5|A22 |B 3 | C1 | D456 |E 3 |F 2 | G0.7 |H 325|。。。。
我现在需要的是首先,每四列的数字为一组。即:及ABCD数字为一组EFGH数字为一组
然后以组为单位,每一组中的第二列数值从小到大在行内排序排序, 在这个例子中为按B,F列在行内排序
最终得到 |A3| B2| C0.7| D325| E 22| F3| G 1| H456| 这样的效果

求高手解答,非常急,十分感谢

现在这个时间真不敢回答,一回答人走了,白等半天。



听懂你的意思,以四个列数为一组,比较各列组的第一个数,按从小到大排。


那数据只有两组吗,很多的话,给范围。

追问

对,是以四个列数为一组,也就是ABCD为一组,EFGH为一组。然后以每一组里的第二列,即B列和F列为关键列。然后在行内是以组为单位排序,在这个例子中,因为第一组的第二列是3,第二组的第二列是2。所以原第一组必须排在原第二组的后面。

因为我这里一行有256组,总共有4000多行,不可能用手工排的。万分感谢

追答

数据这么多,工作量很大啊,用VBA做,这在百度提问是很难解决的。找群或论坛帮你做。

追问

一个表是大概200行,我有20个表。所以只要做会一个表,其他的都好办。你要知道怎么实现这个结果,麻烦指点下。谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-28
=IF((INDEX(5:5,INT((COLUMN()-1)/4)*4+2)<=INDEX(5:5,((0.5-MOD(INT((COLUMN()-1)/4),2))*2+INT((COLUMN()-1)/4))*4+2))+MOD(INT((COLUMN()-1)/4),2)=1,INDEX(5:5,COLUMN()),INDEX(5:5,COLUMN()+(0.5-MOD(INT((COLUMN()-1)/4),2))*8))

输入公式右拉追问

高手,这个公式是具体怎么操作,在哪个地方右拉?

本回答被提问者采纳
第2个回答  2014-09-28
每一组中的第二列数值从小到大在行内排序排序 , 这句话是什么意思,关键是其中的第二列是什么意思追问

这些数都在同一行内,然后四列数为一组,也就是ABCD为一组,EFGH为一组。排序时是把组看成一个单位来排,然后以每一组里的第二列为排序依据的关键列(问题中是B列和F列,再后面就是J列和N列,以此类推)。在这个例子中,因为第一组的第二列是3,第二组的第二列是2。所以原来第一组在本行内就必须排到原第二组的后面。

因为我这里一行有256组,总共有4000多行,不可能用手工排的。万分感谢

追答

每行有256组,那每行的第1组从A列开始吗?

追问

不是,但是我只要排这部分,所以你可以把它当作从A列开始。你知道怎么处理吗?

追答

可以vba编程来实现