Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大于负数小于正数时最小值的Excel公式_Excel_Excel Formula_Excel 2010 - Fatal编程技术网

大于负数小于正数时最小值的Excel公式

大于负数小于正数时最小值的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作为我的

我需要一些配方的帮助。我试图计算出大于-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作为我的最小值,如果我从单元格中删除它,我的最小值将变为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)),E‌​46:J46))。我现在的问题是,如果没有满足条件的最小值,它需要什么也不显示,而不是当前的0。有什么想法吗?我尝试了几种方法,但没有找到比聚合更好的()上面@Ron提出的方法…我会继续搜索though@atame您需要小心使用我的解决方案:如果您将其包装在if()函数中,以检查它是否返回0,那么它将起作用,但如果您的列表中实际有一个0,它是最小有效值,那么它将返回空白(而不是0)…谢谢你,与我的计算结果非常相似。=MIN(如果((E46:J46-365)*不是(ISBLANK(E46:J46)),E‌​46:J46))。我现在的问题是,如果没有满足条件的最小值,它需要什么也不显示,而不是当前的0。有什么想法吗?我尝试了几种方法,但没有找到比聚合更好的()上面@Ron提出的方法…我会继续搜索though@atame您需要小心使用我的解决方案:如果您将其包装在if()函数中,以检查它是否返回0,那么它将起作用,但是如果您的列表中实际有一个0,它是最小有效值,那么它将返回空白(而不是0)。。。