楼主: dongtian1008
29672 57

[经济] 如何把excel的 多列多行 快速变为 一列多行 [推广有奖]

11
wuuuhao 发表于 2010-4-21 19:20:49
6# dongtian1008
貌似可以用我说的方法,先单列转制,再合并在一起,不过操作相对多一点

12
gyelle 发表于 2010-4-21 19:42:34
你的数据如果在表单sheet1里
在sheet2里.
在A1单元格处输入以下公式:
=OFFSET(Sheet1!$A$1,INT((ROW()-1)/3),MOD(ROW()-1,3))
然后向下下拉复制就好了

13
johnbbb 发表于 2010-4-21 19:43:40
选择性粘贴,转置

14
nepter 发表于 2010-4-21 20:07:05
以前我也用宏,自从matlab有了spreadsheet exlink后,我就直接在excel里用matlab命令进行矩阵运算。宏的学习曲线很陡峭,而结合excel和matlab里强大的函数是最好的方法。

如果有matlab7.0以上版本,装上exlink插件,在excel里选中要置换的区域,点addons里putmatrix,输入a,在matlab里输入a=a'(:),在excel里选中你要粘贴的目标单元格,点getmatrix,输入a回车即可。

15
wpq113 发表于 2010-4-21 20:19:48
按以下办法刚试过,完全可以实现楼主的要求。

设有3列数据在A到C中,解决办法为:
光标选在在D1单元格,在excel上面fx旁边输入
=INDEX(A:C,ROUNDUP(ROW(A1)/3,),MOD(ROW(A1)-1,3)+1)回车 一直下拉到显示为0为止。

如果不是3列,将上面公式的C和3替换即可。

16
tangsanzang007 发表于 2010-4-21 20:29:49
感觉还是选择性粘贴,转置好一些。要么先整体转置,然后依次将2至n列内容复制到第一列下;或者依次从1至n行,复制,在同一列下连续地进行选择粘,转置。
骑白马的不一定是王子,有可能是我

17
saiva 发表于 2010-4-21 21:11:58
假定原数据在ABC列中,请在D1单元格输入公式:
=INDEX(A:C,CEILING(ROW()/3,1),MOD(ROW()-1,3)+1)
将公式向下复制。

18
dongtian1008 发表于 2010-4-21 21:39:35
16# saiva
如果数据有N列X行,那么公式是什么,如下
     A  B  C ...N
1
2
3
...
X

19
wpq113 发表于 2010-4-21 22:01:30
saiva 发表于 2010-4-21 21:11
假定原数据在ABC列中,请在D1单元格输入公式:
=INDEX(A:C,CEILING(ROW()/3,1),MOD(ROW()-1,3)+1)
将公式向下复制。
16楼和14楼完全一样。

20
wpq113 发表于 2010-4-21 22:05:24
N列X行公式:
=INDEX(A:N,ROUNDUP(ROW(A1)/N,),MOD(ROW(A1)-1,N)+1)

详细操作见14楼。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-25 10:45