查找由指定索引指出的列表或数组中的最小值
我列出了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中引入的。它在早期版本中不可用。
- 从一个范围内的单元格中读取所有的唯一值,并从它们中创build一个逗号分隔的string?
- 如何将excel文件中特定标题的所有行与c#相加?
- 如何更改Visual Studio使用的Excel版本进行debugging?
- 创build数据透视表时types不匹配:Excel vba
- 生成Excel报表需要很长时间
- Ruby WIN32OLE excel图表seriescollection值
- Excel 2016切片机 – select除1之外的全部
- Ultragrid infragistics excel导出导出UltraDropDownList ValueMember而不是DisplayMember
- Excel VBA:使用适当的单元格数据types粘贴剪贴板数据(外部源)