Excel最小function不起作用

我有一个数组,我试图返回最大和最小时间对应于input到O12的参考编号。

我想这样,当我input10到O12我的最大function给我3点,我的分钟给我1点

A-----B-----C 10----------1:00 10----------3:00 

 {=MAX(INDEX((A6:A200=O12)*(C6:C200),0))} {=MIN(INDEX((A6:A200=O12)*(C6:C200),0))} 

我的最大function完美工作,并返回最高的数字,但我的最低function总是显示零。

当你使用这个“产品”版本,而不是一个IF语句时,任何一个你的两个testing都返回一个FALSE的行将会产生一个零结果。 这是因为,当采取布尔的产品,TRUExFALSE = 0和FALSExTRUE = 0。 因此,传递给MIN的数组将包含可能的许多零,从而导致不良结果。

使用一个IF语句,必须在一个数组公式中,这些相同的行被分配一个布尔FALSE,而不是零。 而且,由于MIN忽略布尔值,所以这个设置保证了正确的结果。

作为一个例子,只是考虑一个范围的A6:C10,让我们假设我们有以下值:

O12: “X”

A6 🙁 空白) A7 🙁 空白) A8: “X” A9:( 空白) A10: “X”

C6: 74 C7: 64 C8: 99 C9: 58 C10: 65

非数组公式:

 =MIN(INDEX((A6:A10=O12)*(C6:C10),0)) 

将解决为:

 =MIN(INDEX(({"";"";"X";"";"X"}=O12)*(C6:C10),0)) 

这是:

 =MIN(INDEX(({FALSE;FALSE;TRUE;FALSE;TRUE})*(C6:C10),0)) 

即:

 =MIN(INDEX({0;0;99;0;65},0)) 

(由于C6,C7和C9中的值乘以FALSE,所以它们的结果是0)

即:

 =MIN({0;0;99;0;65}) 

这显然是0。

但是,等效的数组公式:

 =MIN(IF(A6:A10=O12,C6:C10)) 

解决为:

 =MIN(IF({"";"";"X";"";"X"}=O12,C6:C10)) 

这是:

 =MIN(IF({FALSE;FALSE;TRUE;FALSE;TRUE},C6:C10)) 

即:

 =MIN(IF({FALSE;FALSE;TRUE;FALSE;TRUE},{74;64;99;58;65})) 

即:

 =MIN({FALSE;FALSE;99;FALSE;65}) 

根据需要,这次是65。

如果你真的不想使用一个数组公式(虽然我不明白为什么会这样 – 所需的按键组合,除了许多人似乎并没有意识到,这种解决方法,采用插入一个(额外)INDEX函数没有比数组设置更有效),那么如果你有Excel 2010或更高版本,你可以使用AGGREGATE,即:

 =AGGREGATE(15,6,C6:C10/(A6:A10=O12),1) 

问候

你正在检查最小的东西或0.因为你正在寻找的东西是积极的,每次0胜。 尝试使用大量比较,例如

 {=MIN(INDEX((A6:A200=O12)*(C6:C200),2E99))}