我一直在寻找一段时间,但无法找到我的问题的答案。
在Excel中,我可以使用什么样的紧凑公式来创建由重复n
次的单个元素组成的数组,其中n
是输入(可能是硬编码的)?< /强>
例如,某些内容看起来像这样(下面的公式不会工作,但会让我知道我在寻找什么):
{={"Constant"}*3}
注意:我不是在寻找基于VBA的解决方案。
答案 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
表明它有效:
此处使用了列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)