Excelで数値の差を計算したとき、結果がマイナスになって困った経験はありませんか?
たとえば売上目標と実績の差を出したら「-15,000」と表示されて、報告書にはちょっと載せにくい。かといって手作業でひとつずつマイナスを消すのは面倒ですよね。
そんなときに使えるのが ABS関数 です。たった1つの数式で、マイナスの符号を取り除いて絶対値に変換できます。この記事では、ABS関数の基本から、IF関数や条件付き書式との組み合わせなど実務で役立つ活用法まで、わかりやすく解説していきます。
ABS関数とは?(絶対値を求めるExcel関数)
ABS関数は、数値の 絶対値 を返すExcelの関数です。
マイナスの数はプラスに変換し、プラスの数はそのまま返します。Excel 2010以降のすべてのバージョンとMicrosoft 365で使用できます。Googleスプレッドシートでも同じ書き方で使えますよ。
読み方と語源
ABS関数の読み方は「えーびーえす」関数です。
英語の「Absolute(アブソリュート)」の略で、日本語では「絶対の」という意味があります。「絶対値(Absolute Value)」を求める関数なので、その頭文字を取ってABSという名前になっています。
絶対値とは
絶対値とは、数直線上で 0からの距離 を表す値のことです。簡単に言うと、プラス・マイナスの符号を取り除いた「純粋な数の大きさ」ですね。
具体的に見てみましょう。
| 元の値 | 絶対値 | 説明 |
|---|---|---|
| -50 | 50 | マイナスが取れる |
| 50 | 50 | プラスはそのまま |
| -3.14 | 3.14 | 小数でもOK |
| 0 | 0 | 0の絶対値は0 |
マイナスの数はプラスに、プラスの数はそのまま返ってくる。これが絶対値の基本ルールです。
ABS関数の書き方(構文と引数)
基本構文
ABS関数の構文はとてもシンプルです。
=ABS(数値)
引数はたった 1つ だけ。Excel関数の中でもトップクラスにシンプルな関数ですね。
引数の説明
ABS関数の引数について整理しておきましょう。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | 絶対値を求めたい数値またはセル参照 |
「数値」には、直接数値を入力することもできますし、セル参照を指定することもできます。
=ABS(-100) → 結果: 100(直接数値を指定)
=ABS(A1) → A1の値の絶対値(セル参照を指定)
数式の結果を引数に指定することもできます。たとえば =ABS(A1-B1) のように、計算式をそのまま入れてもOKです。
ABS関数の使い方(基本から実践まで)
ここからは、実際にABS関数を使ってみましょう。基本的な使い方から実務で役立つパターンまで順番に紹介します。
数値の絶対値を求める
もっとも基本的な使い方は、数値を直接指定するパターンです。
=ABS(-93)
この数式を入力すると、結果は 93 になります。マイナスの符号が取り除かれて、純粋な数値だけが返ってきますね。
プラスの数値を入れた場合はどうでしょうか?
=ABS(93)
結果はそのまま 93 です。プラスの値はそのまま返ってくるので、安心して使えます。
セル参照で絶対値を求める
実務では、セルに入力された値の絶対値を求めることが多いですよね。
たとえばA1セルに「-250」が入っている場合、次のように書きます。
=ABS(A1)
結果は 250 になります。セル参照を使えば、元のデータを変更するだけで結果も自動的に更新されるので便利です。
計算式の結果の絶対値を求める
2つのセルの差を絶対値で求めることもできます。
=ABS(A1-B1)
A1が100、B1が150の場合、A1-B1 は -50 になりますが、ABS関数で囲むと 50 が返ります。引き算の順番を気にしなくていいのが便利なポイントです。
売上目標との差分を計算する
支店ごとの売上目標と実績の差を表示するケースを考えてみてください。
| A列(目標) | B列(実績) | C列(差分) | |
|---|---|---|---|
| 1行目 | 500,000 | 480,000 | =ABS(A1-B1) → 20,000 |
| 2行目 | 300,000 | 350,000 | =ABS(A2-B2) → 50,000 |
| 3行目 | 400,000 | 390,000 | =ABS(A3-B3) → 10,000 |
=ABS(A1-B1)
この数式なら、目標より実績が上回っていても下回っていても、差分が 必ずプラスの値 で表示されます。報告書やグラフを作るときに、マイナスが混在しなくなるのでとても見やすくなりますよ。
在庫の理論値と実数の差異を計算する
棚卸しのときに、システム上の在庫数と実際にカウントした数が合わないことってありますよね。ABS関数を使えば、差異の大きさをひと目で把握できます。
| A列(理論在庫) | B列(実棚数) | C列(差異) | |
|---|---|---|---|
| 1行目 | 120 | 115 | =ABS(A1-B1) → 5 |
| 2行目 | 80 | 83 | =ABS(A2-B2) → 3 |
| 3行目 | 200 | 185 | =ABS(A3-B3) → 15 |
=ABS(A1-B1)
差異がプラス方向でもマイナス方向でも、「どれだけズレているか」の大きさだけがわかります。あとはIF関数と組み合わせて「差異が10個以上なら要確認」といった判定を加えれば、棚卸し結果のチェック作業がかなり楽になりますよ。
IF関数と組み合わせて判定する
ABS関数とIF関数を組み合わせると、「差が一定以上なら警告を出す」といった条件判定ができます。
たとえば、予算と実績の差が50,000円を超えたら「要確認」と表示する数式はこうなります。
=IF(ABS(A1-B1)>50000, "要確認", "OK")
ABS関数で差分の絶対値を取っているので、予算オーバーでも予算未達でも、50,000円を超える差があれば「要確認」と判定されます。条件判定のときにプラス・マイナスを気にしなくていいのがポイントです。
さらに差の大きさで3段階に分けたい場合は、IFS関数やIF関数のネストと組み合わせます。
=IFS(ABS(A1-B1)>100000, "要対策", ABS(A1-B1)>50000, "要確認", TRUE, "OK")
IF関数の詳しい使い方は「ExcelのIF関数の使い方|基本から複数条件まで実例で解説」で解説しています。
条件付き書式で差分をハイライトする
ABS関数は条件付き書式とも相性が良いです。差分が大きいセルを自動でハイライトできます。
設定手順は次のとおりです。
- 差分を表示するセル範囲を選択する
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択
- 「数式を使用して、書式設定するセルを決定」を選ぶ
- 数式欄に次のように入力する
=ABS(A1-B1)>50000
この設定で、差分の絶対値が50,000を超えるセルが自動的に色付けされます。報告書の見栄えがぐっと良くなりますよ。
IFERROR関数でエラーに備える
ABS関数に文字列が渡されると #VALUE! エラーになります。データの中に文字列が混ざっている可能性がある場合は、IFERROR関数と組み合わせておくと安心です。
=IFERROR(ABS(A1), "")
この数式なら、A1が数値のときは絶対値を返し、文字列などでエラーになったときは空白を返します。大量のデータを処理するときに、エラーで表が崩れるのを防げますね。
IFERROR関数の使い方は「ExcelのIFERROR関数の使い方|エラー処理の基本と実践例」で詳しく解説しています。
SUMPRODUCT関数と組み合わせて絶対値の合計を求める
複数の差分をまとめて合計したいとき、SUM関数だけではプラスとマイナスが相殺されてしまいます。SUMPRODUCT関数とABS関数を組み合わせれば、絶対値の合計を一発で求められます。
=SUMPRODUCT(ABS(A1:A10-B1:B10))
この数式はA1からA10とB1からB10のそれぞれの差の絶対値を合計します。ただし、この数式はMicrosoft 365やExcel 2021以降で対応しています。それ以前のバージョンでは、Ctrl+Shift+Enter で配列数式として入力する必要があります。
SUMPRODUCT関数の詳しい使い方は「ExcelのSUMPRODUCT関数の使い方|掛け算の合計を求める方法」を参考にしてください。
ABS関数でよくあるエラーと対処法
ABS関数はシンプルな関数ですが、いくつかエラーが出るパターンがあります。事前に知っておけば、慌てずに対処できますよ。
#VALUE! エラー
ABS関数に 文字列 を渡すと #VALUE! エラーが発生します。
=ABS("abc") → #VALUE! エラー
=ABS(A1) → A1に文字列が入っている場合、#VALUE! エラー
対処法: 引数が数値であることを確認しましょう。データの中に文字列が混ざっていないかチェックするか、前述のIFERROR関数で囲んでエラーを回避してください。
セルの値が数値かどうかをチェックするには、ISNUMBER関数を使う方法もあります。
=IF(ISNUMBER(A1), ABS(A1), "数値ではありません")
#NAME? エラー
関数名のスペルミスで #NAME? エラーが出ることがあります。
=ABS(-10) → 正しい
=AB(-10) → #NAME? エラー(Sが抜けている)
=ABSS(-10) → #NAME? エラー(Sが多い)
対処法: 関数名が「ABS」の3文字になっているか確認しましょう。Excelの数式オートコンプリート機能を使えば、入力ミスを防げます。=AB まで入力した時点で候補が表示されるので、そこから選択するのがおすすめです。
空白セルを参照した場合
ABS関数で空白セルを参照した場合は、エラーにはならず 0 が返ります。空白セルはExcel内部で0として扱われるためです。
=ABS(A1) → A1が空白の場合、結果は 0
意図しない0が表示される場合は、IF関数で空白チェックを追加しておきましょう。
=IF(A1="", "", ABS(A1))
ABS関数と似た関数の違い・使い分け
ABS関数に関連する関数をまとめておきます。用途に応じて使い分けてみてください。
| 関数 | 用途 | 使用例 | 結果 |
|---|---|---|---|
| ABS | 絶対値を求める | =ABS(-10) | 10 |
| SIGN | 符号を判定する(1, 0, -1) | =SIGN(-10) | -1 |
| INT | 小数点以下を切り捨てる | =INT(3.7) | 3 |
| ROUND | 指定桁数で四捨五入する | =ROUND(3.14, 1) | 3.1 |
ABS関数は「符号を取り除く」専門の関数です。SIGN関数は逆に「符号だけを取り出す」関数なので、セットで覚えておくと便利ですよ。
「絶対値を取ってから四捨五入したい」というケースもよくあります。そんなときは =ROUND(ABS(A1), 0) のように、ABS関数とROUND関数を組み合わせて使いましょう。
ROUND関数の使い方は「【Excel】ROUND関数の使い方|桁数指定から丸め6種の使い分けまで解説」で詳しく解説しています。
ちなみに、ABS関数とSIGN関数を使えば、元の数値を復元できます。
=ABS(A1) * SIGN(A1) → A1の値がそのまま返る
この性質を利用して、「絶対値は変えずに符号だけ操作する」といった計算にも応用できます。
SIGN関数について詳しくは「ExcelのSIGN関数の使い方|数値の符号判定を基本から実践例まで解説」で解説しています。
集計作業でSUM関数を使っている方は「SUM関数とは?使い方・エラー対処・応用を初心者向けに解説」もあわせてチェックしてみてください。
よくある質問
ABS関数を使わずに絶対値を求める方法はある?
はい、数式だけでも絶対値を求められます。=IF(A1<0, -A1, A1) のようにIF関数でマイナスのときだけ符号を反転する方法です。ただし、ABS関数を使ったほうが数式が短くて読みやすいので、基本的にはABS関数を使うのがおすすめです。
ABS関数で日付の差は計算できる?
ABS関数の引数に日付の引き算を入れれば、日数の差を絶対値で求められます。たとえば =ABS(A1-B1) でA1とB1にそれぞれ日付が入っていれば、どちらが先でも日数の差がプラスで返ります。
ただし、日付の差を計算する場面ではDATEDIF関数やDAYS関数を使うほうが意図が明確になります。用途に応じて使い分けてみてください。
複数セルの絶対値を一括で求めるには?
B列にA列の絶対値をまとめて出したい場合は、=ABS(A1) と入力してからセルの右下のフィルハンドルを下にドラッグしてコピーしましょう。Microsoft 365やExcel 2021以降であれば、スピル機能を使って =ABS(A1:A10) と範囲指定することで一括取得も可能です。
まとめ
この記事では、ExcelのABS関数について基本から実践的な活用法まで解説しました。
ABS関数のポイントをおさらいしておきましょう。
- ABS関数は 数値の絶対値(マイナスを取り除いた値)を返す関数
- 構文は
=ABS(数値)で、引数は1つだけのシンプルな関数 - 売上差分の計算、在庫差異の分析、IF関数との組み合わせなど 実務での活用シーンが豊富
- 条件付き書式やSUMPRODUCT関数との連携で、さらに実践的に使える
- 文字列を渡すと
#VALUE!エラーになるので、IFERROR関数との併用がおすすめ
ABS関数はシンプルですが、他の関数や機能と組み合わせることで活躍の幅が大きく広がります。まずは売上データや在庫データの差分計算から試してみてください。
