在索引(匹配)数组中查找最小值 [EXCEL]
Posted
技术标签:
【中文标题】在索引(匹配)数组中查找最小值 [EXCEL]【英文标题】:Finding minimum value in index(match) array [EXCEL] 【发布时间】:2016-08-25 12:16:00 【问题描述】:这是我的简单表格
A B C
tasmania hobart 21
queensland brisbane 22
new south wales sydney 23
northern territory darwin 24
south australia adelaide 25
western australia perth 26
tasmania hobart 17
queensland brisbane 18
new south wales sydney 19
northern territory darwin 11
south australia adelaide 12
western australia perth 13
索引匹配数组公式:
=INDEX(A2:C9,MATCH(1,(H4=$A:$A)*(I4=$B:$B),0),3)
基本上 A 和 B 是我的查找条件,而 C 是我想要获得的值。我希望 C 是匹配的 C 值中的最小值。
例如。 如果我将塔斯马尼亚和霍巴特作为我的标准,我希望得到 17,因为它是最小值,而不是 21。
我尝试将MIN
嵌套在索引匹配数组(H4=$A:$A)*(I4=$B:$B)*(MIN($C:$C))
中,但这只会导致错误
【问题讨论】:
【参考方案1】:这与其说是INDEX
,不如说是MIN(IF...
。在SUMIF
或COUNTIF
在Excel
中实现之前,甚至SUM(IF...
或COUNT(IF...
都必须以这种方式使用。
由于到目前为止还没有MINIFS
,为此我们必须进一步使用:
=MIN(IF($A$1:$A$1000=H4,IF($B$1:$B$1000=I4,$C$1:$C$1000,NA())))
这是一个数组公式。将其输入到没有大括号的单元格中,然后按[Ctrl]+[Shift]+[Enter]确认。大括号应该会自动出现。
【讨论】:
既然我们现在有了 MINIFS,请问您可以使用 MINIFS 更新答案吗? @Vylix:谁有MINIFS
?只有那些拥有最新Excel
的人。对于那些MINIFS function 的记录非常好,不是吗?
似乎我误解了这个问题,并认为这是一个非常复杂的公式。它只是具有 2 个条件的 MIN。谢谢!【参考方案2】:
以AGGREGATE function 作为标准公式,
=AGGREGATE(15, 6, C2:INDEX(C:C, MATCH(1E+99,C:C ))/((A2:INDEX(A:A, MATCH(1E+99,C:C ))=F2)*(B2:INDEX(B:B, MATCH(1E+99,C:C ))=G2)), 1)
作为旧式标准公式,您的原始公式看起来像,
=MIN(INDEX(C2:C13+((H4<>A2:A13)+(I4<>B2:B13))*1E+99, , ))
【讨论】:
智能公式,但为什么不直接=MIN(IF((F2=A2:INDEX(A:A,MATCH(1E+99,C:C)))*(G2=B2:INDEX(B:B,MATCH(1E+99,C:C))),C2:INDEX(C:C,MATCH(1E+99,C:C))))
作为数组呢?
Axel 在另一个答案中做了数组公式。我坚持使用非数组样式。
你的 furmula 也是数组样式的(只是没有 CSE)。真正的技巧应该是C2:INDEX(C:C, MATCH(1E+99,C:C ))
,它允许在数组中使用整列而不冻结excel;)
是的,好点。我的两个公式都在其 数组样式 中使用函数。我应该说明 CSE 和非 CSE。以上是关于在索引(匹配)数组中查找最小值 [EXCEL]的主要内容,如果未能解决你的问题,请参考以下文章
在给定数组中查找最小值和最大值,其中约束应最小值索引应小于其最大值