Excel 行列互换
例题描述
有 Excel 数据如下所示:
A |
B |
C |
D |
|
1 |
Name |
Fruit1 |
Fruit2 |
Fruit3 |
2 |
Alice |
apple |
banana |
orange |
3 |
Bob |
apple |
pear |
plum |
4 |
Cate |
banana |
pear |
plum |
… |
需要行列转换,结果如下:
A |
B |
C |
D |
|
1 |
Fruit |
Name1 |
Name2 |
…… |
2 |
apple |
Alice |
Bob |
|
3 |
banana |
Alice |
Cate |
|
4 |
orange |
Alice |
||
5 |
pear |
Bob |
Cate |
|
6 |
plum |
Bob |
Cate |
解法及简要说明
使用插件 SPL XLL
在空白格填写代码:
=spl("=E(?1).pivot@r(Name;Fruit,Fruitname).group(Fruitname).run(~=~.Fruitname|~.(Name))",Sheet1!A1:D4)
如图:
返回结果:
代码解释:用 pivot 做列转行,再按 Fruitname分组,每组计算出 Fruitname 值并 Name 列的结果。
问答搜集
英文版
结果中的表头 Fruit,Name1,Name2,……也要能动态扩展😄
哈哈,本文只是抛砖引玉,读者可自行发挥😄
这篇里有个动态表头的写法:行列转换 - 乾学院 (raqsoft.com.cn)
凑个热闹😄
👍👍👍