2016-04-30 38 views
4

这是我的简单的表格查找在指数(匹配)最小值阵列[EXCEL]

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值中的最小值。

Ex。 如果我有塔斯马尼亚州霍巴特为我的标准,我希望得到17,因为它是最低值,而不是21

我试着筑巢MIN索引匹配阵列(H4=$A:$A)*(I4=$B:$B)*(MIN($C:$C))内,但它只会导致错误

回答

1

这是MIN(IF...而不是INDEX。在Excel中执行SUMIFCOUNTIF之前,即使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]确认。大括号应该自动出现。

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) 

aggregate_min

作为一个老式的标准公式,你原来会是什么样子,

=MIN(INDEX(C2:C13+((H4<>A2:A13)+(I4<>B2:B13))*1E+99, ,)) 
+0

智能公式,但为什么不直接'= 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))))'作为数组? –

+0

Axel在另一个答案中做了数组公式。我坚持非数组风格。 – Jeeped

+1

你的furmula也是阵列式(只是没有CSE)。真正的技巧应该是'C2:INDEX(C:C,MATCH(1E + 99,C:C))',它允许在数组中使用整列而不会冻结excel;) –