プロが教える店舗&オフィスのセキュリティ対策術

Excelで一番ゼロに近い値(正負)を求めるにはどうしたらよいでしょうか?

希望は、条件書式で設定したいのです。
もし駄目なら列を挿入して計算式用の列を作っての方法をご教授ください。

例えば、

A1  0


A5  0.5
A6  -0.3
A7  0.1
A8    (空白)
A9  -0.12

セルA5からA9の間で一番ゼロに近い値を求めたいです。
その時にセルA8の空白は考えないようにしたいです。

条件書式か計算式でできるでしょうか?
どうぞよろしくお願いいたします。

A 回答 (6件)

配列数式にせざるをえないのかな


=MIN(IF((A2:A10<>"")*(A2:A10<>0),ABS(A2:A10),99999))
99999は、A2:A10で5桁の数字以下しかない場合の式。
例データ
0

5
0.3
0.11
1

21
-1
  で
結果
0.11
===
それとか、ユーザー関数を定義するとか。5桁以内の数で空白と0は対象外。
標準モジュールに
Function sabs(a)
x = 99999
For Each cl In a
If cl <> "" And cl <> 0 Then
If Abs(cl) < x Then x = Abs(cl)
End If
Next
sabs = x
End Function
ーー
シートで=Sabs(A1:A10)と入れる
結果
0.11
    • good
    • 0

条件付き書式で一概にとはできませんが作業列を使うことでもなく、一つのセルに次の式を入力して、式を確定する段階でCtrl+Shift+Enterキーで確定すればよいでしょう。



=IF(COUNTIF(A5:A9,SMALL(ABS(A5:A9),COUNTIF(A5:A9,0)+COUNTIF(A5:A9,"")+1)),SMALL(ABS(A5:A9),COUNTIF(A5:A9,0)+COUNTIF(A5:A9,"")+1),-SMALL(ABS(A5:A9),COUNTIF(A5:A9,0)+COUNTIF(A5:A9,"")+1))

上の式ではこれまでの回答には無い一番ゼロに近い値が負の数値の場合でも対応できるようになっています。

ところで上の式をC1セルに入力してお望みの数値を表示させている場合に条件付き書式でお望みの数値のセルを色で塗りつぶすとしたらA5セルからA9セルまでを範囲として選択したのちに「条件付き書式」で数式の窓には次の式を入力し、「書式」で「塗りつぶし」のタブから色を選択すればよいでしょう。

=A5=C$1
    • good
    • 2

範囲がそれほど広くないことを条件に


A5:A9セル範囲をA5セルから選択し、条件付き書式
数式が=MIN(IF($A$5:$A$9<>"",ABS($A$5:$A$9)))=ABS(A5)

範囲が広い場合は どこかのセル(例A1セル)に
=MIN(IF($A$5:$A$999<>"",ABS($A$5:$A$999)))
[Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる)
A5:A999セル範囲をA5セルから選択し、条件付き書式
数式が=$A$1=ABS(A5)
「Excelで一番ゼロに近い値を求めるには」の回答画像4
    • good
    • 0

{=MIN(IF(A5:A9="","",ABS(A5:A9)))} ← 配列数式

    • good
    • 2

こんばんは!


一例です。
B列を作業用の列として使用します。

データはA列の5行目~9行目にあるとして・・・
B5セルに
=IF(A5="","",ABS(0-A5))
という数式を入れオートフィルでA9までコピー!

表示したいセルに
=INDEX(A5:A9,MATCH(MIN(B5:B9),B5:B9,0))
(エラー処理はしていません)
としてみてはどうでしょうか?

尚、「0」に一番近い値が複数ある場合は一番上の行のデータが表示されます。

参考になれば良いのですが・・・m(_ _)m
    • good
    • 0

最初に 正負それぞれに分けます


正の数の最小値をもとめます
負の数の最大値を求めます
正+負 = 答えが正なら負が0に近いと判定できます。

0の判定はどうなるんだろ、と疑問があるのでそこはがんばってください。

MAX MIN IF でできます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A