具有非相邻单元格引用的公式中的数组常量

时间:2017-06-16 16:03:29

标签: arrays excel excel-formula

我需要在我的数组公式中添加一组非相邻单元格。我已经尝试了以下所有类似数组的方法,它们都给了我一个“这个公式错误有问题”。

'Chart Data'!{A12:A14,D3:D11}
{'Chart Data'!A12:A14,'Chart Data'!D3:D11}
'Chart Data'!{A12,A13,A14,D3:D11}
{'Chart Data'!A12,'Chart Data'!A13,'Chart Data'!A14,'Chart Data'!D3:D11}
'Chart Data'!{A12,A13,A14,D3,D4,D5,D6,D7,D8,D9,D10,D11}
{'Chart Data'!A12,'Chart Data'!A13,'Chart Data'!A14,'Chart Data'!D3,'Chart Data'!D4,'Chart Data'!D5,'Chart Data'!D6,'Chart Data'!D7,'Chart Data'!D8,'Chart Data'!D9,'Chart Data'!D10,'Chart Data'!D11}

整个公式(数组常量在{#####}所在的位置):

{=SUM(((1-References!M1:M12)*({#####}*(G3:G14+F3:F14-0.11)))+((References!M1:M12)*('Chart Data'!A12:A23*(G3:G14+F3:F14-0.11)))+((H2:H13*X3:X14)+(H3:H14*Y3:Y14)+(I2:I13*(V3:V14-X3:X14))+(I3:I14*(W3:W14-Y3:Y14))))}

我100%肯定是导致问题的是这个特定的数组常量。我无法移动我引用的单元格将它们排成一行。甚至可以在数组公式中引用非相邻范围吗?如果有可能,我做错了什么?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。以下内容非常简单且直接,我很喜欢。

选择一个单元格为您的非连续数组构建字符串,或者创建一个命名范围来执行此操作。我将展示第一个,因为它似乎最能自由使用鼠标,但是在这两种方法中,您实际上都可以利用如何构建将成为数组的字符串来发挥创造力。在“命名范围”中创建它的主要优点是没有帮助单元位于任何地方。

因此,您创建该字符串,然后使其成为数组。假设您需要使用单元格A12:A14和C3:C11的非连续数组。您可以像这样使用joiningTEXTJOIN()

="{"&TEXTJOIN(",",FALSE,B12:B14,C3:C11)&"}"

在用花括号({})包裹的单元格中创建值的文本字符串,就像您在其中键入(“硬编码”)一样。这些单元格中的值正确的情况如下所示:

{1,2,3,1,2,3,4,5,6,7,8,9}

但还不是数组。

现在,此方法具有魔力。创建一个命名范围,也许叫做String2Array,并给它一个公式:

=EVALUATE(A1)

(或您用于上面公式的任何单元格创建要作为数组的文本字符串)。使参考绝对。 ($ A $ 1 ...,它将为您完成,只是不要将其编辑为相对的。如果您将其用于类似的工作,但需要相对的,那会很好用,但不是这里需要。)

现在,将公式中的占位符替换为命名范围的名称(也许您DID使用String2Array)。完成了。

还有其他几种使用INDEX()CHOOSE()的方法,您可以使用函数DOLLARDE()IMREAL()强制将其变为数组(我在2014年的帮助网站上找到了该数组发布),其他一些人也做同样的事情。在那些日子里,一个人也必须使用{CSE},但是SPILL现在可以解决这个问题(与这两个看起来很奇怪的友好关系,至少还有两个)。张贴者是我在该站点上看到的人,EXCELXOR是站点的名称,XOR LX是此处成员的名称,尽管Lori在评论中提到了这些功能。既然他涵盖了工作,似乎,帮助站点通常不涉及这些方面,因此在某些地方或其他地方查找他的某些作品对某些人来说可能是值得的。

但是此方法非常直接,因此易于维护。就我个人而言,我喜欢EVALUATE()(必须在命名范围功能中使用,而不是在单元格侧使用)的想法,它是不断赠送的礼物,一件一件非常有用的事情。

很多方法。您甚至可以从字面上在辅助列/行中构建数组,然后引用THAT而不是非连续地址。我最喜欢joining+TEXTJOIN()方法,因为它是LIVE公式,因此可以使用鼠标轻松地将所有块放入公式中。但是您也可以很容易地输入字符串并添加{}。或者,也许用户会输入一串地址,然后像上面的公式一样添加它们。如果合适,您也可以将实际值(常量)插入正在构建的字符串中。您可以公式化地构建它……我不会从众多选择中首先选择该工作负载,但是如果您已经打算这样做,那么……或者它只是一个很小的构建。