- 作成日 : 2025年8月5日
エクセルのSIGN関数で符号判定を自動化!使い方と活用例まとめ
数値の符号を判定するなら、エクセルのSIGN関数(サイン関数)が便利です。指定した数値が正なら「1」、負なら「-1」、ゼロなら「0」を返すため、売上の増減判定や条件分岐処理が簡単にできます。
この記事では、SIGN関数の基本から応用例までわかりやすく解説します。
目次
SIGN関数の使い方
SIGN関数の使い方はシンプルです。引数に符号を判定したい数値を指定するだけで、結果が返されます。
基本構文
- 数値:符号を判定したい数値を指定します。これは直接数値や数式を入力しても良いですし、数値が入力されているセルを参照することも可能です。
具体例
以下の表で、SIGN関数の動作を確認しましょう。
数値 | SIGN関数の結果(符号) | 説明 |
---|---|---|
100 | 1 | 正の数なので1を返します。 |
-50 | -1 | 負の数なので-1を返します。 |
0 | 0 | ゼロなので0を返します。 |
12.34 | 1 | 正の小数の場合も1を返します。 |
-98.76 | -1 | 負の小数の場合も-1を返します。 |
セルに入力する場合:
たとえば、セルA1に「100」と入力されている場合、B1に「=SIGN(A1)」と入力すると、「1」が返されます。同様に、A1に「-50」と入力すれば「-1」、A1に「0」と入力すれば「0」が返されます。
SIGN関数の利用シーン
SIGN関数は単独で使われるよりも、他の関数と組み合わせて真価を発揮することが多いです。ここでは、具体的な利用シーンをいくつかご紹介します。
1. 数値の増減に基づいた判定
売上データや成績データなど、数値の増減を把握したい場合にSIGN関数は非常に有効です。
例:売上の前月比を色分け表示する
前月と今月の売上データがあり、増減に応じてセルの色を変えたいとします。
月 | 売上(万円) |
---|---|
4月 | 100 |
5月 | 120 |
6月 | 90 |
- 増減額の算出:たとえば、B3セルに5月の売上(120)、B2セルに4月の売上(100)があるとして、C3セルに「=B3-B2」と入力し、増減額を計算します(この例では「20」)。
- SIGN関数で符号を判定:C3セルの増減額に対して「=SIGN(C3)」を使うと、「1」が返されます。
- 条件付き書式と組み合わせる:このSIGN関数の結果を利用して、下記の通り条件付き書式を設定することで、増減に応じて自動的にセルの色を変えられます。
- SIGN関数の結果が「1」なら緑(増加)
- SIGN関数の結果が「-1」なら赤(減少)
- SIGN関数の結果が「0」なら黄色(変化なし)
これにより、視覚的にデータの傾向を素早く把握できるようになります。
2. 条件分岐の簡素化
IF関数などと組み合わせて、条件分岐をシンプルに記述できます。
例:成績の評価を自動化する
テストの点数があり、前回のテストの得点を基準に、今回のテストの得点が増えているか減っているかを評価します。
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 生徒名 | 前回の得点 | 今回の得点 | 差分 | 評価 |
2 | 田中 | 65 | 75 | 10 | 成長中 |
3 | 鈴木 | 98 | 80 | -18 | 低下中 |
4 | 佐藤 | 74 | 74 | 0 | 横ばい |
=IF((C2-B2)=1,”成長中”,IF(SIGN(C2-B2)=-1,”低下中”,”横ばい”))
点数が前回のテストの結果よりもプラスであれば「成長中」、下降していれば「低下中」など、符号に基づく判定を加えたい場合にSIGN関数が役立ちます。
SIGN関数の応用
SIGN関数は、他の数学関数や論理関数と組み合わせることで、さらに複雑な処理を効率的に行うことが可能です。
1. 絶対値との組み合わせ
SIGN関数とABS関数(絶対値を返す関数)を組み合わせることで、数値の絶対値とその符号を別々に扱えます。
例:数値の符号を保持しつつ、絶対値の計算を行う
たとえば、計算結果の絶対値を使いたいが、元の数値の符号もどこかで考慮したい場合に利用できます。
=SIGN(A1)*ABS(A1) は、元のA1の値をそのまま返します。一見すると無駄に見えますが、複雑な計算式の中で部分的に符号だけを抽出し、その後に絶対値演算を適用するような場合に、式の可読性を高められます。
2. 配列数式での活用
Excelの上級者向けの内容になりますが、SIGN関数は配列数式と組み合わせることで、複数セルのデータを一度に処理する際にも活用できます。
例:条件に合うデータの個数を数える
特定の範囲内の正の数、負の数、ゼロの個数をそれぞれ数える場合などに、SUMPRODUCT関数やCOUNTIFS関数と組み合わせて利用できます。
たとえば、A1:A10の範囲に数値が入っているとして、正の数の個数を数えるには、以下のような数式を使用します。
=SUMPRODUCT(–(SIGN(A1:A10)=1))
この数式は、A1:A10の各セルに対してSIGN関数を適用し、結果が「1」になる場合にTRUE(真)、それ以外の場合にFALSE(偽)を返します。–(二重負演算子)はTRUEを1に、FALSEを0に変換するため、最終的に正の数の合計個数を算出できます。
3. マクロやVBAでの利用
Excel VBA(Visual Basic for Applications)でもSIGN関数は利用できます。VBAコード内で数値の符号に基づいた処理を行いたい場合に活用できます。
Sub CheckSign()
Dim myNumber As Double
myNumber = Range(“A1”).Value ‘ A1セルの値を取得
Select Case Sgn(myNumber) ‘ VBAではSIGN関数ではなくSgn関数を使用します
Case 1
MsgBox “A1セルの値は正の数です。”
Case -1
MsgBox “A1セルの値は負の数です。”
Case 0
MsgBox “A1セルの値はゼロです。”
End Select
End Sub
このVBAコードでは、シート上のA1セルの値を取得し、VBAのSgn関数(ExcelのSIGN関数に相当)を使って符号を判定し、その結果に応じたメッセージボックスを表示します。
SIGN関数の活用でExcelの符号判定をもっとスマートに!
ExcelのSIGN関数は、数値の符号(正・負・ゼロ)を瞬時に判定できるシンプルかつ強力な関数です。売上の増減や条件分岐の整理、条件付き書式での色分けなど、幅広い用途で活躍します。さらに、IF関数やABS関数、配列数式、VBAと組み合わせることで、より高度な処理や自動化にも対応可能です。
この記事で紹介した使い方を参考に、SIGN関数を業務に取り入れれば、Excelでのデータ分析が一段とスムーズになるでしょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートで日付を自動入力するには?関連する関数まで解説
バックオフィス業務では、請求書や勤怠表、スケジュール管理など、日付を正確に入力する作業が欠かせません。Googleスプレッドシートでは、日付を自動入力できる関数や機能が用意されており、手入力の手間や入力ミスを減らせます。 この記事では、TO…
詳しくみるエクセルのコメント機能の使い方とは?一緒に印刷するにはどうする?
エクセルのコメント機能は、データに対する補足情報や意見を追加するのに非常に便利です。これにより、他のユーザーと効率的に情報を共有し、より良いコラボレーションが可能になります。本記事では、エクセルのコメント機能の具体的な使い方と、これらのコメ…
詳しくみるExcelのDAYS関数とは?日数計算の使い方やエラー対策を解説
「プロジェクトの締切まであと何日?」「商品の保管期間は何日だった?」 そんな日付に関する計算は、ExcelのDAYS関数(デイズ関数)を使えばあっという間に求められます。手作業では煩雑になりがちな経過日数計算を効率よく行えるため、業務の正確…
詳しくみるスプレッドシートでコメントを活用するには?表示・追加・編集・削除からトラブル対処まで
スプレッドシートのコメント機能は、チームでの共同作業や個人のメモ管理に役立つ機能です。Googleスプレッドシートでセルにコメントを追加することで、データの補足説明や作業指示を効率的に共有できます。 本記事では、コメント機能の基本的な使い方…
詳しくみるCONCAT関数(CONCATENATE関数)の使い方をわかりやすく解説
CONCAT関数(CONCATENATE関数)は、複数の文字列を連結して一つの文字列にする非常に便利な関数です。この関数を使うことで、スプレッドシート内のデータを簡単に整形し、見やすい形式にまとめることが可能になります。本記事では、CONC…
詳しくみるIMSUB関数の使い方:複素数の減算を計算する方法
IMSUB関数は、2つの複素数の差を計算する関数です。電気工学での回路解析、信号処理、制御工学、物理学の波動計算など、複素数演算が必要な技術計算で活用されます。例えば、交流回路でのインピーダンスの差を計算したり、信号の位相差を解析したり、振…
詳しくみる