Excel:创建一个n次常量的数组

时间:2018-05-25 09:43:34

标签: arrays excel

我一直在寻找一段时间,但无法找到我的问题的答案。

在Excel中,我可以使用什么样的紧凑公式来创建由重复n次的单个元素组成的数组,其中n是输入(可能是硬编码的)?< /强>

例如,某些内容看起来像这样(下面的公式不会工作,但会让我知道我在寻找什么):

{={"Constant"}*3}

注意:我不是在寻找基于VBA的解决方案。

3 个答案:

答案 0 :(得分:3)

编辑阅读@AxelRichter答案,我看到我还应该指出下面的公式假设常量是一个数字。如果常量是文本,则此解决方案将无效。

易失性:

=ROW(INDIRECT("1:" & Repts))/ROW(INDIRECT("1" & ":" & Repts)) * Constant

非易失性:

=ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,Repts,1))/ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,Repts,1))*Constant

如果

Constant = 14
Repts = 3

然后

Result = {14;14;14}

公式的第一部分创建了一个重复Repts次的1的数组。然后我们将该数组乘以常数以得到所需的结果。

在阅读 @MacroMarc 的评论后,以下非易失性公式shouyld也适用于数字:

=(ROW($A$1:INDEX($A:$A,Repts))>0)*Constant

答案 1 :(得分:2)

可以将1:n空单元格连接到“常量”,以创建具有n个“常量”项的字符串数组:

"Constant"&INDEX(XFD:XFD,1):INDEX(XFD:XFD,3)

有3是n。

用于公式

=INDEX("Constant"&INDEX(XFD:XFD,1):INDEX(XFD:XFD,3),0)

Evaluate Formula表明它有效:

enter image description here

此处使用了列XFD,因为在大多数情况下,此列将为空,并且此解决方案需要保证为空的列。

如果使用

"Constant"&T(ROW($A$1:INDEX($A:$A,3)))

=INDEX("Constant"&T(ROW($A$1:INDEX($A:$A,3))),0)

需要空柱消失。函数ROW返回数字,但如果T的参数不是文本,则返回空字符串。因此,每个1:3(n)将连接空字符串。

感谢@MacroMarc的提示。

答案 2 :(得分:0)

使用步长为 0 的 SEQUENCE 是创建常量数组的更简洁的方法。您可以选择是否需要行或列(或两者都需要!)。

=SEQUENCE(Repts,1,Constant,0)