举例
有 Excel 文件 country.xlsx,数据如下所示:
| UK | Data 1 | Instruction 1 |
| UK | Data 2 | Instruction 2 |
| UK | Data 3 | Instruction 3 |
| USA | Data 4 | Instruction 4 |
| USA | Data 5 | Instruction 5 |
| India | Data 6 | Instruction 6 |
| UAE | Data 7 | Instruction 7 |
| UAE | Data 8 | Instruction 8 |
现在需要将每个分类 (A 列) 下除分类列外的每一列(B、C 列)转换为一行,结果如下:
| UK | Data 1 | Data 2 | Data 3 |
| UK | Instruction 1 | Instruction 2 | Instruction 3 |
| USA | Data 4 | Data 5 | |
| USA | Instruction 4 | Instruction 5 | |
| India | Data 6 | ||
| India | Instruction 6 | ||
| UAE | Data 7 | Data 8 | |
| UAE | Instruction 7 | Instruction 8 | |
编写 SPL 脚本:
| A | |
| 1 | =file("country.xlsx").xlsimport@w() |
| 2 | =A1.group@u(~(1)) |
| 3 | =A2.(transpose(~.(~.to(2,)))) |
| 4 | =A3.(~.(A2.(~(1)(1))(A3.#)|~)).conj() |
| 5 | =file("result.xlsx").xlsexport@w(A4) |
A1 读取 excel 文件内容,读成序列的序列
A2 按第一列(国家)分组
A3 把每个分组内的除国家列外,转置
A4 拼上国家,合并
A5 结果导出至 result.xlsx
以上是列转行的处理方式,转回去(行转列)也是这样处理。
本文详细介绍了如何使用SPL脚本来实现Excel文件中数据的行列转换。具体步骤包括读取Excel文件、按分类分组、转置数据、拼接国家信息以及最终导出结果。这种方法适用于处理具有重复分类的数据,将其转换为更直观的一行一列格式。
686

被折叠的 条评论
为什么被折叠?



