excel行转列和列转行

excel行转列和列转行,第1张

工具/材料

Excel或WPS表格

01

首先,演示下“行转列”,打开要处理的表格,并选中数据区域。

02

然后,按快捷键Ctrl+C,或者鼠标右击并选择复制。

03

复制成功后,右击目标单元格,再点击“选择性粘贴”。

04

如图,在对话框中,勾选“转置”,并点击“确定”按钮。

05

选择性粘贴完毕,就可以看到“行转列”的结果。

06

接着,我们演示下“列转行”。选中数据,按快捷键Ctrl+C。

07

在要粘贴的区域,右击鼠标,并点击“选择性粘贴”。

08

同样,勾选“转置”,再点击“确定”即可。

行转列:

定义:就是把形如

id --------- name

1 --------- a

2 --------- a

3 --------- a

4 --------- a

的数据转换为

id -------------name

1,2,3,4 --------- a

这里把四行的数据变成了由一行显示,这就是行转列。

首先要用到的是collect_set或者collect_list,前者去重,后者不去重,一般配合group使用,能把形如:

id --------- name

1 ---------a

2 ---------a

3 ---------a

4 ---------a

转换为

id --------- name

["1","2","3","4"]---------a

然后需要用到的是concat_ws函数,这个函数需要传递指定分隔符,以及字符串或者字符串数组。能起到把多个字符串拼接到一起的作用。

形如:

id --------- name

["1","2","3","4"]---------a

通过concat_ws(',',[1,2,3,4])转换为

id--------- name

1,2,3,4 --------- a

连起来就完成了行转列

一般sql为:

列转行

定义:就是把形如

id -------------name

1,2,3,4 --------- a

的数据转换为

id --------- name

1 --------- a

2 --------- a

3 --------- a

4 --------- a

这里把一行的数据变成了由四行显示,这就是列转行。

首先要用到split函数,这个行数可以把字符串按照指定的规则切分为字符串数组。

形如:

id --------- name

1,2,3,4 --------- a

通过split('1,2,3,4',',')转换为

id--------- name

["1","2","3","4"]---------a

然后是explode函数,这个行数可以把数组的每个元素转换为一行。

形如

id

["1","2","3","4"]

通过explode(["1","2","3","4"] )转换为

id

1

2

3

4

最后为了拼接其它字段,还需要用到lateral view把explode获得的行当虚拟表来用。

使用方法为 lateral view explode(split(["1","2","3","4"] , ',')) tmptable as new_id

其中new_id元素为转换为行后的字段名。

把以上综合起来就完成了列转行

一般sql为:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10027917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存