按组计算每列最大最小值并横向填入格中

第 1 列是分组列,之后是N个数据列。

A

B

C

D

1

Z

N_1

N_2

Q_12

2

A

100

200

-100

3

A

101

-10

-200

4

A

102

201

-104

5

A

99

199

300

6

B

1000

1100

1300

7

B

1004

1200

-900

8

C

2000

-2100

2200

9

C

1900

-2090

-2180

现在要按第 1 列分组,每组横向的2N个列,依次是组内每个数据列的最大值和最小值。

A

B

C

D

E

F

G

1

Z

N_1Max

N_1Min

N_2Max

N_2Min

Q_12Max

Q_12Min

2

A

102

99

201

-10

300

-200

3

B

1004

1000

1200

1100

1300

-900

4

C

2000

1900

-2090

-2100

2200

-2180

使用 SPL XLL,输入公式:

代码语言:javascript
复制
=spl("=f=(d=E(?)).fname().m(2:),d.groups(Z;${f.( replace( ""max(*):*Max,min(*):*Min"", ""*"", ~ )).concat@c()})",A1:D9)
Picture2png

函数 fname 取表格的列名,groups 分组汇总,m(:2)表示取第 2 到最后一个成员,~ 表示当前成员,${} 表示把字符串当作动态代码去执行。