当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

【Excel】SIGN関数で数値の符号を調べます

【Excel】SIGN関数

sign とは「符号」という意味です。Excel の SIGN関数 は数値がプラスかマイナスか、あるいは符号をもたないのか(0 であるのか)を判定します。引数には数値を使って

=SIGN(数値)

と書きます。数値が正のときは「1」、ゼロのときは「0」、負のときは「-1」を返します。たとえば

=SIGN(-5)

と入力すると「-1」が返ってきます。こんな関数、いったい何に使うのかと疑問に思いますけど、まあそれなりに色々と使い道はあります。実は Excel には偶数に切り上げる EVEN という関数がありますが、偶数に切り下げる関数というものは存在していません。ここでは FLOOR 関数 と組み合わせて数値を偶数に切り捨てる技を紹介します。

=FLOOR(数値,2)

と入力すると、数値を一番近い偶数に切り下げます。たとえば

=FLOOR(5,2)

と入力すると 5 に近い「4」が返ります。でも数値が負の場合はそのまま使えません。

=FLOOR(-5,2)

と入れるとエラーになってしまいます。FLOOR関数は2つの引数の符号が一致している必要があるからです。なので負の値を偶数に切り下げるには

=FLOOR(-5,-2)

と入力する必要があります。すると「-2」が返ります。ちなみにここでは負について、よりい小さな値(今の例では「-4」)ではなく、原点に近い方の数値にすることを切り下げと定義してあります。そして数値の正負に関わらず、一喝して処理するときに SIGN関数 と組合わせることになります。セル A1 に入っている(正負が不明の)数値を偶数切り下げするには、少し長いですけど

=IF(SIGN(A1)>=0,FLOOR(A1,2),FLOOR(A1,-2))

というように IF で場合分けします。

SIGN(A1)>=0

は「もし A1 の数値が 0 以上であれば」という記述で、この条件を満たす場合は次の引数にあるように

FLOOR(A1,2)

という処理を行います。条件をみたさない場合は3つめの引数にある

FLOOR(A1,-2)

として負数に対する切り下げ処理を行います。

コメント

  1. あとりえこばと より:

    【AI解説】ExcelのSIGN関数は、数値の正負を調べる関数です。引数に数値を指定して、その数値が正なら1、0なら0、負なら-1を返します。SIGN関数の応用例は、以下のとおりです。
     
    ・数値の正負を判定する:SIGN関数は、数値の正負を判定するのに最適です。例えば、売上高が黒字か赤字かを判定する場合は、以下のような数式を使用できます。
    =IF(SIGN(売上高) = 1, “黒字”, “赤字”)
    この数式は、売上高が正なら「黒字」、負なら「赤字」を返します。

    ・数値の符号を調整する:SIGN関数は、数値の符号を調整するにも使用できます。例えば、時差がマイナスの場合、TIME関数に直接引数を指定するとエラーが発生します。そこで、SIGN関数とABS関数を組み合わせて、以下のような数式を使用することで、時差がマイナスの場合でもエラーを回避できます。
    =TIME(1,0,SIGN(時差)*ABS(時差))
    この数式は、時差が正ならそのままTIME関数に引数を指定しますが、時差が負なら-1を掛けて符号を調整します。

    ・数値の増減を判定する:SIGN関数は、数値の増減を判定するのに使用することもできます。例えば、前月の売上高と今月の売上高を比較して、増加したか減少したかを判定する場合は、以下のような数式を使用できます。
    =IF(SIGN(今月の売上高 – 前月の売上高) = 1, “増加”, “減少”)
    この数式は、今月の売上高が前月の売上高より大きいなら「増加」、小さいなら「減少」を返します。

    このように、SIGN関数は数値の正負を調べるだけでなく、さまざまな応用が可能です。以下に、SIGN関数の応用例をいくつかご紹介します。

    ・傾向の判定:株価や為替などのデータの傾向を判定する場合、SIGN関数を使用して、前期と今期の値を比較して増加したか減少したかを判定できます。

    ・異常値の検出:データの中に異常値が含まれている場合、SIGN関数を使用して、平均値や中央値などの基準値と比較して、異常値を判定できます。
     
    ・振り幅の判定:データの振り幅を判定する場合、SIGN関数を使用して、最大値と最小値の差を計算できます。

タイトルとURLをコピーしました