我试图在google电子表格中使用ARRAYFORMULA函数中的拆分函数。
我希望"1.2.3.4“成为"1”、"2“、"3”、"4“。
这是一行代码(只工作1行):
=SPLIT(A2;".")这就是我想要达到的目标(同时处理多个行):
//alone
=SPLIT(A2:A;".")
//or with ARRAYFORMULA
=ARRAYFORMULA(SPLIT(A2:A;"."))由于拆分函数不能在ARRAYFORMULA函数中使用,所以我搜索了一个解决方案(ARRAYFORMULA() does not work with SPLIT()):
=ARRAYFORMULA(IFERROR(REGEXEXTRACT("."&A2:A;"^"&REPT(".+[^.]+";COLUMN(OFFSET(A2;;;1;4))-1)&".+([^.]+)")))它几乎起作用了,除了它没有正确地拆分之外,下面是我得到的结果:
"1.2.3.4“改为"4”、"4“、"4”、"4“
如果我能找到正确的解决办法或者更好的选择,那将是非常棒的.
发布于 2015-05-12 22:54:48
表达式创建如下正则表达式:
^.+[^.]+.+[^.]+.+[^.]+.+([^.]+).+部件将尽可能匹配任何东西,从而将最后的([^.]+)推到最后。
如果使用这样的表达式,它应该会更好地工作:
^\.[^.]*\.[^.]*\.[^.]*\.([^.]*)它将始终计算每个.,并且不会将最后一个组推得太远。
(您可以使用{3}而不是重复子模式,但这会改变您原来的公式太多)
以下是相应的公式:
=ARRAYFORMULA(IFERROR(REGEXEXTRACT("."&A2:A;
"^"&REPT("\.[^.]*";COLUMN(OFFSET(A2;;;1;4))-1)&"\.([^.]*)")))发布于 2015-12-04 08:46:22
你可以试试这个:
=REGEXREPLACE(A1,"\.","\"",\""")更新: Google修复了这个问题,现在您可以在split中使用数组公式:
=ArrayFormula(SPLIT(Sheet1!A2:A,"."))
https://stackoverflow.com/questions/30200697
复制相似问题