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

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,输入公式:

=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 到最后一个成员,~ 表示当前成员,${} 表示把字符串当作动态代码去执行

https://stackoverflow.com/questions/78375603/find-the-maximum-and-minimum-values-from-a-range-set-by-cells-containg-specific