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

时间:2016-10-07 12:15:01

标签: excel excel-formula excel-2010

我需要一些公式的帮助。我试图计算出最小值,如果大于-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
&#34;空白&#34;
J &#34;空白&#34;

然后我将-35作为我的最小值,如果我从单元格中删除它,我的最小值变为0,当它应该是80时。

提前谢谢。

3 个答案:

答案 0 :(得分:3)

尝试:

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

使用 ctrl + shift + 输入

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

对于正常输入的公式,由以下@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!,一种解决方案是使用IFERROR

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

答案 1 :(得分:2)

与评论中提议的一样,添加检查单元格是否为空白应该足以解决您的问题:

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

(使用Ctrl-Shift-Enter输入)

答案 2 :(得分:0)

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

这两种方法都很完美。

非常感谢帮助!!!!