Excel Min功能不起作用

时间:2014-10-23 20:43:37

标签: excel excel-formula min

我有一个数组,我试图返回与输入O12的参考号相对应的最大和最小时间。

我想要它,这样当我输入10进入O12时,我的最大功能给了我3:00而我的分给了我1:00

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))}

我的最大功能完美运行并返回最高数字,但我的最小功能始终显示为零。

2 个答案:

答案 0 :(得分:0)

当您使用此“产品”版本而不是IF语句时,您的两个测试中的任何一个返回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)

此致

答案 1 :(得分:-1)

你正在检查某事物的最小值或0.因为你正在寻找的东西是正面的,每次都会获胜。尝试使用大数字进行比较,例如

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