指点成金-最美分享吧

登录

excel中怎样把列数据变成行

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了excel中怎样把列数据变成行相关的知识,希望对你有一定的参考价值。

按照如下步骤即可在excel中把一列的数据变成一行:

1、首先打开excel表格,输入一列的数据。

2、然后选中这一列数据,右击选择复制。

3、选中一个空白的单元格,右击选择“选择性粘贴”,在下拉菜单中点击选择性粘贴。

4、在弹出来的对话框中,点击转置,再点击确定。

5、可以看到,原来表格中一列的数据已经变成一行了。

参考技术A

在excel数据处理中常常会需要行列数据转换,也就是列数据变成行,具体操作如下(以excel2010为例):

1、选中要转换的数据,右击鼠标,选择”复制“,如图:

2、在要转换的地方右击鼠标,选择”选择性粘贴“中的”转置“图标,如图:

3、这时行列就进行了转换,列数据变成了行数据了,如图:

参考技术B

1、本次操作演示使用的Office办公软件为Excel 2013版本。

2、首先新建一个Excel电子表格,在表格中输入演示数据,数据用于演示如何在Excel中将列转换为行的操作。

3、按住鼠标托选住需要转换的列的数据,然后点击鼠标右键,在打开的菜单栏中选择复制选项。

4、选择复制数据之后,鼠标选择任意一单元格单击右键,在跳出的菜单栏中单击选择性粘贴工具。

5、在选择性粘贴设置菜单栏中,将转置选中,然后单击确认完成。

6、这样我们就可以看到,A列的数据已经变成了A行的数据了,列已经经过设置变成了行。

参考技术C 1、将要转换的列数据剪切或复制
2、在目标单元格点击右键,选择“选择性粘贴”,在出现的对话框中选中“转置”复选框,即可将数据由列排转换为行排
3、同理由行排列转换为列排列也可用此操作
参考技术D

复制列数据,然后在粘贴位置,单击鼠标右键,“转置”为行数据,即可。

本回答被提问者采纳

Oracle怎样将可变列转为行??

一张病人费用表FEE,含有以下字段:住院号(NO)、费用项目编号(CODE)、费用金额(COST)。
其中每一个病人可能有若干种费用项目,并且费用项目是可重复的。详见下表:

住院号
费用项目编号
费用金额
ZY001
010
30
ZY001
055
60
ZY001
055
40
ZY001
068
50
ZY002
011
30.2
ZY002
047
68
ZY002
055
80
ZY002
019
55.5
ZY002
019
63

现在要求统计出每个病人的每一项费用的金额汇总
以如下方式输出:

住院号
010
055
068
……
ZY001
30
100
50
……
ZY002
0
80
0
……
原表样式:

处理结果:

方法1:decode

--用decode实现行转列
--适用范围:8i,9i,10g及以后版本
SELECT NO,
SUM(decode(CODE, "010", COST)) "010",
SUM(decode(CODE, "011", COST)) "011",
SUM(decode(CODE, "019", COST)) "019",
SUM(decode(CODE, "047", COST)) "047",
SUM(decode(CODE, "055", COST)) "055",
SUM(decode(CODE, "068", COST)) "068"
FROM FEE
GROUP BY NO
ORDER BY NO asc

方法2:pivot

--用Pivot实现行转列
--适用范围:11g及以后
SELECT *
FROM FEE
  PIVOT (
  SUM(NVL(COST,0))
  FOR CODE          
  IN  ("010","011","019","047","055","068")
) ORDER BY NO asc;

 结果如下:

追问

非常感谢您的回复
您的回复让我获益匪浅
只是这里的CODE列值是可变的
采取硬编码方式灵活性不够
请问您还有什么更好的方法吗?

追答

拼接动态SQL就行了。

declare
   sqlstr varchar2(8000) := "";
begin
   select WM_CONCAT(""""||CODE||"""") into sqlstr 
   from (
   select distinct CODE from FEE order by CODE
   ) t;
   sqlstr:="SELECT *
FROM FEE
  PIVOT (
  SUM(NVL(COST,0))
  FOR CODE          
  IN  ("||sqlstr||")
) ORDER BY NO asc";
  execute immediate sqlstr;
  sqlstr := "CREATE OR REPLACE VIEW tmp_result  AS "|| sqlstr;
  execute immediate sqlstr;
end;

 这里把查询结果放到了视图tmp_result里。查看这个视图就可以了。

select * from tmp_result;

参考技术A select no,sum(case when code="010" then cost else 0 end),
sum(case when code="055" then cost else 0 end),
sum(case when code="068" then cost else 0 end),......
from fee
group by no;
参考技术B SELECT NO,SUM(CODE) ,SUM(COST) FROM FEE group by NO

以上是关于excel中怎样把列数据变成行的主要内容,如果未能解决你的问题,请参考以下文章