excel中如何将几列粘贴为纵向的一列

例如:
首 页 分 类
公 社 医 生
律 师 作 业

要转化为:












主要是工作量太大了,手工复制粘贴太费事了

1.如下图所示,将A、B两列转换成一行。

2.首先,选中B列,右击鼠标,选择“插入”,在A和B列新增一列。

3.在B2中输入1,在B3中输入2,选中B2,B3向下填充;在D2中输入1.1,在D3中输入2.1,选中D2,D3向下填充。

4.选中C2:D7,右击鼠标,选择“剪切”;单击A8单元格,选择“粘贴”。

5.选中A、B列,依次单击“开始”选项卡--“筛选和排序”--“自定义排序”,在“排序”窗口中,选择按照列A升序排序。


6.选中A2:A13,右击鼠标选择复制,单击任意空白单元格,右击鼠标选择“选择性粘贴”,在弹出的窗口中,勾选转置。删除B列,这样两列数据就变成一行数据了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-23

假设你的数据在A1:C3,则在需要得到结果的单元格输入

=OFFSET(A$1,MOD(ROW(A1)-1,3),INT((ROW(A1)-1)/3))

然后下拉即可。

【注意】

1、A1:C3是3行×3列的区域,如果实际是n行×m列,则公式调整为

=OFFSET(A$1,MOD(ROW(A1)-1,n),INT((ROW(A1)-1)/n))

2、如果区域的起始单元格(最左上角单元格)不是A1,则,将公式中A$1调整为相应单元格。

假设原数据在C3:M2000,则公式修改为:(实际行数为1998行)

=OFFSET(C$3,MOD(ROW(A1)-1,1998),INT((ROW(A1)-1)/1998))

3、如果区域中有空单元格,则请先按如下方法将空单元格删除后再使用公式进行操作:

选中源数据全部区域——按F5——定位条件——空值——确定,鼠标右键——删除——单元格上移。

本回答被提问者和网友采纳
第2个回答  2014-02-23

你可以用公式,也可以用VBA完成,如果用VBA完成,会更快(因你数据多)

你的数据有几行几列?

点sheet2中的按钮,就得到你要的数据,不管sheet1有多和行多少列


第3个回答  2014-02-23
假设源数据从A1起:
在同工作表某单元格输入
=OFFSET(A$1,MOD(ROW(3:3),3),(ROW(1:1)-1)/3)
回车并向下填充。
相似回答