按第 N 个分隔符拆分文本并转置 Google 表格

mar*_*ubo 2 excel google-sheets google-apps-script google-sheets-formula

我需要从文本块中提取文本。该块看起来像这样:

{"some text"},{"some more text"},{"some other"},{"some other text"},{"let's add more"},{"even more other text"}

文本应该成对出现,以便第一个和第二个 {""},{""} 进入同一个单元格,依此类推。我尝试了 split 功能,但由于分隔符是逗号,我无法成对拆分。所以我需要在每 2 个逗号后拆分并将结果对放在它自己的单元格中。然后转置结果,使文本垂直进入一列。

我试过了,=SPLIT("",",")但没有得到想要的输出。

我为此使用 Google 表格,并希望在 Google 表格中执行此操作,但我愿意在 Excel 中执行此操作。

如果你想看看谷歌表格文件,这里是链接https://docs.google.com/spreadsheets/d/1sbK6nF-6SO4oOKTdercgnfHGeQol-vfV5SRcFXNBy5o/edit?usp=sharing

Jvd*_*vdV 5

有趣和有趣的查询。

在 中B2,看看以下公式是否适合您:

=TRANSPOSE(SPLIT(REGEXREPLACE(A2,"([^,]+,[^,]+),","$1|"),"|"))
Run Code Online (Sandbox Code Playgroud)

如果需要,可以使正则表达式更具体地仅针对大括号之间的那些逗号。


编辑

为了SPLIT您期望的结果为两列,并摆脱对大括号和外报价,我想出了:

=TRANSPOSE({SPLIT(REGEXREPLACE(A2,"{""([^,]+)""},{""([^,]+)""}(?:,|$)","$1|"),"|");SPLIT(REGEXREPLACE(A2,"{""([^,]+)""},{""([^,]+)""}(?:,|$)","$2|"),"|")})
Run Code Online (Sandbox Code Playgroud)