ABS関数の使い方|絶対値を求めて差の大きさを比べる方法

予算と実績の差額は、上振れならプラス、下振れならマイナスになります。「上か下かは問わず、ずれの大きさだけを見たい」ときに使うのがABS関数です。結論から言うと、ABS関数は=ABS(数値)で、数値の絶対値(符号を取り除いた値)を返します。-20,000なら20,000、30,000ならそのまま30,000です。

目次

ABS関数の基本構文

=ABS(数値)

数値には、セル参照やC2-B2のような計算式を指定できます。マイナスの値はプラスに、プラスの値と0はそのまま返ります。

ABS関数で予算と実績の差の大きさを求める例

次のような予算実績の表(A1:C4)で考えます。

A(月) B(予算) C(実績)
2 4月 500,000 480,000
3 5月 500,000 530,000
4 6月 500,000 495,000

A列=月、B列=予算、C列=実績という対応で、2行目の数式と、下にコピーした結果は次のとおりです。

求めたいもの 数式(2行目) 4月 5月 6月
差額 =C2-B2 -20,000 30,000 -5,000
差額の絶対値 =ABS(C2-B2) 20,000 30,000 5,000
ずれが1万円以上なら表示 =IF(ABS(C2-B2)>=10000,"要確認","") 要確認 要確認 (空白)

ABSを使わずにC2-B2>=10000と書くと、下振れの4月(-20,000)が拾えません。上下どちらのずれもまとめてチェックしたいときにABSが役立ちます。IF関数の書き方はIF関数の基本的な使い方|条件で処理を分ける書き方を参照してください。

3か月分のずれの大きさを合計したい場合は、=SUMPRODUCT(ABS(C2:C4-B2:B4))で55,000になります(20,000+30,000+5,000)。

ABS関数で前期がマイナスのときの増減率を求める

増減率は通常=(当期-前期)/前期で求めますが、前期がマイナス(赤字)だと符号が逆になってしまいます。たとえば前期の利益が-200,000、当期が100,000の場合、改善しているのに(100000-(-200000))/(-200000)は-150%です。分母をABSで絶対値にすると次のように150%となり、改善したことが正しく表れます。

=(当期-前期)/ABS(前期)

ただし、前期がマイナスのときの増減率は、そもそも表示せず「黒字転換」などと文字で書く会社もあります。社内のルールに合わせてください。また前期が0だと#DIV/0!になるので、#DIV/0!エラーを回避する方法の方法で回避しておきます。

ABS関数のよくある注意点

  • 符号を無視してよい計算かを必ず確認する: 絶対値にすると「増えたのか減ったのか」の情報が消えます。差額そのものの列は残しておき、判定用の列でだけABSを使うのが安全です。
  • 平方根のエラー回避に使うときも同じ: マイナスの平方根で#NUM!が出るときに=SQRT(ABS(…))とする方法がありますが、符号を無視してよいかは計算の意味次第です(#NUM!エラーの原因と対処法参照)。
  • 文字列は計算できない: 数字に見えても文字列が入っていると#VALUE!になります(#VALUE!エラーの原因と直し方参照)。

ABS関数が登場する記事

ABS関数の使い方まとめ

ABS関数は=ABS(数値)で絶対値を返し、予算と実績のずれのチェックや、前期がマイナスのときの増減率の計算に使えます。符号の情報が消えることだけは意識しておきましょう。条件付きの集計については、サイトの人気記事エクセルのsumifs関数でOR条件の集計をする方法やエクセル関数で条件付きで中央値(MEDIAN)を計算する方法もあわせて参考にしてください。

目次