根据两组标准
查找列中的最大值所以逻辑是:找到M列中的最小值,其中A列中的值与列N匹配,而Y列中的值小于318。
我尝试过使用像这样的数组公式,但它似乎没有工作/是要运行的内存很重: = MIN(IF(AND(N:N = A2,Y:Y< = 318),M:M))
有更简单的方法吗?或者也许是一个可行的UDF?
感谢您的帮助!
答案 0 :(得分:1)
您不能在这些类型的公式中使用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)
这种方法的优点是你不需要“数组输入”,它可以忽略数据中的任何错误
无论哪种方式,最好减少范围大小,如果可以的话,因为整列可能会很慢
答案 1 :(得分:0)
尝试尝试并调整范围以适应。尽量不要使用整列参考:
=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 Named Ranges代替
答案 2 :(得分:0)
当事情变得复杂时,我通常会将其分解并在单独的列中设置更小/更简单的公式。
换句话说,您在A到Y列中有数据吗?
所以让我们在AA栏中创建一个公式: 1)识别Col A中的值何时匹配col N,并且col y中的值与col Y <1。 318
=and(A1=N1,Y1<318)
2)将AA1复制到数据的所有行。
3)现在我们有条件解决..因为有一个SUMIF和COUNTIF,但没有MINIF ..我们必须自己构建。首先是IF: 在AB1栏中:
=if(AA1,M1,"")
将其复制到您的所有数据中。
最后,做你的分钟:
=MIN(AB:AB)
应该给你答案。
你可能可能将前两个拼接在一起,但同样,建立一个像这样的复杂公式,简单地构建它,首先,;)