*EXCEL 分组后找出满足条件的行拼接起来

Excel某表格有四列,其中第2列是分组列。


A B C D
1 1 a 1 yet
2 2 a 2 done
3 3 a 3 yet
4 4 b 1 done
5 5 b 2 done
6 6 b 3 done
7 7 b 4 yet
8 8 b 5 done

现在要按第2列分组,找到每组第4列等于"done"的行,将这些行的第3列用逗号拼起来,再与分组名、行号组成新的表格。


F G H
1 1 a 2
2 2 b 1,2,3

使用 SPL XLL

=spl("=?.select(~4==$[done]).groups(~2;concat@c(~3)).(#|#1|#2)",A1:D7)

Picture1png

函数 group 执行分组并处理每组数据,~2 表示当前成员的第 2 个子成员,$[] 是字符串标志,# 是当前成员的序号,#1 是表格的第 1 列,concat@c 用逗号合并成员。

来源:https://stackoverflow.com/questions/78132082/returns-a-collection-of-values-for-each-row-with-two-or-more-conditions-into-one