Excel公式为最小值,如果大于负数,小于正数

我需要一些公式的帮助。 如果大于-365但小于365,我正在设法计算最小值。

{=MIN(IF((E46:J46<365)*(E46:J46>-365),E46:J46))} 

这是迄今为止我所使用的公式,它忽略了小于-365和365以上的任何值。

如果最小值小于0,则会给出正确的值,但大于0的值会被忽略,并且单元显示为0。

例如,

E -42101
F 80
G -35
H 367
“空白”
J “空白”

然后我会得到-35作为我的最小值,如果我从单元格删除这个最小值变成0,当它应该是80。

先谢谢你。

尝试:

 =AGGREGATE(15,6,IF(NOT(ISNUMBER(myRng)),NA(),IF(myRng>365,NA(),IF(myRng<-365,NA(),myRng))),1) 

Ctrl + Shift + Enter进入

MIN不会忽略错误,但是AGGREGATE可以。

对于正常input的公式,由下面的@XORLX引起:

 =AGGREGATE(15,6,1/(ISNUMBER(myRng)*(myRng>-365)*(myRng<365))*myRng,1) 

或者更简洁地说:

 =AGGREGATE(15,6,myRng/(ISNUMBER(myRng)*(myRng>-365)*(myRng<365)),1) 

为了避免返回#NUM! 如果没有符合条件的条目,则一种解决scheme是使用IFERROR

 =IFERROR(AGGREGATE(15,6,myRng/(ISNUMBER(myRng)*(myRng<365)*(myRng>-365)),1),"") 

就像在评论中提出的那样,添加一个检查单元格是否为空的方法应该足以解决你的问题:

 {=MIN(IF((E46:J46<365)*(E46:J46>-365)*(E46:J46<>""),E46:J46))} 

(通过Ctrl-Shift-Enterinput)

在Ron Rosenfeld和Maxime Goguillon的帮助下,他们提供了很好的答案。

罗恩·罗森菲尔德

 {=IFERROR(AGGREGATE(15,6,E46:J46/((E46:J46)*(E46:J46>-365)*(E46:J46<365))*E46:J46,1),"")} 

Maxime Goguillon

 {=IF(MIN(IF((E46:J46<365)*(E46:J46>-365)*NOT(ISBLANK(E46:J46)),E46:J46))=0,"",MIN(IF((E46:J46<365)*(E46:J46>-365)*NOT(ISBLANK(E46:J46)),E46:J46)))} 

这两个工作都很完美。

帮助非常感谢!