是否有等效于数组内容的偏移量

时间:2019-08-21 13:36:18

标签: excel-formula

我想动态地修改数组内容的尺寸,就像OFFSET的高度和宽度与范围一样。

让A1:A5等于1,2,3,4,5 如果我想获取具有偏移量的前三个值(使用范围): = OFFSET(A1:A5,,3,1)=> {1; 2; 3}

但这不起作用: = OFFSET({1; 2; 3; 4; 5} ,,, 3,1)

除了数组内容,是否有与OFFSET等效的东西?当然,这是更大的数组公式的一部分,该公式迫使我使用数组内容而不是范围。

我当然可以使用VBA轻松地做到这一点,但我宁愿不这样,我们称之为公司限制...

非常感谢您的帮助。

PS:第一次在这里发布,欢迎提出任何意见/建议以改善我的问题。

2 个答案:

答案 0 :(得分:0)

嗨,欢迎来到论坛。我认为您几乎是正确的-唯一需要做的就是按Ctrl + Shift + Enter,将OFFSET公式转换为Array公式:

enter image description here

在下面的示例中,我将您的OFFSET与SUMPRODUCT公式(适用于范围和数组)结合在一起。如您所见,SUMPRODUCT函数的结果正确(即前三个值的总和):

enter image description here

让我知道这是否是您想要的。

答案 1 :(得分:0)

您可以使用INDEX返回一个数组:

INDEX({1;2;3;4;5},N(IF({1},ROW(INDEX($ZZ:$ZZ,1):INDEX($ZZ:$ZZ,3)))))

这将强制所有使用此公式的公式成为数组公式,因此退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter输入。

,1更改为所需的开始位置,并将3更改为所需的结束位置。

N(IF({1},ROW(INDEX($ZZ:$ZZ,1):INDEX($ZZ:$ZZ,3))))

在这种情况下,创建一个从13的数字数组。将其传递给INDEX,然后INDEX将返回数组{1,2,3}

的数组

您可以看到该数组的总和:

enter image description here