将 excel 中一行拆分到多行

例题描述和简单分析

Excel文件Book1.xlsx,部分数据如下所示:


A B C D W X
1 名称 数量 重量1 重量2 重量21 重量22
2 21 26.3 22 27.7
3 22 29.6 28.9 28.9 35.8
4 15 30.9 26.4
5 15 28.8 23.8

需要按每行10个重量拆分到多行,部分结果如下所示:


A B C D E
1 名称 数量 重量1 重量2 重量3
2 10 26.3 22 25
3 10 29.4 28.8 30.9
4 1 27.7
5 10 29.6 28.9 29.4
6 10 29.1 28.9 28.8

解法及简要说明

在集算器中编写脚本p1.dfx,如下所示: 


A
1 =file("Book1.xlsx").xlsimport@w(;,2).(~.select(~))
2 =A1.news(~.m(3:).group((#-1)\10);A1.~(1)|~.len()|~).(#1)
3 ["名称","数量",…,"重量10"]
4 =file("result.xlsx").xlsexport@w([A3]|A2)

简要说明:

A1   Excel从第二行开始读成序列的序列,过滤空值

A2  第三列开始的数据每10列分一组,在每列前并上“名称”和数量

A3   表头的串序列

A4  表头(A3)并数据(A2),导出至result.xlsx

问答搜集

https://club.excelhome.net/thread-1594162-1-2.html