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 に答える