如何在不将所述公式应用于每个单元格的情况下将公式应用于范围?

How do I apply a formula to a range without applying said formula to every cell?

我正在尝试应用一个公式,但不让它将公式数据添加到每个单元格 - 换句话说,我需要接收公式的单元格在获得数据之前保持不变。

我四处搜索,看起来 ARRAYFORMULA 可以工作,但当我应用它时它似乎没有做任何事情。

例如,我想将此公式应用于单元格区域:=SPLIT(E2, ","))。 E 列中的每个单元格需要根据它的逗号分成两个相邻的两个单元格。当我尝试仅应用 =ARRAYFORMULA(SPLIT(E2:E99, ",")) 时,我将其添加到的单元格获得公式。

我想你想要的可能是array_constrain但是对于你的例子我目前只能给你两个公式(逗号的每一边一个):

=Array_constrain(arrayformula(left(E2:E,find(",",E2:E)-1)),match("xxx",E:E)-1,1)  

=Array_constrain(arrayformula(mid(E2:E,find(",",E2:E)+1,len(E2:E))),match("xxx",E:E)-1,1)

除了pnuts的贡献,还试试:

=ArrayFormula(iferror(REGEXEXTRACT(","&E2:E,"^"&REPT(",+[^,]+",COLUMN(OFFSET(A1,,,1,6))-1)&",+([^,]+)")))

注意:可以更改 OFFSET 的最后一个参数,以匹配 E2:E 范围内单元格中的最大值数(以逗号分隔)。例如:如果每个单元格的值不超过 3 个,请将其设置为三个。然后输出将是三列宽(每个值一列)。 希望这有意义吗? 也归功于 AdamL(我相信)最初设计了这个解决方法。