Excelで数値がプラスなのかマイナスなのか、一つひとつ目で確認していませんか?
データが数十行ならまだしも、数百行を超えると見落としが出てきますよね。計算結果の正負によって処理を分けたい場面でも、いちいちIF関数で条件を書くのは手間がかかります。
そんなときに便利なのが SIGN関数 です。数値の符号を 1・0・-1 の3パターンで返してくれるので、正負の判定がとてもシンプルになります。この記事では、SIGN関数の基本から実務で使える活用パターンまで解説していきます。
SIGN関数とは?(数値の符号を判定するExcel関数)
SIGN関数は、指定した数値が 正の数・ゼロ・負の数 のどれかを判定するExcelの関数です。
Excel 2010以降のすべてのバージョンとMicrosoft 365で使用できます。Googleスプレッドシートでも同じ書き方で使えますよ。
読み方と語源
SIGN関数の読み方は「サイン」関数です。
英語の「Sign」には「符号・記号」という意味があります。数値の符号(プラスかマイナスか)を返す関数なので、そのまま関数名になっています。
戻り値のパターン
SIGN関数の戻り値は 3種類 だけです。
| 数値の種類 | 戻り値 | 具体例 |
|---|---|---|
| 正の数(0より大きい) | 1 | =SIGN(100) → 1 |
| ゼロ | 0 | =SIGN(0) → 0 |
| 負の数(0より小さい) | -1 | =SIGN(-50) → -1 |
「1・0・-1」という整数で返してくれるので、後続の計算や条件分岐にそのまま使えるのがポイントです。
SIGN関数の書き方(構文と引数)
基本構文
SIGN関数の構文はとてもシンプルです。
=SIGN(数値)
引数はたった 1つ だけ。Excel関数の中でもトップクラスにシンプルな関数ですね。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | 符号を判定したい数値またはセル参照 |
「数値」には直接数値を入力することもできますし、セル参照を指定することもできます。計算式を入れることも可能です。
=SIGN(-100) → 結果: -1(直接数値を指定)
=SIGN(A1) → A1の値の符号を判定
=SIGN(A1-B1) → 計算結果の符号を判定
SIGN関数の基本的な使い方
ここからは、実際にSIGN関数を使ってみましょう。
数値の符号を判定する
もっとも基本的な使い方は、数値を直接指定するパターンです。
=SIGN(250)
この数式を入力すると、結果は 1 になります。正の数なので「1」が返ってきますね。
マイナスの数値ではどうなるでしょうか?
=SIGN(-250)
結果は -1 です。負の数であることがひと目でわかります。
セル参照で符号を判定する
実務では、セルに入力された値の符号を調べることが多いですよね。
たとえばA1セルに「-3500」が入っている場合、次のように書きます。
=SIGN(A1)
結果は -1 になります。セル参照を使えば、元のデータを変更するだけで判定結果も自動更新されます。
計算結果の符号を判定する
SIGN関数には計算式を直接入れることもできます。
たとえば売上目標と実績の差がプラスかマイナスかを調べたいときは、次のように書きます。
=SIGN(B1-A1)
B1(実績)からA1(目標)を引いた結果が正なら「1」(目標達成)、負なら「-1」(未達)と判定されます。
SIGN関数の実践的な活用例
基本がわかったところで、実務でよく使うパターンを見ていきましょう。
IF関数と組み合わせて3分岐する
SIGN関数とIF関数を組み合わせると、正・ゼロ・負の 3パターン で表示を切り替えられます。
たとえば前月比の増減を「増加」「変動なし」「減少」と表示する数式はこうなります。
=IF(SIGN(B1-A1)=1, "増加", IF(SIGN(B1-A1)=-1, "減少", "変動なし"))
SIGN関数が「1・0・-1」を返すので、IF関数の条件がシンプルに書けます。
TIP
Excel 2019以降であれば、IFS関数やSWITCH関数を使うともっとスッキリ書けます。
“`
=SWITCH(SIGN(B1-A1), 1, “増加”, -1, “減少”, 0, “変動なし”)
“`
IF関数の詳しい使い方は「ExcelのIF関数の使い方|基本から複数条件まで実例で解説」で解説しています。
ABS関数と組み合わせて符号と絶対値を分離する
SIGN関数とABS関数を組み合わせると、数値を 符号 と 絶対値 に分解できます。
=SIGN(A1) → 符号(1, 0, -1)
=ABS(A1) → 絶対値
=SIGN(A1) * ABS(A1) → 元の値に戻る
この性質を使えば、符号はそのままで絶対値だけを加工するといった処理が可能です。
たとえば「マイナスはそのままで、金額を千円単位に丸めたい」というケースではこう書きます。
=SIGN(A1) * ROUNDDOWN(ABS(A1), -3)
ABS関数の使い方は「ExcelのABS関数の使い方|絶対値の基本と実践例を解説」で詳しく解説しています。
条件付き書式でプラス・マイナスを色分けする
SIGN関数を条件付き書式の数式で使うと、データの正負を視覚的に区別できます。
設定手順は次のとおりです。
- 色分けしたいセル範囲を選択する
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択
- 「数式を使用して、書式設定するセルを決定」を選ぶ
- 次の数式を入力する
プラスの値を 緑色 にしたい場合:
=SIGN(A1)=1
マイナスの値を 赤色 にしたい場合:
=SIGN(A1)=-1
これで、数値が正ならセルが緑、負なら赤に色付けされます。損益データや前年比の一覧表で、ひと目で状況がわかるようになりますよ。
在庫増減の方向を判定する
在庫データで「入庫」か「出庫」かを自動判定するパターンです。
| A列(増減数) | B列(判定) | |
|---|---|---|
| 1行目 | 50 | =IF(SIGN(A1)=1, “入庫”, “出庫”) |
| 2行目 | -30 | =IF(SIGN(A2)=1, “入庫”, “出庫”) |
| 3行目 | 0 | =IF(SIGN(A3)=1, “入庫”, “出庫”) |
増減数がプラスなら「入庫」、それ以外なら「出庫」と表示されます。ゼロのケースも分けたい場合は、先ほどの3分岐パターンを使ってください。
SUMPRODUCT + SIGN でプラス合計・マイナス合計を分けて集計する
入出庫や収支のように、プラスの値とマイナスの値が同じ列に混在しているデータはよくありますよね。
このとき「プラスの値だけの合計」と「マイナスの値だけの合計」を分けて出したいことがあります。SIGN関数とSUMPRODUCT関数を組み合わせると、補助列を作らずに一発で集計できますよ。
A2:A20に増減数が入っているとして、まずプラスの値だけを合計する数式はこうなります。
=SUMPRODUCT((SIGN(A2:A20)=1)*A2:A20)
SIGN(A2:A20)=1 の部分が、プラスの値だけを TRUE(=1)、それ以外を FALSE(=0)として返します。それをA列の値に掛けるので、マイナスやゼロの行は0になり、プラスの値だけが合計されるという仕組みです。
次に、マイナスの値だけを合計する数式です。
=SUMPRODUCT((SIGN(A2:A20)=-1)*A2:A20)
条件を SIGN(A2:A20)=-1 に変えるだけですね。マイナスの行だけが残るので、結果もマイナスの合計値になります。
実務では次のような集計に使えます。
| 集計したい内容 | 数式 |
|---|---|
| 入庫合計(プラスのみ) | =SUMPRODUCT((SIGN(A2:A20)=1)*A2:A20) |
| 出庫合計(マイナスのみ) | =SUMPRODUCT((SIGN(A2:A20)=-1)*A2:A20) |
| 純増減(全体の合計) | =SUM(A2:A20) |
入出庫リストの増減数から「入庫の合計」と「出庫の合計」を別々に出したり、収支データから「収入だけ」「支出だけ」を集計したりと、応用範囲は広いです。SUM関数で全体の純増減も並べて出しておくと、データの動きがひと目で把握できますよ。
SUMPRODUCT関数そのものの使い方は「SUMPRODUCT関数の使い方|複数条件の集計を実例で解説」で詳しく解説しています。
SIGN関数でよくあるエラーと対処法
SIGN関数はシンプルな関数ですが、いくつかエラーが出るパターンがあります。
#VALUE! エラー
SIGN関数に 文字列 を渡すと #VALUE! エラーが発生します。
=SIGN("abc") → #VALUE! エラー
=SIGN(A1) → A1に文字列が入っている場合も #VALUE!
対処法: 引数が数値であることを確認しましょう。文字列が混ざる可能性がある場合は、IFERROR関数で囲むと安心です。
=IFERROR(SIGN(A1), "")
#NAME? エラー
関数名のスペルミスで #NAME? エラーが出ることがあります。
=SIGN(-10) → 正しい
=SGIN(-10) → #NAME? エラー(GとIが逆)
=SIGNE(-10) → #NAME? エラー(Eが余分)
対処法: 関数名が「SIGN」の4文字になっているか確認しましょう。Excelの数式オートコンプリートを使えば入力ミスを防げます。
SIGN関数と似た関数の違い・使い分け
SIGN関数に関連する関数をまとめておきます。
| 関数 | 用途 | 使用例 |
|---|---|---|
| SIGN | 符号を判定する(1, 0, -1) | =SIGN(-10) → -1 |
| ABS | 絶対値を求める(符号を取り除く) | =ABS(-10) → 10 |
| IF | 条件に応じて値を切り替える | =IF(A1>0, “正”, “負”) |
| ODD | 奇数に切り上げる | =ODD(2.5) → 3 |
| EVEN | 偶数に切り上げる | =EVEN(2.5) → 4 |
SIGN関数は「符号だけを取り出す」関数、ABS関数は「符号を取り除いて絶対値にする」関数です。セットで覚えておくと、数値処理の幅がぐっと広がりますよ。
ABS関数の使い方は「ExcelのABS関数の使い方|絶対値の基本と実践例を解説」、ODD関数は「ExcelのODD関数の使い方|最も近い奇数への切り上げを基本から解説」で解説しています。
SIGN関数に関するよくある質問(FAQ)
SIGN関数について、つまずきやすいポイントをQ&A形式でまとめました。
Q1. SIGN(0) が 0 になる理由は?
SIGN関数は「正・ゼロ・負」の3パターンを区別するため、ゼロには専用の戻り値として 0 を割り当てています。
正の数なら1、負の数なら-1ですが、ゼロは「正でも負でもない」状態なので、どちらにも属さない0を返すわけです。
ここで注意したいのが、IF関数で =IF(SIGN(A1)=1, "プラス", "マイナス") のように2分岐で書くと、ゼロのときに「マイナス」と表示されてしまう点です。ゼロを別扱いしたい場合は、本文で紹介した 3分岐パターン を使ってください。
Q2. SIGN関数はGoogleスプレッドシートでも使えるか?
はい、Googleスプレッドシートでも まったく同じ書き方 で使えます。
=SIGN(A1)
戻り値が「1・0・-1」になる仕様もExcelと同じです。SUMPRODUCTやIFと組み合わせる活用パターンもそのまま流用できますよ。
スプレッドシートでの使い方や損益分類・矢印表示の実例は「スプレッドシートのSIGN関数で正負判定|損益分類・矢印表示・ABS関数との組み合わせまで」で詳しく解説しています。
Q3. 文字列が混ざった列でエラーを避けるには?
数値と文字列(空白セルや「-」などのテキスト)が混在する列にSIGN関数を使うと、文字列の行で #VALUE! エラーが出てしまいます。
これを避けるには、IFERROR関数で囲むのが手軽です。
=IFERROR(SIGN(A1), "")
文字列の行はエラーにならず空白として扱われるので、表が崩れません。
「数値が入っているときだけ判定したい」という場合は、ISNUMBER関数で事前にチェックする方法もあります。
=IF(ISNUMBER(A1), SIGN(A1), "")
A1が数値のときだけ符号を判定し、それ以外は空白にする数式です。集計の前処理としてこちらを使うと、より意図が明確になりますよ。
Q4. SIGN関数をSUMIF/COUNTIFの代わりに使えるか?
「プラスの値だけ合計したい」という単純な条件なら、SUMIFのほうがシンプルです。
=SUMIF(A2:A20, ">0")
この1行でプラスの値だけを合計できるので、わざわざSIGN関数を経由する必要はありません。
SIGN関数が活きるのは、符号そのものを別の計算に使いたいとき です。たとえば「符号は残したまま絶対値だけ丸める」「符号を判定して別の値に変換する」といった処理は、SUMIFやCOUNTIFでは書けません。
用途を整理すると次のとおりです。
| やりたいこと | おすすめ |
|---|---|
| 条件に合う値を合計・カウントする | SUMIF / COUNTIF |
| 符号を使って別の計算をする | SIGN |
| 符号で行をフラグ化して合計する | SUMPRODUCT + SIGN |
SUMIF関数の詳しい使い方は「ExcelのSUMIF関数の使い方|条件別4パターン完全ガイド」で解説しています。条件付き集計だけが目的ならこちらが近道です。
まとめ
この記事では、ExcelのSIGN関数について基本から実践的な活用法まで解説しました。
SIGN関数のポイントをおさらいしておきましょう。
- SIGN関数は数値の 符号(正・ゼロ・負) を 1・0・-1 で返す関数
- 構文は
=SIGN(数値)で、引数は1つだけのシンプルな関数 - IF関数との組み合わせで 正・ゼロ・負の3分岐 が簡単にできる
- ABS関数とセットで使えば、符号と絶対値を分離 して柔軟な計算が可能
- 条件付き書式と組み合わせて プラス・マイナスの色分け もできる
- SUMPRODUCTと組み合わせれば プラス合計・マイナス合計を分けて集計 できる
SIGN関数はシンプルですが、IF関数やABS関数、SUMPRODUCT関数と組み合わせることで活用の幅が大きく広がります。まずは前月比や売上増減のデータで試してみてください。