我有如下幾行資料:
Cat A>Subcat A|Cat A>Subcat B
Cat A>Subcat C|Cat B>Subcat A|Cat B>Subcat C|Cat C
您會注意到它基本上是由管道分隔的父類別和子類別的串列 |
我需要通過以下兩種方式從每一行中提取資料:
- 獲取所有父類別并用管道分隔它們
|(洗掉重復項)。 - 獲取所有子類別名稱并用管道分隔它們
|(洗掉重復項)。
從提供的前兩行來看,結果應如下所示:
| 細繩 | 父母(結果 1) | 兒童(結果 2) |
|---|---|---|
| Cat A>Subcat A|Cat A>Subcat B | 甲類 | 子類 A|子類 B |
| Cat A>Subcat C|Cat B>Subcat A|Cat B>Subcat C|Cat C | 貓 A|貓 B|貓 C | 子類 C|子類 A |
我已經能夠使用REGEXEXTRACTand獲得部分結果,JOIN但它要么只匹配一次,要么回傳多個。例子:
# Returns the first instance of "Cat A" only
=REGEXEXTRACT(H2,"(.*?)>.*?\|")
我正在尋求幫助創建兩個正則運算式模式,以獲得所需的“結果 1”和“結果 2”
uj5u.com熱心網友回復:
嘗試:
=ARRAYFORMULA(REGEXREPLACE(TRIM(SUBSTITUTE(TRANSPOSE(QUERY(QUERY(QUERY(
IFNA(SPLIT(UNIQUE(FLATTEN(ROW(A1:A2)&"×"&
REGEXREPLACE(REGEXEXTRACT(SPLIT(A1:A2&">", "|", 1), "(.*)>"), "(>.*)", )))&"|", "×")),
"select max(Col2)
where Col1 is not null
group by Col2
pivot Col1"),
"offset 1", 0),,9^9)), "| ", "|")), "\|$", ))

和:
=ARRAYFORMULA(REGEXREPLACE(TRIM(SUBSTITUTE(TRANSPOSE(TRIM(QUERY(QUERY(QUERY(
IFNA(SPLIT(UNIQUE(FLATTEN(ROW(A1:A2)&"×"&
REGEXREPLACE(REGEXEXTRACT(SPLIT(A1:A2, "|", 1), ">(.*)"), "(>.*)", )))&"|", "×")),
"select max(Col2)
where Col1 is not null
group by Col2
pivot Col1"),
"offset 1", 0),,9^9))), "| ", "|")), "\|$", ))

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316095.html
上一篇:如何根據條件拆分一些減號運算子?
