将多列同类项整理到一列

例题描述和简单分析

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