1

我在 Excel 中有一系列具有各种正数和负数的单元格。单元格的值由 IF 公式确定,区域中的某些单元格没有值 ("")。

我需要找到最接近 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 (由于非数字而返回错误)

4

4 回答 4

4
=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整个公式......

于 2015-12-01T21:18:08.023 回答
1

如果你有一个上限,比如 10^9,那么你可以做的最小值是多少:

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

如果您发现对最小值做出任何假设有问题,请注意它肯定小于 1 + 最大值的绝对值,因此您可以使用:

{=MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,1+ABS(MAX(D3:D22)))))}
于 2015-12-01T21:18:10.887 回答
0

我发布这个只是因为它在其他用户提出他们的答案之前对我有用。我仍然会接受他们的答案之一,而不是这个。

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

当然,我必须按 Ctrl+ Shift+Enter才能让它工作。

于 2015-12-02T14:54:35.143 回答
0

当值不在连续单元格中时,如何找到最接近零的数字?(即,不在“范围”内)例如a1b5f15包含值-3、4 和-5。该公式应返回值 -3。

https://www.atlaspm.com/toms-tutorials-for-excel/的Tom Ogilvy回答了这个问题:

对于您提出的具体问题,这将返回 -3

=INDEX(CHOOSE({1,2,3},A1,B5,F15),MATCH(MIN(ABS(CHOOSE({1,2,3},A1,B5,F15))),ABS(CHOOSE({1,2,3},A1,B5,F15)),0))

Ctrl+ Shift+输入Enter。您可以调整CHOOSE({1,2,3},A1,B5,F15)(替换C7:C20原始公式中的)以包含更多单元格。例如,如果我想添加Z20并且AA4可以使用CHOOSE({1,2,3,4,5},A1,B5,F15,Z20,AA4). 每个单元格都需要单独列出。所以你不可能有CHOOSE({1,2},A1,B5:B20)

于 2018-05-21T01:39:54.720 回答