请教 excel 转置问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:42:53
1
2
3
4
5
6
7
8
9
10
11
到N

转成 1 2 3
4 5 6
7 8 9
到N

数据太多,3个3个的转置太慢。有没有什么方法可以快一点呀?谢谢!

假设原数据在A列
B1输入公式
=INDEX($A:$A,(ROW()-1)*3+COLUMN(A1))
用填充柄(单元格右下角黑色十字)向右拖至D1后双击D1填充柄

假设你的数据在a列,转换结果放bcd列,则
b1=IF(ROW()=1,A1,IF(AND(ROW()>=2,INDIRECT("a"&(ROW()*3-2))<>""),INDIRECT("a"&(ROW()*3-2)),"")),鼠标停在b1右下角双击。
c1=IF(ROW()=1,A2,IF(AND(ROW()>=2,INDIRECT("a"&(ROW()*3-1))<>""),INDIRECT("a"&(ROW()*3-1)),"")),鼠标停在c1右下角双击。
d1=IF(ROW()=1,A3,IF(AND(ROW()>=2,INDIRECT("a"&(ROW()*3))<>""),INDIRECT("a"&(ROW()*3)),"")),鼠标停在d1右下角双击

有。
A列是你的数据,B1起输入公式:
=IF(ROW(A1)>ROUNDUP((4^8-COUNTBLANK($A:$A))/3,0),"",INDEX($A:$A,(ROW(A1)-1)*3+COLUMN(A1),))

公式右拉三格,下拉!

注意,时间关系,我没完全屏蔽可能出现的0值,也就是说,最后一行数据可能有出入,你自己核对下,把多的0删除就可以!

要转置的数据在A列,在B1输入公式:

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

公式右拉两格,并下拉就是你要的数据了。

可以编个vba自动转置