ExcelのSIGN関数とは?数値の正・負・ゼロを判定する便利な使い方
Excelでデータを扱っていると、「この数値はプラスか、マイナスか、それともゼロか?」という符号に基づいて処理を分けたい場面がよくあります。例えば、前月比のデータを見て「増加」「減少」「変動なし」と表示したり、収支データから「黒字」「赤字」「収支ゼロ」と判定したりする場合です。多くの方はIF関数をネスト(入れ子に)して対応しているかもしれませんが、数式が長くなりがちです。そんなとき、まるで”判定人”のように数値の符号をシンプルに示してくれるのが、今回紹介するSIGN関数です。この関数自体は非常に地味ですが、他の関数と組み合わせることで、複雑な条件分岐を驚くほどスマートに記述できます。この記事では、SIGN関数の基本的な使い方から、実務で輝く応用テクニックまでを詳しく解説します。
SIGN関数の基本的な使い方
SIGN関数は、引数として指定された数値の符号を判定し、その結果を3種類の数値で返します。ルールは非常にシンプルです。
- 数値がプラス(正の数)の場合 → 1 を返す
- 数値がマイナス(負の数)の場合 → -1 を返す
- 数値がゼロの場合 → 0 を返す
関数の構文も、引数が一つだけの単純なものです。
=SIGN(数値)
引数には、符号を判定したい数値、またはその数値が入力されているセルを指定します。
上の図は、B列の様々な数値に対してSIGN関数を適用した例です。セルC2に以下の数式を入力し、下にコピーしています。
=SIGN(B2)
ご覧の通り、B列の数値がプラスであればC列は「1」、マイナスであれば「-1」、ゼロであれば「0」となっています。このように、SIGN関数はあらゆる数値をたった3種類のフラグに変換してくれる、データ分類のスペシャリストなのです。この特性を活かすことで、次のセクションで紹介するような、より高度な処理へと繋がっていきます。
【本題】SIGN関数の実務での活用テクニック
SIGN関数がその真価を発揮するのは、単体で使うよりも、他の関数と組み合わせたときです。特に、条件分岐を行うIF関数やCHOOSE関数との相性は抜群で、数式を劇的に改善してくれます。
ケース1:データの傾向をフラグ立てする
まずはシンプルな活用例です。売上の前月比や株価の前日比など、増減を示すデータがあったとします。このデータに対して、SIGN関数を使えば「増加(1)」「減少(-1)」「変動なし(0)」という傾向を示すフラグを簡単に追加できます。これは、後のデータ分析やグラフ作成、ピボットテーブルでの集計などを行う際の前処理として非常に有効です。複雑な計算をする前に、SIGN関数でデータをシンプルに分類しておくことで、後の作業が格段に楽になります。
ケース2:IF関数と組み合わせて条件分岐をシンプルにする
例えば、セルA1の数値がプラスなら"OK"、そうでなければ"NG"と表示したい場合、通常は `=IF(A1>0, "OK", "NG")` と書きます。これをSIGN関数を使って書くことも可能です。
=IF(SIGN(A1)=1, "OK", "NG")
この例では文字数が長くなるためメリットは感じにくいかもしれません。しかし、「ゼロの場合も考慮したい」など条件が複雑化した場合に、`SIGN(A1)` という部分が「A1の符号の状態」を明確に示してくれるため、数式の意図が読み取りやすくなるという利点があります。
ケース3:CHOOSE関数と組み合わせて、IF文のネストを解消する
SIGN関数の応用テクニックとして、最も強力で美しいのがCHOOSE関数との組み合わせです。例えば、セルA1の収支データに対して、「黒字」「赤字」「収支ゼロ」と表示させたい場合、多くの人はIF関数をネスト(入れ子)させて、次のように書くでしょう。
=IF(A1>0, "黒字", IF(A1<0, "赤字", "収支ゼロ"))
これでも機能しますが、条件が増えるとIFのネストが深くなり、数式がどんどん複雑になります。ここでSIGN関数とCHOOSE関数を使うと、驚くほどスッキリ書けるのです。
=CHOOSE(SIGN(A1)+2, "赤字", "収支ゼロ", "黒字")
一見、魔法のように見えますが、仕組みは単純です。まず、CHOOSE関数は `CHOOSE(インデックス番号, 値1, 値2, 値3, ...)` という構文で、「インデックス番号」に応じて対応する値を返す関数です。例えば、`=CHOOSE(2, "A", "B", "C")` であれば、2番目の値である "B" が返されます。
ここで重要なのが、インデックス番号として使っている `SIGN(A1)+2` の部分です。
- もしA1がマイナスなら、`SIGN(A1)`は-1。-1+2 = 1 になります。
- もしA1がゼロなら、`SIGN(A1)`は0。0+2 = 2 になります。
- もしA1がプラスなら、`SIGN(A1)`は1。1+2 = 3 になります。
つまり、`SIGN(A1)+2` の結果は必ず1, 2, 3のいずれかになります。この結果をCHOOSE関数のインデックス番号として利用することで、1番目の値「赤字」、2番目の値「収支ゼロ」、3番目の値「黒字」を自由自在に取り出しているのです。このテクニックは、3つ以上の条件分岐(例:「優」「良」「可」「不可」など)にも応用でき、IFのネスト地獄から解放してくれます。
ABS関数との明確な違い
SIGN関数を学ぶ上で、必ずセットで理解しておきたいのがABS関数です。この2つの関数は役割が全く異なりますが、混同されがちなので、ここで明確に区別しておきましょう。
| 関数 | 何を見るか? | -100という数値に対して | 役割の例え |
|---|---|---|---|
| SIGN関数 | 数値の「向き」(符号) | -1 (マイナス方向) | コンパス(方角を示す) |
| ABS関数 | 数値の「大きさ」(絶対値) | 100 (0からの距離) | メジャー(長さを測る) |
例えば、「前月比 -10,000円」というデータがあったとき、SIGN関数を使えば「減少した」という方向性がわかります。一方、ABS関数を使えば「10,000円の差があった」という差の大きさがわかります。分析の目的によって、「向き」と「大きさ」のどちらが知りたいのかを意識して使い分けることが非常に重要です。
まとめ
今回は、数値の符号を判定するSIGN関数について、その基本的な使い方から応用テクニックまでを詳しく解説しました。SIGN関数は、Excelの関数の中でも特にシンプルですが、そのポテンシャルは計り知れません。
単体で使うと「1, -1, 0」を返すだけの地味な関数ですが、IF関数やCHOOSE関数といった論理関数と組み合わせることで、その真価を発揮します。特に、複雑になりがちなIF関数のネストを、CHOOSE関数とSIGN関数で置き換えるテクニックは、あなたのExcelスキルを一段階引き上げてくれるでしょう。数式が短くなるだけでなく、ロジックが明確になり、後から見返したときや他の人が見たときにも、何をしているのかが分かりやすくなります。美しい数式は、それだけで業務の質を高めてくれるのです。
最後に、SIGN関数のポイントをもう一度整理しましょう。
- SIGN関数は、数値の符号に応じて「1(正)」「-1(負)」「0(ゼロ)」を返す。
- 単体で使うよりも、他の関数と組み合わせることで輝く「名脇役」である。
- 特にCHOOSE関数との組み合わせは、IF関数のネストを解消する強力なテクニック。
- 数値の「向き」を調べるのがSIGN関数、「大きさ」を調べるのがABS関数と覚えておく。
データを見て、その数値が持つ「向き」に意味があると感じたら、それはSIGN関数の出番かもしれません。この小さながらもパワフルな関数を、ぜひあなたの道具箱に加えてみてください。

