分类内按规则拆分一行变多行
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] 是前一个成员,| 用于求并集。
https://stackoverflow.com/questions/78382496/split-text-into-smaller-one-and-group-by-each-id
IMHO🙏 ,感觉写复杂了,可以用 ~[:0] 开始到当前,但 ~[:0] 这样写在数据量较多时效率会变得一般
或者用 news:
英文版