将 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