为什么在我使用时,拆分公式不会扩展到整个列=arrayformula(split(input!G2:G, ","))
?
我仅对input!G2单元格得到结果,而在G列中没有得到其余结果。其他公式=arrayformula(find(",", input!G2:G))
似乎可以正常运行并且可以毫无问题地扩展。
现在,将SPLIT应用于垂直数组即可。(2017年1月4日)
=ArrayFormula(SPLIT(input!G2:G,","))
或用于错误屏蔽
=ArrayFormula(IFERROR(SPLIT(input!G2:G,",")))
注意:结果数组与SPLITted元素的最大数量一样宽。
(答案的其余部分不再适用,而是保留用于……历史目的?)
这将被视为一个非常糟糕的答案,但是:事实并非如此。
我怀疑这可能是因为它可能会产生锯齿状的数组(每行中元素的数量不同),这可能被认为是有问题的。但是,在以前的Sheets版本中,“数组SPLIT”曾经用于“工作”(尽管存在一个错误,在该数组的第一个元素上它无法正常工作)。
SPLIT并不是一个不能在数组上迭代的函数(例如INDIRECT,INDEX,SUMIFS)。
解决方法(2017年1月4日编辑):
=ArrayFormula(REGEXREPLACE(input!G2:G&REPT(",",6),REPT("([^,]*),",6)&",*","$"&COLUMN(OFFSET(A1,,,1,6))))
OFFSET(A1 ,,, 1,6)和REPT函数中的6确定SPLIT中元素的最大数量。您可以插入一个表达式,该表达式将计算数据列中元素的最大数量,但是性能将遭受更大的损失。
另外,需要注意的是,它仅支持按单个字符(在这种情况下为逗号)进行分割。
或者,您可以查看Google Apps脚本自定义函数。
以前的解决方法不再起作用,因为REGEXEXTRACT似乎不再支持第二个参数的数组-无论如何它仍在2017年1月。
=ArrayFormula(IFERROR(REGEXEXTRACT(","&input!G2:G,"^"&REPT(",+[^,]+",COLUMN(OFFSET(A1,,,1,6))-1)&",+([^,]+)")))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句