
データ分析って、なんだか難しそう…

マイナス表示が出ると、途端にワケが分からなくなる…
わかります、その気持ち。毎日数字と「にらめっこ」するのって疲れますよね…。
でも、今回ご紹介するABS関数を知れば、そんな悩みも終わりにできるかもしれません!
- マイナス値を気にせず、データ分析がサクサク進む
- 絶対値を活用して、数値の比較や変動幅の把握が簡単に
- エラーの原因特定にも役立ち、業務効率がアップ
この記事では、ABS関数の基本から、現場で役立つ活用事例まで、初心者の方にも分かりやすく解説します。
さあ、ABS関数を味方につけて、データ分析をもっと楽しんでみませんか?

負の数、もう怖くない!ABS関数でデータ分析をレベルアップ

「なんか難しそう…」ABS関数ってどんな関数?
結論から言うと、ABS関数 = 数値の絶対値を求めるもの ですね。
絶対値って聞くと少し難しく聞こえるかもしれませんが……簡単に言うと「数値からマイナスの符号を取った値」つまり0からの距離のことなんです。
例えば、
「-5」 の絶対値は 「5」
「3」 の絶対値は 「3」
「0」 の絶対値は 「0」
こうなります。…なんとなく、イメージできましたかね?
「いつ使うの?」ABS関数が活躍する場面
では次は、ABS関数がいったいどんな時に役立つのかを紹介していきますね!
距離や差を計算したいとき
例えば、地図上で2つの地点間の距離を計算する時、緯度や経度の差を使うことがありますよね。そんな時、ABS関数が活躍します。
緯度や経度の差って、プラスになったりマイナスになったりするじゃないですか? でも、距離そのものにマイナスはありえませんよね。
そんな時にABS関数で絶対値を求めれば、符号を気にせず距離を計算できるんです。
東京と大阪の緯度・経度を使って、実際に計算してみましょう。
地点 | 緯度(北緯) | 経度(東経) |
---|---|---|
東京 | 35.68 | 139.76 |
大阪 | 34.69 | 135.52 |
・2地点間の距離を知りたい
・距離そのものがマイナスになることはありえない
このポイントを考慮すると、距離の計算式は本来「35.68 – 34.69 = 0.99」のように「大きい数字から小さい数字を引く」という構造にしないといけません。
ですが、ここでABS関数を使用して絶対値を求めることで、計算式の構造を無視して計算することが可能になるんです。
=ABS(34.69-35.68)

=ABS(135.52-139.76)


このように、本来ならマイナス符号がつく計算であっても、符号を無視して数字のみを取得できるのがABS関数ですね!
もうひとつ例を見てみましょう。
例えば、株価の変動幅や気温の変化など、増減の幅だけを知りたい場合にも便利です。
日付 | 株価 |
---|---|
2024/5/1 | 1500 |
2024/5/2 | 1450 |
2024/5/3 | 1520 |
・5月2日の株価変動幅 … ABS(1450 – 1500) = 50円
・5月3日の株価変動幅 … ABS(1520 – 1450) = 70円
こうすれば、株価がどれだけ変動したか、プラスマイナスを気にせずパッと把握できますよね。
データの正負を区別せずに処理したいとき
「事業全体の規模を把握したいから、売上と費用を単純に足し算して分析したい!」そういう場面もありませんか?
費用ってマイナスで入力されていることが多いと思いますが、ABS関数を使えば、費用のマイナス符号をプラスに変換できます。
センサーデータのように「値の大小だけが重要で、正負の符号は特に気にしない」というデータを扱う場合にもABS関数は役立ちますよ。
売上と費用の仮データで見てみましょう。
項目 | 金額 |
---|---|
売上 | 100 |
費用 | -30 |
利益 | 70 |
このデータで売上と費用の絶対値を合計して事業規模を出すには、
=ABS(100) + ABS(-30)
と書きます。

もし、下の画像のようにセル参照したいのであれば

=ABS(B2)+ABS(B3)
という書き方になりますね。
ABS関数を使うメリット
ABS関数を使う主なメリットは、符号の処理を省略し、計算をシンプルにできるという点です。特に正負の符号を気にする必要がない場面では、計算が効率的で視覚的にもわかりやすくなりますね。
さらに、数値の大きさに注目した分析を行いたい場合にも有用です。正負の符号による影響を除外して、純粋にデータの規模感や総量を把握できるようになるため、特定の分析目的に適しています。
ABS関数の基本:書式と引数、今日から使える絶対値計算

