在Excel的值范围内find最接近0的值(使用非数字字段)

我有一系列的Excel中的单元格与各种正面和负面的数字。 单元格的值由一个IF公式确定,并且该范围内的一些单元格没有值(“”)。

我需要find最接近的单元格的绝对值为0.所以,如果我有一个列表-10,-5,-1,3,6,和“”:我需要得到1的结果。

我尝试了多种方法,但事实是,我有非数字单元格似乎是导致错误的问题。

我试过了:

{=Min(ABS(A1:D10))} ,我按下Ctrl-Shift-Enter(由于非数字而返回一个错误)

{=IF(MAX(D3:D22)<=0,-1,IF(MIN(ABS(D3:D22))=MIN(ABS(IF(D3:D22>0,D3:D22,MAX(D3:D22)))),1,-1))*MIN(ABS(D3:D22))} ,我按Ctrl-Shift-Enter(由于非数字返回一个错误)

{=IF(OR((D3:D22)>0),MIN(ABS(D3:D22)),-MIN(ABS(D3:D22)))} ,其中我按Ctrl-Shift-Enter(返回一个错误因为非数字)

 =MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,9999))) 

这是一个数组公式,并且必须用Ctrl + Shift + Enter确认

应该做的伎俩

或更好地使用:

 =INDEX(D3:D22,MATCH(MIN(IF(ISNUMBER(D3:D22),ABS(D3:D22))),ABS(D3:D22),0)) 

这是一个数组公式,并且必须用Ctrl + Shift + Enter确认

不关心文本或空单元格,但有0作为数字将计数…负数也将是负面的(如果你总是需要积极的你需要ABS整个公式…

如果你有一个上限,比如说10 ^ 9,你可以做什么:

 {=MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,10^9)))} 

如果您发现有什么问题可以假设min是什么,请注意,它肯定小于1 +最大值的绝对值,所以您可以使用:

 {=MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,1+ABS(MAX(D3:D22)))))} 

我发布这只是因为它为我工作之前,其他用户进来的答案。 我仍然会接受他们的答案,而不是这个。

 =MIN(IF(D3:D22>0,D3:D22,ABS(D3:D22))) 

当然,我不得不按Ctrl + Shift + Enter来获得这个工作。