SIGN 関数は、数の符号(プラス・マイナス・0)を調べる関数です。プラスなら 1、マイナスなら -1、0 なら 0 を返します。=SIGN(C2-B2) と書くと、今月が前月より増えたか減ったかが 1・-1・0 で分かります。
この記事では、SIGN の使い方と、増減を矢印や文字で表す方法を、実際の Excel で確かめた結果で説明します。
SIGN 関数の書き方
=SIGN(数値)
| 引数・結果 | 意味 |
|---|---|
| 数値 | 符号を調べたい数や計算 |
| 結果 | プラス→1、0→0、マイナス→-1 |
結果が 3 種類しかないので、CHOOSE や SWITCH と組み合わせると、増減を矢印や文字に変えられます。
1. 増えたか減ったかを 1・-1・0 で出す
今月-前月の符号を調べます。I2 に式を入れて、下へコピーします。
=SIGN(C2-B2)

A 店は 1、B 店は -1、同じだった C 店は 0 でした。
2. 増減を矢印で表す
SIGN の結果に 2 を足すと、-1・0・1 が 1・2・3 になります。それを CHOOSE で ↓・→・↑ に変えます。
=CHOOSE(SIGN(C2-B2)+2,"↓","→","↑")

A 店は ↑、B 店は ↓、C 店は → になりました。CHOOSE の使い方は CHOOSE関数の使い方で説明しています。
3. 「増・減・同じ」の文字にする
SWITCH を使うと、1 なら「増」、-1 なら「減」、それ以外は「同じ」と書けます。
=SWITCH(SIGN(C2-B2),1,"増",-1,"減","同じ")

D 店は 増、E 店は 減 です。SWITCH は IFS・SWITCH関数で説明しています。
4. 増えた店の数を数える
範囲どうしの差の SIGN が 1 のものを数えます。-- は TRUE・FALSE を 1・0 にする書き方です。
=SUM(--(SIGN(C2:C6-B2:B6)=1))

結果は 2 店でした(A 店・D 店)。
【実機で検証】SIGN でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| 0 の SIGN | =SIGN(0) | 0 |
| ごく小さいマイナス(-0.001) | =SIGN(-0.001) | -1 |
| 空白のセル(A12) | =SIGN(A12) | 0 |
| 文字(”abc”) | =SIGN("abc") | #VALUE! |
| 文字の数字(”5″) | =SIGN("5") | 1 |
| 0.1+0.2-0.3(計算の誤差) | =SIGN(0.1+0.2-0.3) | 1 |
| ROUND してから SIGN | =SIGN(ROUND(0.1+0.2-0.3,10)) | 0 |
0 は 0、ごく小さいマイナスの -0.001 でも -1 でした。空白のセルは 0 とみなされ 0 になります。まだ入力していない行も「同じ」と判定されるので注意します。
文字の “abc” は #VALUE! になりました。文字の数字 “5” は数として計算され 1 です。
0.1+0.2-0.3 は見た目は 0 ですが、SIGN は 1 になりました。小数の計算でわずかな誤差が出るためです。小数の差を判定するときは、ROUND で丸めてから SIGN にすると 0 になります。
よくある質問
マイナスをプラスにしたいときは?
符号を取って大きさだけにするなら ABS 関数を使います。マイナスをプラスにする方法も参考にしてください。
増減率(%)を出したいときは?
前月比は「今月÷前月-1」で出します。増減率を求める方法で説明しています。
増えたセルに色を付けたいときは?
条件付き書式で「数式を使用して…」を選び、=SIGN($C2-$B2)=1 と書くと、増えた行に色を付けられます。

コメント