为什么这个数组公式不起作用?
在图上所有的公式都是数组。 每个公式跨越的范围是有界的,并且每个块的第一个公式写在该块的顶部。
范围A4:A103
是input向量(数字),范围C4:G23
是A4:A103
行的给定(input)置换A4:A103
(必须是正整数,不大于input向量的长度) 。
让我们把排列matrix解释为一组行。
如何计算恒定数量的单元格中的每一行input向量中的最小数量? 通过单元的数量,我的意思是解决scheme,这将需要每行固定数量的单元格,而不pipe列的排列数。 (在生产环境中,每个维度都要大得多;排列matrix中有大约100个列。)
我不要求VBA解决scheme。 如果有必要,解决scheme可以使用一个免费的公开Excel Excel插件,比如MoreFunc,但是我更喜欢保留Excel 2007或更高版本。
我认为公式{=MIN(INDEX(INDIRECT($A$2);$C4:$G4))}
将解决我的问题。 令人惊讶的是,Excel似乎没有考虑到公式的数组性质,并将其评估为好像它被写为=MIN(INDEX(INDIRECT($A$2);$C4)
,这相当于function失调=INDEX(INDIRECT($A$2);$C4)
。
另一方面,我们可以看到MIN
的参数被理解为范围I4:M4中的数组。
INDEX
以一些奇怪的方式工作!
通常INDEX
不能返回一个数组 – 虽然你似乎发现了一个例外 – 当它是一个数组公式input一个范围。
你应该能够使用OFFSET
来返回在MIN
内工作的所需数组,即用这个公式
=MIN(N(OFFSET(INDIRECT($A$2);$C4:$G4-1;0)))
用CTRL + SHIFT + ENTER确认