excel高手请进:一列数据,如何按要求分列显示?

来源:百度知道 编辑:UC知道 时间:2024/05/15 11:26:42
例:以下共计23行,
赵传
罗小
蔡贤
丁金
赵传
席好
王红
罗大
李贵
赵王
亲亲
落落
倪倩
席洪
方方
李贵
西小
小华
刘艳
张张
刘芳
小红
小新
要显示为五行四列为一组,剩下的再重新显示,
赵传 席好 亲亲 李贵
罗小 王红 落落 西小
蔡贤 罗大 倪倩 小华
丁金 李贵 席洪 刘艳
赵传 赵王 方方 张张

刘芳
小红
小新

这样的一列数据会很长,而且有可能会是6行4列或5列显示,等等。
请高手回答!

假定原数据在SHEET1表的A列,请在SHEET2表A1输入公式:
=IF(MOD(ROW(),6),INDEX(Sheet1!$A:$A,(CEILING(ROW()/6,1)-1)*20+(COLUMN()-1)*5+MOD(ROW(),6))&"","")
将公式向右复制到D1,再向下复制.

如果五行四列为一组,每组之间不要空行,公式为:
=INDEX(Sheet1!$A:$A,(CEILING(ROW()/5,1)-1)*20+(COLUMN()-1)*5+MOD(ROW()-1,5)+1)&""

=IF(ROW(A1)>5,"",OFFSET($A1,(COLUMN(A1)-1)*5,,1,1))

如果你的数据在A列,A1是数据的第一个,那么你就在B列或旁边一列输入上面的公式,向右拉直到出现0,再一起向下拉直到出现空格为止。

我的公式是产生一个 5 行多列的区域。
如果你想产生6 或7 行的话,>5 和 *5 中的5 都换成6或7 就行了,

去掉公式的方法,复制后--在原地--选择性粘贴---数值即可。
最后多于的一列数据你可以剪切到其它地方,

显示为五行四列为一组,剩下的再重新显示就OK了?

想了一下没搞出来 我搞了下结果跟你一样
可能会是6行4列或5列显示等等

以上问题公式为:
=OFFSET($A$1,INT((ROW(A1)-1)/5)*20+(COLUMN(A1)-1)*5+MOD(ROW(A5),5),)&""

根据你的实际情况公式如下:

=OFFSET($A$1,INT((ROW(A1)-1)/13)*65+(COLUMN(A1)-1)*13+MOD(ROW(A13),13)+1,)&""

右击sheet页签名,选查看代码,打开VBA编辑窗口
点插入-模块,默认为模块1,将下面的代码复制到右边的窗口中