我需要一些公式的帮助。我试图计算出最小值,如果大于-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时。
提前谢谢。
答案 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)))}
这两种方法都很完美。
非常感谢帮助!!!!