查找由指定索引指出的列表或数组中的最小值

我列出了200多个数字(在不同的原材料尺寸上使用不同尺寸的钢材的废料),我试图find六种工具的最佳组合,如果在所有原材料尺寸上使用, )。 我列举了一些项目的组合,这些项目在表中列出了最less的浪费和位置(索引)(例如索引号7,12,9,8,10和11)

现在我需要找出哪些索引指向列表中的最小项。 (即我需要公式返回索引本身,例如上面的例子中的9,如果该索引指向六个值中指出的最小值)

我不能只使用整个列表中的常规MIN()来获取最小值,然后使用MATCH()来查找索引,因为在列表中的其他索引处可能会find相同的浪费数字,没有好处(这是我开始,但有时指出它不是最佳的工具)。 听起来像一个简单的问题(也许是!?),但我似乎无法find一个工作的解决scheme(我不想用VBA来解决这个问题,除非我必须)。

有任何想法吗?

(请参阅本例中返回的红色错误索引)

在这里输入图像说明

AGGREGATE¹函数通过SMALL子函数( 15 )和k为1来实现最小值。强制任何不匹配的行进入错误状态,并通过选项6丢弃这些错误将使您获得最less的匹配工具值。 另一个AGGREGATE匹配将所有匹配打折到最小值,但不是工具select会产生正确的结果。

聚合最小条件

C4中的公式是,

=INDEX($A$6:$A$22, AGGREGATE(15, 6, ROW($1:$17)/((C$6:C$22=AGGREGATE(15, 6, C$6:C$22/(ROW($1:$17)=$C$2:$H$2), ROW(1:1)))*(ROW($1:$17)=$C$2:$H$2)), 1)) 

在这里输入图像说明

根据需要填写。


用于单元格高亮显示的条件格式

显示浅灰色背景的条件格式化填充,表示与C2:H2中的工具子集相匹配的工具索引(a6:A22)是通过selectin A6创build的:J22然后根据下面的公式创build一个CF规则,

 =ISNUMBER(MATCH($A6, $C$2:$H$2, 0)) 

突出显示适当的过滤的最小值的条件格式规则是通过首先selectC6:J22并对CF规则使用以下公式来创build的,

 =$A6=C$4 

最后一条CF规则可能看起来过于简单,但一旦答案出现,没有理由重新处理嵌套计算。


¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。