列方向分类聚合

Excel表格有多个重复的列。


A

B

C

D

E

F

G

H



Alpha

Alpha

Beta

Beta

Alpha

Delta

Beta

1

A

0.56

0.1

0.55

0.74

0.38

0.02

0.44

2

B

0.06

0.32

0.22

0.55

0.9

0.7

0.38

3

C

0.16

0.08

0.63

0.9

0.7

0.78

0.2

4

D

0.8

0.92

0.03

0.57

0.48

0.52

0.28

5

E

0.47

0.21

0.81

0.4

0.68

0.8

0.13

6

F

0.39

0.19

0.76

0.88

0.69

0.81

0.81

要求按列进行分类求和。

9

A

B

C

D

10


Alpha

Beta

Delta

11

A

1.04

1.73

0.02

12

B

1.28

1.15

0.7

13

C

0.94

1.73

0.78

14

D

2.2

0.88

0.52

15

E

1.36

1.34

0.8

16

F

1.27

2.45

0.81

使用 SPL XLL

=spl("=E@2bp(E@bp(?).groups(#1;${(?.len()-1).(eval@s($[sum(#?)],#+1)).concat@c()}))",B1:H7)

Picture1png

函数 E 用于表格转换,@p 表示转置,@b 表示不含标题,@2 表示两层序列。groups 分组汇总,${} 把字符串当表达式执行,eval@s() 循环替换序列里的字符串,并当作表达式执行。concat@c 用逗号合并序列。

来源:https://stackoverflow.com/questions/78161587/return-a-two-dimensional-array-using-a-sum-product-formula-excel