A列是分组列,对应B列里多行逗号分隔的文字:
A | B | |
---|---|---|
1 | 1 | 4,9,3,1,7 |
2 | 1 | 7,5,2,9,4, |
3 | 1 | 8,5,7,9 |
4 | 1 | 4,1,3,8,9,7 |
5 | 2 | 4,8,2 |
6 | 2 | 1,2,7,8 |
7 | 2 | 3,1,8,6 |
8 | 2 | 6,3,4,9,2,5,8 |
9 | 2 | 0,4,8,6,9 |
10 | 3 | 8,3,4,7,2 |
11 | 3 | 2,4,6,9,3 |
12 | 4 | 1,8,2,5 |
要求按组拆分每行的文字,再对组内各行求交集,用逗号合并结果,填入每组的第1行里。如下D列:
A | B | C | D | |
---|---|---|---|---|
1 | 1 | 4,9,3,1,7 | 9,7 | |
2 | 1 | 7,5,2,9,4, | ||
3 | 1 | 8,5,7,9 | ||
4 | 1 | 4,1,3,8,9,7 | ||
5 | 2 | 4,8,2 | 8 | |
6 | 2 | 1,2,7,8 | ||
7 | 2 | 3,1,8,6 | ||
8 | 2 | 6,3,4,9,2,5,8 | ||
9 | 2 | 0,4,8,6,9 | ||
10 | 3 | 8,3,4,7,2 | 3,4,2 | |
11 | 3 | 2,4,6,9,3 | ||
12 | 4 | 1,8,2,5 | 1,8,2,5 |
使用 SPL XLL,输入公式:
代码语言:javascript复制=spl("=?.group(~(1)).conj([~.isect(~(2).split@c()).concat@c()].pad(null,~.len()))",A1:B12)
group(~(1))按第 1 列分组,split 拆分各组的第 2 列,isect 求交集,用 concat 拼出串,pad 这补齐空白与 A 列对齐。