「どう書くの?」ABS関数の書式と引数をチェック!
基本の書式はとってもシンプルです。
=ABS(数値)
たったこれだけ。
そして引数は「数値」だけですね。ここには
・整数
・小数
・マイナス値
・セル参照
・数式の結果
などを指定できます。
エクセルが「これは数値だ」と認識できるものなら何でも大丈夫ということです。
なお、引数は絶対に省略できません。「何の絶対値を求めればいいの?」って迷子になっちゃうからですね!
基本操作を解説!ABS関数の使い方
では、どのようにABS関数を使うのか、色々なパターンで紹介しますね。
- ①正の数の絶対値を求めるSQL
=ABS(10)
はい、これはもう簡単すぎますね。結果は「10」 です。
- ②負の数の絶対値を求めるSQL
=ABS(-7)
今度はマイナスの数。結果は… 「7」 です! 負の数 -7 の絶対値は 7 になります。マイナス符号がちゃんと取れてますね。
- ③セル参照を使って絶対値を求める
例えば、セル A1 に「-25」と入力されているとします。 別のセルに
SQL=ABS(A1)
と入力すると、そのセルには「25」が表示されます。 セル A1 の -25 の絶対値が計算された、というわけですね。
- ④数式の結果の絶対値を求めるSQL
=ABS(5 - 12)
この場合は、まず 5 – 12 が計算されて、結果は「-7」になります。その後、ABS関数が -7 の絶対値を計算するので、最終的な結果は「7」になります。
- ⑤時間差の絶対値を求める
例えば、作業の開始予定時刻が「9:00」実際の開始時刻が「9:15」だったとしましょう。 時間差の絶対値を求めるには、
SQL=ABS("9:15"-"9:00")
か、
SQL=ABS("9:00"-"9:15")
と入力します。
結果が同じなのは、あくまでも絶対値を求める関数なので、順番は関係ないということですね。
ちなみに、セルの表示形式を「時刻」に設定しないとシリアル値表示されるのでご注意を。
ABS関数を応用!データ分析がもっと便利になるテクニック

IF関数をもっとスマートに!絶対値比較で条件分岐
ABS関数とIF関数と組み合わせ、なかなか便利なので紹介しますね!特に、条件分岐をシンプルにしたい時に役立ちます。
例:2つの数値の差が一定値以下かどうかを判定する
セルA1とセルB1に数値が入っていて、この2つの数値の差が「5」以下かどうかを判定したいとします。
普通にIF関数を使うと、こんな感じになりがちかと↓
=IF(A1-B1<=5,TRUE,FALSE)
これで計算すると、ややこしいことになるんですよねぇ…↓

この画像の複数の例を見るとわかるのは、「たとえ結果の数字そのものが5より大きくても、マイナス符号であれば、数直線上で5という値より小さいと判定されてTRUEになる」という事実です。


求めているのは「2つの数値の差」であり、その差が「5以下かどうか」が判断基準なので、5行目にある「5」と「20」の数値の開きである「15」はFALSE判定されないといけませんよね?
このように判定されてしまうのは「マイナス符号」が原因です。
【本来求めている内容】
計算した結果が「0」~「5」の範囲に収まるかどうか
【先ほど使用した関数の結果】
計算した結果が「0以下のマイナス」に対し、制限がない
小難しく言いましたが、つまり「マイナスが邪魔だよね」ってことですw
これを強引にIF関数だけで条件を満たそうとすると
=IF(A1-B1<=5,IF(A1-B1>=-5,TRUE,FALSE),FALSE)
このような長ったらしい数式になってしまいますが、

↑いちおうこのように正確に判定できるようになります。
でも、ABS関数を使うだけで、もっとシンプルにできるんです。
=IF(ABS(A1-B1)<=5,TRUE,FALSE)

ABS(A1-B1)で「A1」と「B1」の差の絶対値を求めて、それが「5以下かどうか」を判定する。これなら、差がプラスでもマイナスでも、ちゃんと判定できますよね。

蛇足ですが…関数とかVBAコードって可能な限り短くシンプルにすることを心がけるのが吉です。ムダに長いと、機能を果たしたとしても、メンテナンスが大変なので!
「もっと知りたい!」さらに便利な組み合わせ例
ROUND関数(四捨五入)と組み合わせて、絶対値を四捨五入する
=ROUND(ABS(A1), 0)
この数式では、セルA1の数値の絶対値を求めて、小数点以下を四捨五入して整数にできます。
例えば、セルA1に「-3.7」が入っている場合、
- ABS(A1) は ABS(-3.7) = 3.7
- ROUND(3.7, 0) は 4 (3.7 を小数点以下 0 桁で四捨五入)
となり、結果は「4」になります。

