根据2个标准查找最小值(Excel 2013)

希望根据两套标准find列中的最大值

因此,逻辑将是:find列M中的最小值,其中列A中的值与列N匹配,并且列Y中的值小于318。

我已经尝试使用这样的数组公式,但它似乎并没有工作/是内存重运行:= MIN(IF(AND(N:N = A2,Y:Y <= 318),M: M))

有没有更简单的方法? 或者可能是一个可以工作的UDF?

感谢您的帮助!

您不能在这些types的公式中使用AND ,因为它只返回单个值而不是所需的数组。

这里有三个可能的工作版本:

1.)用*来模拟AND

=MIN(IF((N:N=A2)*(Y:Y<=318),M:M))

CTRL + SHIFT + ENTER确认

2.)使用多个嵌套的IF

=MIN(IF(N:N=A2,IF(Y:Y<=318,M:M)))

CTRL + SHIFT + ENTER确认

3.)使用AGGREGATE函数

=AGGREGATE(15,6,M:M/(N:N=A2)/(Y:Y<=318),1)

这种方法的优点是你不需要“数组input”,它可以忽略数据中的任何错误

无论哪种方式,如果可以的话,最好减小范围大小,因为整列可能会变慢

试试这个,并调整范围以适应。 尽量不要使用整列引用:

 =SMALL(INDEX(($N$2:$N$101=A2)*($Y$2:$Y$101<=318)*$M$2:$M$101,),1+ROWS($M$2:$M$101)-COUNTIFS($N$2:$N$101,A2,$Y$2:$Y$101,"<=318")) 

如果您使用整列来添加添加的新数据,请考虑使用dynamic命名范围

当事情变得复杂的时候,我通常会把它分解下来,并在单独的列中设置更小/更简单的公式。

换句话说,你有从A到Y列的数据?

那么让我们在列AA中创build一个公式:1)确定Col A中的值与col N相匹配,并且col Y中的值<318

 =and(A1=N1,Y1<318) 

2)将AA1复制到数据的所有行。

3)现在我们有一个条件去工作..因为有一个SUMIF和COUNTIF,但没有MINIF ..我们将不得不build立自己。 首先是IF:在AB1栏中:

 =if(AA1,M1,"") 

复制到所有的数据。

最后,做你的分钟:

 =MIN(AB:AB) 

应该给你你的答案。

你也许可以把前两个拼接在一起,但是再次build立这样一个复杂的公式,首先,