我用它ArrayFormula()来简化我创建报告的方式.
而不必建立在每个单元格(参考例如,=C1,=C2,=C3,=C4在每个单元中,我只是用=arrayformula(C1:C4)一个单细胞,它不正是相同的工作,但要简单得多,这让事情变得更有条理,因为我只需要在一个单元格中查找可能的错误.
当我必须将范围引用到另一个范围时,例如将C1:C4的值引入A1:A4范围时,它的效果很好.在A1单元格中,我会写=arrayformula(C1:C4),它会发挥其魔力.
当范围长度不同时,它确实有点棘手,但它仍然是可行的.例如,如果我想在B1:B3的顶部堆叠两个或更多范围链接C1:C4,则在单元格A1上我可以写入=arrayformula({C1:C4;B1:B3}).
我的问题是arrayFormula()用于复制重复模式.例如,如果我想复制单元格C1的内容4次,我会使用=arrayformula({C1;C1;C1;C1}).
这将起作用并将达到预期的效果.但是,我想知道是否有更好的方法来做到这一点.像=arrayformula({C1}*12)这种模式会重复12次.这也使我能够拥有一个动态公式,例如=arrayformula({C1}*count(D:D))模式根据某个变量重复的位置.
你是否有任何关于如何使用原生公式(没有javascript)实现这一目标的想法?
G4m*_*4mo 19
我会使用split()函数而不是arrayformula()和rept()函数来重复单元格位置.例如,如果你的n = 4,公式将如下所示:
=split(rept(C1&";",4),";")
Run Code Online (Sandbox Code Playgroud)
rept()重复单元格位置C1 +分号四次创建一个字符串,split()函数将分号创建的字符串分成水平单元格.
您可以使用transpose()函数将生成的水平表旋转到垂直表:
=transpose(split(rept(C1&";",4),";"))
Run Code Online (Sandbox Code Playgroud)
是的,你可以借助arrayformula()函数使用它来创建动态公式:
=arrayformula(count(D:D)*split(rept(C1&";",4), ";"))
Run Code Online (Sandbox Code Playgroud)
vst*_*iuk 10
对于 N 行 M 列的“文本”:
=ARRAYFORMULA("text"&T(SEQUENCE(N_rows,M_columns)))
Run Code Online (Sandbox Code Playgroud)
对于编号为 123 的 N 行 M 列:
=ARRAYFORMULA(123+0*SEQUENCE(N_rows,N_columns))
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用IFand SEQUENCE:
=ARRAYFORMULA(IF(SEQUENCE(4),C1))
Run Code Online (Sandbox Code Playgroud)
在序列出现之前,有ROW:
=ARRAYFORMULA(IF(ROW(A1:A4),C1))
Run Code Online (Sandbox Code Playgroud)
该范围A1:A4提供 1 到 4 的序列。
| 归档时间: |
|
| 查看次数: |
13649 次 |
| 最近记录: |