如何在不将所述公式应用于每个单元格的情况下将公式应用于范围?
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(我相信)最初设计了这个解决方法。
我正在尝试应用一个公式,但不让它将公式数据添加到每个单元格 - 换句话说,我需要接收公式的单元格在获得数据之前保持不变。
我四处搜索,看起来 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(我相信)最初设计了这个解决方法。