今天在看Kettle的视频中发现了行列转换的方式,所以准备总结一下Excel中几种行列转换的方法。
就是实现以下效果。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SZ5I2NyUjNyMDZ5IWY1MmMllzY1IWMyUGZkNWYmNTOk9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
一维表转二维表
方法一:Excel透视列
1. 选中数据源→数据→从表格
2. 选中想要更改为列的字段(这里这里是将星期改更改为列,所以选中的是星期列)→转换→透视列
3. 在跳出的弹窗中值列选择看你需求(这边就是工作小时)→打开高级选项→聚合值函数也是看你需求,这边选择不聚合
4. 关闭并上载即ok
方法二:Excel数据透视表
- 选中数据→插入→数据透视表
- 姓名拖入行,星期拖入列,工作小时拖入值
- 完成
方法三:Python
import
方法四:Kettle
- Excel输入
- 排序,默认设置即可(Kettle中有很多操作之前都是需要排序的)
- 列转行(数据字段是原分列字段的列名,关键字段是原分列字段的值,目标字段是新分列的列名,相当于在这一步进行映射,注意要填写字段类型,不然会报错)
- Excel输出(如果要输出的是xlsx文件,则需要选择Microsoft Excel输出)
- 完成
方法五:SQL
看看面试题吧[MySQL_查询面试题(持续更新)](MySQL_查询面试题(持续更新)_Lin_Xiao_Dai的博客-CSDN博客)
二维表转一维表
方法一:Excel逆透视列
- 选中数据→数据→从表格
- 选中分列后邮件→逆透视列
- 上载
方法二:Kettle
- Excel输入
- 排序
- 行转列,同样需要映射,字段是源数据中的分列列名,Key字段是合并后的列名,Key值是合并后列的值
- Excel输出