拆分函数奇怪地处理破折号

时间:2015-03-24 15:06:24

标签: google-sheets

为什么=SPLIT("1,2-5,4", ",")

等于

1 42040 4

而不是

1 2-5 4

我将所有单元格都以纯文本格式化。

3 个答案:

答案 0 :(得分:5)

Regextract应该为您提供所需的输出。尝试:

=ArrayFormula(regexextract("1,2-5,4", {"^(\d+),",",(.+),",",(\d+)$"}))

答案 1 :(得分:3)

补充JPV的答案。

您可以使用:

=REGEXEXTRACT(A1,"(.*?),(.*?),(.*)")

“硬编码”正好分裂3个元素(就像JPV一样)。为了提供更大的灵活性,您可以使用以下内容:

=REGEXEXTRACT(A1&REPT(",",10),REPT("(.*?),",10))

限制为最多10个元素(该数字可以更改为适合)。但是,它将输出一个总是最大元素长度的数组(用空白单元格填充)。您可以使用QUERY或FILTER过滤掉这些空白单元格 - 公式将变得有点复杂。

或者,你可以“编码”你的字符串,以避免自动日期强制,然后在SPLIT之后“解码”它:

=ArrayFormula(SUBSTITUTE(SPLIT(SUBSTITUTE(A1,"-","x"),","),"x","-"))

答案 2 :(得分:0)

在单元格中使用1,2-5,4,可以根据需要拆分数据>将文本拆分为列......