概要
SIGNは「数値の符号(向き)」を返す関数です。負なら-1、ゼロなら0、正なら1を返します。値の増減判定、トレンドの方向表示、条件分岐の簡略化、並べ替えキーの作成などで重宝します。数値以外(文字列やエラー)に対してはエラーになるため、必要に応じてIFERRORで保護します。
基本の使い方
書式
=SIGN(数値)
数値が負のときは-1、ゼロのときは0、正のときは1を返します。
判定の最小例
=SIGN(A2) // A2<0 → -1、A2=0 → 0、A2>0 → 1
シンプルに「方向」だけ欲しいときに便利です。
具体例
増減の方向だけを知りたい
=SIGN(今年-昨年)
昨年比で増なら1、減なら-1、変化なしなら0。レポートの方向フラグに使えます。
方向に応じたアイコンや記号を表示
=CHOOSE(SIGN(B2)+2, "↓", "→", "↑")
-1→1番目(↓)、0→2番目(→)、1→3番目(↑)。視覚的に分かりやすいトレンド表示。
方向別の計算を簡略化
=IF(SIGN(C2)=-1, C2*1.05, C2*0.95)
負のときは5%上乗せ、正のときは5%割引のような分岐をコンパクトに書けます。ゼロを別扱いしたい場合はさらにIFで分けます。
並べ替えキー(負→ゼロ→正の順)
=SIGN(D2)
並べ替えのキー列に符号を置いて、まず符号で並べ、同値は別のキーで二次ソートするなどの運用が可能です。
応用テンプレート
ゼロを特別扱い(「変化なし」表示)
=IF(SIGN(B2-A2)=0, "変化なし", IF(SIGN(B2-A2)=1, "増加", "減少"))
差分の符号で「増加/減少/変化なし」を文字列化します。
符号に応じて色分け(条件付き書式)
条件付き書式の数式例(赤=負、灰=ゼロ、緑=正):
=SIGN($B2)=-1 // 赤
=SIGN($B2)=0 // 灰
=SIGN($B2)=1 // 緑
3ルールで直感的な色分けができます。
正負で重み付け(方向付きスコア)
=ABS(E2) * SIGN(E2)
絶対値の重みを保ちつつ、符号で方向(加点/減点)を与えます。既にE2が数値なら =E2 と同じですが、他の計算で正負が失われるときの再付与に使えます。
横ばいの帯(±しきい値でゼロ扱い)
=SIGN((B2-A2) - しきい値) + SIGN((B2-A2) + しきい値)
差分が±しきい値の範囲なら合計が0(横ばい判定)。しきい値を超えれば±2(増/減)になります。厳密なゼロ帯判定に使えます。
よくあるつまずきと対策
文字列や空文字でエラー
文字列や空文字に対してはSIGNはエラーになります。値が数値か不明な場合はIFERRORで保護します。
=IFERROR(SIGN(A2), 0) // エラー時は0(中立)扱い
日付・時刻の扱い
Excelの内部では日付・時刻は数値です。SIGN(TODAY()) は正(1)になるため、日付の大小比較で方向判定をするときは差分で評価します。
=SIGN(終了日-開始日)
ゼロ付近の丸め誤差
小数の計算結果が -1.0E-12 のような極小値になると、SIGNは-1と判定します。ゼロ近傍をゼロ扱いにしたい場合はしきい値を設けてからSIGNを適用します。
=SIGN(IF(ABS(X2)<1E-9, 0, X2))
例題
問題1: 昨年A2、今年B2。増減の方向だけをC2に(1/0/-1)で表示
解答例:
=SIGN(B2-A2)
問題2: 差分の方向を「↑/→/↓」でD2に表示
解答例:
=CHOOSE(SIGN(B2-A2)+2, "↓", "→", "↑")
問題3: C2が負なら5%上乗せ、正なら5%割引、ゼロはそのままをD2に表示
解答例:
=IF(SIGN(C2)=-1, C2*1.05, IF(SIGN(C2)=1, C2*0.95, C2))
問題4: B列の数値を「負→ゼロ→正」の順で並べ替えるためのキーをC列に作成
解答例:
=SIGN(B2)
問題5: 微小誤差をゼロ扱い(しきい値=1E-6)で方向判定をE2に表示
解答例:
=SIGN(IF(ABS(D2)<1E-6, 0, D2))
まとめ
SIGNは数値の向きを「-1 / 0 / 1」で返す、方向判定のための最小装置です。差分と組み合わせれば増減の方向が一行で求められ、CHOOSEやIFと連携して記号・色分け・分岐を簡潔に書けます。ゼロ近傍の誤差、非数値、日付の扱いに注意しつつ、現場ロジックの軸として使うとスッキリ設計できます。
