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)))}
这两个工作都很完美。
帮助非常感谢!