在插图中,所有公式都是数组。每个公式跨越的范围是有界的,每个块上的第一个公式都写在该块的顶部。
范围A4:A103
是输入向量(是数字),范围C4:G23
是A4:A103
行的给定(输入)排列(必须是正非零整数)大于输入向量的长度。)
让我们将排列矩阵解释为行集。
如何在恒定数量的单元格中计算每行 输入向量中的最小数量?通过恒定数量的单元格,我的意思是解决方案,那就是无论排列中的列数是多少,每行都需要固定数量的单元格。 (在生产情况下,每个维度都要大得多;排列矩阵中大约有100列。)
我不要求VBA解决方案。如果有必要,解决方案可以使用免费和公开的Excel附加组件,如MoreFunc,但我更喜欢保留它香草Excel 2007或更高版本。
我认为公式{=MIN(INDEX(INDIRECT($A$2);$C4:$G4))}
可以解决我的问题。令人惊讶的是,Excel似乎没有考虑公式的数组性质,并将其评估为好像它被写为=MIN(INDEX(INDIRECT($A$2);$C4)
,这相当于功能失调=INDEX(INDIRECT($A$2);$C4)
。
另一方面,我们可以看到MIN
的参数被理解为I4:M4范围内的数组。
答案 0 :(得分:3)
INDEX
以某种奇怪的方式运作!
通常INDEX
不能返回一个数组 - 尽管你似乎找到了一个例外 - 当它是在一个范围内输入的数组公式时。
您应该可以使用OFFSET
返回MIN
内所需的数组,即使用此公式
=MIN(N(OFFSET(INDIRECT($A$2);$C4:$G4-1;0)))
使用 CTRL + SHIFT + ENTER确认