将多列同类项整理到一列

例题描述和简单分析

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


A

B

…

H

I

…

1

4/1/2021

4/1/2021

…

4/2/2021

4/2/2021

…

2

AAA

BBB

…

AAA

BBB

…

3

6

9

…

9

10

…

4

8

6

…

10

7

…

5

3

2

…

2

3

…

…

…

…

…

…

…

…

需要将多列同类项整理到一列,结果如下所示:


A

B

C

D

…

1

AAA

时间

BBB

时间

…

2

6

4/1/2021

9

4/1/2021

…

3

8

4/1/2021

6

4/1/2021

…

…

…

…

…

…

…

8

9

4/2/2021

10

4/2/2021

…

9

10

4/2/2021

7

4/2/2021

…

…

…

…

…

…

…

解法及简要说明

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


A

1

=file("Book1.xlsx").xlsimport@w()

2

=transpose(A1).group(~(2))

3

=A2.(~.conj(~.m(3:).select(~).(~|A2.~.~(1))))

4

=transpose(A3).(~.conj())

5

=A2.conj(~.~(2)|"时间")

6

=file("result.xlsx").xlsexport@w([A5]|A4)

简要说明:

A1   Excel读成序列的序列

A2  转置A1,按第二列(类别)分组

A3   遍历每组(类别),合并每天的数与当天日期组成的序列

A4  转置A3,合并每行序列

A5  拼表头

A6  表头并数据的结果导出至result.xlsx

问答搜集

http://club.excelhome.net/thread-1587358-1-1.html