大于负数小于正数时最小值的Excel公式
我需要一些配方的帮助。我试图计算出大于-365但小于365的最小值大于负数小于正数时最小值的Excel公式,excel,excel-formula,excel-2010,Excel,Excel Formula,Excel 2010,我需要一些配方的帮助。我试图计算出大于-365但小于365的最小值 {=MIN(IF((E46:J46<365)*(E46:J46>-365),E46:J46))} {=MIN(如果((E46:J46-365),E46:J46))} 这是我到目前为止的公式,它忽略了小于-365和大于365的任何内容 如果最小值小于0,但忽略任何大于0的值,并且单元格显示0,则它会给出正确的值 比如说, E-42101 F80 G-35 H367 I“空白” J“空白” 然后我将得到-35作为我的
{=MIN(IF((E46:J46<365)*(E46:J46>-365),E46:J46))}
{=MIN(如果((E46:J46-365),E46:J46))}
这是我到目前为止的公式,它忽略了小于-365和大于365的任何内容
如果最小值小于0,但忽略任何大于0的值,并且单元格显示0,则它会给出正确的值
比如说,
E-42101F80
G-35
H367
I“空白”
J“空白” 然后我将得到-35作为我的最小值,如果我从单元格中删除它,我的最小值将变为0,而它应该是80 提前谢谢。试试:
=AGGREGATE(15,6,IF(NOT(ISNUMBER(myRng)),NA(),IF(myRng>365,NA(),IF(myRng<-365,NA(),myRng))),1)
或者更简洁地说:
=AGGREGATE(15,6,myRng/(ISNUMBER(myRng)*(myRng>-365)*(myRng<365)),1)
尝试:
或者更简洁地说:
=AGGREGATE(15,6,myRng/(ISNUMBER(myRng)*(myRng>-365)*(myRng<365)),1)
与评论中建议的一样,添加单元格是否为空的检查应足以解决您的问题:
{=MIN(IF((E46:J46<365)*(E46:J46>-365)*(E46:J46<>""),E46:J46))}
{=MIN(如果((E46:J46-365)*(E46:J46“”),E46:J46))}
(使用Ctrl-Shift-Enter键输入)与注释中的建议类似,添加单元格是否为空的检查应足以解决您的问题:
{=MIN(IF((E46:J46<365)*(E46:J46>-365)*(E46:J46<>""),E46:J46))}
{=MIN(如果((E46:J46-365)*(E46:J46“”),E46:J46))}
(按Ctrl-Shift-Enter键输入)在罗恩·罗森菲尔德和马克西姆·戈吉隆的帮助下,他们提供了两个很好的答案 罗恩罗森菲尔德
{=IFERROR(AGGREGATE(15,6,E46:J46/((E46:J46)*(E46:J46>-365)*(E46:J46<365))*E46:J46,1),"")}
在罗恩·罗森菲尔德(Ron Rosenfeld)和马克西姆·戈吉隆(Maxime Goguillon)的帮助下,集合(15,6,E46:J46/((E46:J46)*(E46:J46>-365)*(E46:J46) 罗恩罗森菲尔德
{=IFERROR(AGGREGATE(15,6,E46:J46/((E46:J46)*(E46:J46>-365)*(E46:J46<365))*E46:J46,1),"")}
{=IFERROR(聚合(15,6,E46:J46/((E46:J46)*(E46:J46>-365)*(E46:J46Blank解析为0。您需要再添加一个布尔表达式。一个用于检查单元格是否为空。Isempty或isnumber是可能需要进行的检查,以便从blanks中获取零。blank解析为0。您需要再添加一个布尔表达式。一个用于检查单元格是否为空。Isempty或isnumber是c他说,你可能需要用CSE从blanksAGGREGATE中得到零,这有点违背了函数的意义,不是吗?@XORLX是的,但是它工作了,并且保留了zeroSure的值,但是通过交互,我们避免了需要所有的value_if_false子句,也避免了需要CSE:=AGGREGATE(15,6,myRng/(ISNUMBER,myRng)*(myRng-365)),1)@XORLX我在你发布它的时候就知道了。Thanks@XORLX我认为您无法避免ISNUMBER
AGGREGATE
正在计算除法生成的数组,而不是myRng
中的值。因此空单元格将计算为{TRUE,TRUE}
部门将评估为0
使用CSE进行聚合,这有点违背了该函数的意义,不是吗?@XORLX是的,但它有效,并保留了zeroSure的值,但通过交互,我们避免了对所有value\u if\u false子句的需要,也避免了对CSE的需要:=聚合(15,6,myRng/(ISNUMBER(myRng)*(myRng-365)),1)@XORLX我在你发布它的时候就解决了这个问题。Thanks@XORLX我认为您无法避免ISNUMBER
AGGREGATE
正在计算除法生成的数组,而不是myRng
中的值。因此空单元格将计算为{TRUE,TRUE}
部门将评估为0
谢谢,与我的计算结果非常相似。=MIN(如果((E46:J46-365)*不是(ISBLANK(E46:J46)),E46:J46))。我现在的问题是,如果没有满足条件的最小值,它需要什么也不显示,而不是当前的0。有什么想法吗?我尝试了几种方法,但没有找到比聚合更好的()上面@Ron提出的方法…我会继续搜索though@atame您需要小心使用我的解决方案:如果您将其包装在if()函数中,以检查它是否返回0,那么它将起作用,但如果您的列表中实际有一个0,它是最小有效值,那么它将返回空白(而不是0)…谢谢你,与我的计算结果非常相似。=MIN(如果((E46:J46-365)*不是(ISBLANK(E46:J46)),E46:J46))。我现在的问题是,如果没有满足条件的最小值,它需要什么也不显示,而不是当前的0。有什么想法吗?我尝试了几种方法,但没有找到比聚合更好的()上面@Ron提出的方法…我会继续搜索though@atame您需要小心使用我的解决方案:如果您将其包装在if()函数中,以检查它是否返回0,那么它将起作用,但是如果您的列表中实际有一个0,它是最小有效值,那么它将返回空白(而不是0)。。。