MAX関数(最大値)やMIN関数(最小値)と組み合わせて、絶対値が最大/最小の値を求める
=MAX(ABS(A1), ABS(B1), ABS(C1))
これは、セルA1, B1, C1に入っている数値の絶対値の中で、一番大きい値を求める式です。
例えば、セルA1に「-10」、セルB1に「5」、セルC1に「-3」が入っている場合、
- ABS(A1) は ABS(-10) = 10
- ABS(B1) は ABS(5) = 5
- ABS(C1) は ABS(-3) = 3
- MAX(10, 5, 3) は 10 (10, 5, 3 の中で一番大きい値)
となり、結果は「10」になります。

SUM関数(合計)と組み合わせて、絶対値の合計を求める
=SUM(ABS(A1:A3))
この数式は、セルA1からA3までの範囲の数値の絶対値を全部足し合わせます。
例えば、セルA1からA3にそれぞれ「-2」「4」「-6」が入っている場合、
- ABS(A1:A3) は、それぞれのセルの絶対値を計算して、{2, 4, 6} というグループを作ります。(実際には配列として表示されるわけではありません。イメージとして捉えてください)
- SUM({2, 4, 6}) は 2 + 4 + 6 = 12
となり、結果は「12」になります。

さらに便利に!知っておくと得するABS関数の秘技
複数の値の絶対値をまとめて表示する神機能「スピル」様

入力済のデータの絶対値を表示したい。でも大量すぎてコピペするのも大変だしな…
大丈夫です。ABS関数+スピル機能で、一瞬で解決できますよ!
例えば、A列に値が入っているとして、隣接するB列にそれぞれの絶対値を表示したいとします。

やることは超シンプル!B1セルに以下を入力してやりましょう!!
=ABS(A1:A30)
問題なくスピル機能が働いてくれれば、以下の画像のように青枠で表示され、複数範囲をまとめて絶対値で表示できます。

今回は「A1:A30」と範囲を指定しましたが、「A:A」のように列ごと指定することもできますよ!

ただし、数万行など情報量が多い場合は処理に時間がかかるため、必要な範囲だけ指定するのをおススメします。多すぎるとフリーズすることもあるので…
スピル機能がない古いバージョンのExcelを使用している場合は、配列数式を使う必要があります。その際は、Ctrl + Shift + Enter を押して確定しましょう。
もうエラーで悩まない!ABS関数の注意点

「なんでエラーに?」ABS関数のつまづきを解消
ABS関数はすごくシンプルな関数です。
普通に使っている分にはエラーになることはほとんどありませんが、以下の状況ではエラーになりますのでご注意ください。
引数に数値以外を指定した場合
ABS関数は数値専用の関数なので、文字列とか日付みたいに「数値として認識できないもの」を引数に指定すると、エクセルがうまく判断できずエラーになります。

引数には、必ず数値を指定しましょう。セル参照を使う場合は、参照先のセルにちゃんと数値が入っているか、確認することが大切です。
計算結果が大きすぎる/小さすぎる場合
ABS関数自体は、計算結果がオーバーフロー (数値が大きすぎて扱いきれない) とか、アンダーフロー (数値が小さすぎて 0 に近いとみなされる) を起こすことはありません。
でも、ABS関数と他の関数を組み合わせて使う場合、計算結果がエクセルで扱える数値の範囲を超えてしまう可能性もごく稀にあります。
エクセルの仕様上の制限を確認して、計算式を見直しましょう。(ただ、普通のABS関数の使い方で、この問題にぶつかることはまずないと思います。)
使う前に確認!ABS関数を使う上での注意点
「ABS関数は符号を取り除く」
これはもう何度も言ってますが、ABS関数は絶対値を求める関数です。つまり、元の数値の符号の情報は、ABS関数を使うと消えちゃうわけですね。
もし、後で符号の情報が必要になるかもしれない場合は、ABS関数を使う前に元の数値を別の場所にコピーしておくとか、工夫が必要になります。
まとめ

この記事では、ABS関数について、その基本的な使い方やシーンごとの応用まで幅広く解説しました。
ABS関数は、数値の絶対値を求めるシンプルな関数ですが、使いこなすことでデータ分析の効率と精度を格段に向上させることができます。
改めて、この記事のポイントを振り返ってみましょう。
- ABS関数は数値の絶対値を返す関数
- 距離や差の計算、データの正負を区別しない処理に役立つ
- IF関数やROUND関数など、他の関数と組み合わせてさらに便利に
ABS関数をマスターすれば、マイナス値に悩むことなく、データの本質を捉えた分析が可能になります。日々の業務で数値を扱うすべての方にとって、ABS関数は強力な武器となるはず。
ぜひこの記事を参考に、ABS関数を実際に使ってみて、データ分析の新たな可能性を切り開いてください!

最後までお読みいただき、ありがとうございました!

