1

在此处输入图像描述

在插图上,所有公式都是数组。每个公式跨越的范围都有边界,每个块上的第一个公式写在该块的顶部。

RangeA4:A103是一个输入向量(它是数字),rangeC4: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 范围内的数组。

4

1 回答 1

3

INDEX以一些奇怪的方式工作!

通常INDEX不能返回一个数组——尽管你似乎发现了一个例外——当它是一个在一个范围内输入的数组公式时。

您应该能够使用OFFSET返回将在其中工作的所需数组MIN,即使用此公式

=MIN(N(OFFSET(INDIRECT($A$2);$C4:$G4-1;0)))

CTRL+ SHIFT+确认ENTER

于 2013-11-06T20:20:00.637 回答