在excel中如何把几列数据纵向排成一列

源数据如图所示,现在需要修改表格,将属性1~属性7依次排列到一列中,就是sheet2!a1:a20为sheet1!b2:b21,sheet2!a21:a40为c2:c21,sheet2!a41:a60为d2:d21,以此类推,
注:因为表格较大,所以一列一列的复制粘贴不太现实,故求高人相助,谢谢

第1个回答  2015-07-02
复制-选择性粘贴-转置
或者用HLOOKUP函数
sheet2-B2中输入=HLOOKUP($A2,Sheet1!$A$1:$H$21,MATCH(Sheet2!B$1,Sheet1!$A$1:$A$21,0),0)
第2个回答  2015-07-02
Sheet2的A1输入
=OFFSET(Sheet1!$B$2,MOD(ROW(1:1)-1,20),(ROW(1:1)-1)/20)
回车并向下填充。追问

在您的公式中为什么要用row(1:1)?

追答

ROW()——行号函数。ROW(1:1)=1,即引用第一行(当然也可以引用A1,但引用A1当往左移动时往往会引用错误)。
MOD(ROW(1:1)-1,20)——即(1-1)/20余数=0、(2-1)/20余数=1、(3-1)/20余数=3、……这样一直使偏移函数OFFSET()引用的Sheet1!$B$2依次变成Sheet1!$B3、Sheet1!$B4、……;
到MOD(ROW(21:21)-1,20)时(即向下填充到A21时),(21-1)/20余数又=0,重新从Sheet1!$B$2开始,但这时的(ROW(1:1)-1)/20)则变成(ROW(21:21)-1)/20)=1,使偏移函数往右偏移1列,成为引用Sheet1!C2了。
当然,你的公式在第一行输入,ROW(1:1)里面的引用第1行可以省略,即引用所在行:ROW()。公式编写引用具体行习惯了。

本回答被提问者和网友采纳
第3个回答  2015-07-02
没太明白你的意思,建议你手动粘贴个样板出来,另外最好截图的时候把左边和上面的行数、列数截下来追问

简单来说就是
1 2 3
3 1 4
1 3 4
变成
1
3
1
2
1
3
3
4
4

相似回答