分组汇总树状结构表
分组汇总树状结构表
有一个树状结构的Excel表,Epic列是最高层。
1 | Code | Epic | Stories | Task | Hour |
2 | 1 | E1 | |||
3 | 1.1 | St1 | |||
4 | 1.1.1 | Ts1 | 10 | ||
5 | 1.1.2 | Ts2 | 20 | ||
6 | 1.2 | St2 | |||
7 | 1.2.1 | Ts21 | 5 | ||
8 | 1.2.3 | Ts22 | 2 | ||
9 | 2 | E2 | |||
10 | 2.1 | 0 |
现在要按最高层Epic分组,对Hour列汇总,同时保留Code列。
G | H | I | |
1 | Code | Epic | Hours |
2 | 1 | E1 | 37 |
3 | 2 | E2 | 0 |
使用 SPL XLL
=spl("=E(?1).group@i(Epic!=null).new(Code,Epic,ifn(~.sum(Hour),0):Hours)",A1:E10)
函数 group@i 用于条件分组,~ 表示当前组,函数 new 新建表格,ifn 返回第一个非 null 的成员(当前组汇总结果为 null 时可返回 0)。
英文版 https://c.scudata.com/article/1722847639183