如何在Google SpreadSheet中重复范围重复n次

时间:2016-01-27 12:39:48

标签: google-sheets

我使用ArrayFormula()来简化我创建报告的方式。

我不必在每个单元格中创建引用(例如=C1=C2=C3=C4,而只需使用{{1}在一个单独的单元格中。它完成相同的工作,但更简单,它使事情更有条理,因为我只需要在一个单元格中查找可能的错误。

当我必须将一个范围引用到另一个范围时,如将C1:C4的值引入A1:A4范围,它的效果很好。在A1单元格中,我只想写=arrayformula(C1:C4),它就是它的魔力。

当范围长度不同时确实有点棘手,但它仍然可行。例如,如果我想在B1:B3之上堆叠两个或更多范围链接C1:C4,则在单元格A1上我可以写=arrayformula(C1:C4)

我的问题是使用=arrayformula({C1:C4;B1:B3})复制重复模式。例如,如果我想复制单元格C1的内容4次,我会使用arrayFormula()

这将起作用并将达到预期的效果。但是,我想知道是否有更好的方法来做到这一点。像=arrayformula({C1;C1;C1;C1})这样的模式会重复12次。这也使我能够使用动态公式,例如=arrayformula({C1}*12),其中模式将根据某个变量重复。

你是否有任何关于如何使用原生公式(没有javascript)实现这一目标的想法?

3 个答案:

答案 0 :(得分:15)

我会使用split()函数而不是arrayformula()和rept()函数来重复单元格位置。例如,如果你的n = 4,公式将如下所示:

=split(rept(C1&";",4),";")

rept()重复单元格位置C1 +分号四次创建一个字符串,split()函数将分号创建的字符串除以水平单元格。

您可以使用transpose()函数将生成的水平表旋转到垂直表:

=transpose(split(rept(C1&";",4),";"))

是的,您可以在arrayformula()函数的帮助下使用它来创建动态公式:

=arrayformula(count(D:D)*split(rept(C1&";",4), ";"))

答案 1 :(得分:4)

对于N行M列的“文本”:

=ARRAYFORMULA("text"&T(SEQUENCE(N_rows,M_columns)))

对于N行和M列的数字123:

=ARRAYFORMULA(123+0*SEQUENCE(N_rows,N_columns))

答案 2 :(得分:1)

=arrayformula(count(D:D)*split(rept(C1&";",4), ";"))

当C1包含文本值时,此方法将无效。

我想出了一种变体,可以动态地重复/填入与另一列内容一致的文本值:

=arrayformula(transpose(split(rept("TEXT|",counta(D:D)), "|")))