Excel的A列是分类列,B列是由">"连接起来的多个字符串,可以看成是合并后的明细:
A | B | |
1 | ID | Rule: Condition |
2 | 470210642217 | Test |
3 | 470251569449 | Doors & Hardware > Door Jambs> 119mm |
4 | 470251602217 | Bathroom > Stone Tops > Black Specs> 1200mm |
现在要一行变多行,规则是:A不变,B列拆分成明细,像累积那样依次合并起来
A | B | |
7 | ID | Rule: Condition |
8 | 470210642217 | Test |
9 | 470251569449 | Doors & Hardware |
10 | 470251569449 | Doors & Hardware > Door Jambs |
11 | 470251569449 | Doors & Hardware > Door Jambs> 119mm |
12 | 470251602217 | Bathroom |
13 | 470251602217 | Bathroom > Stone Tops |
14 | 470251602217 | Bathroom > Stone Tops > Black Specs |
15 | 470251602217 | Bathroom > Stone Tops > Black Specs> 1200mm |
使用 SPL XLL
=spl("=?.conj(~(2).split("">"").(~=~[-1] | ~).(~.concat("">"")).([?.~(1),~]))",A2:B4)
conj合并子集合,split 把字符串拆分成集合,concat 反之,~ 是当前成员,~[-1] 是前一个成员,| 用于求并集。