電子書籍の厳選無料作品が豊富!

こんばんは。
どなたか教えて下さい。

ExcelでA列とB列が有ります。
一番上の行は項目のタイトルです。

B列の数値ががマイナスならA列に「-1」
が、プラスなら「1」が表示されるようにセルA2に下記の関数を入れました。
=IF(B2<0,"-1","1")
※後はオートフィルで下までかけました。

ただB列がマイナスだと確かに「-1」と表示されるのですが、B列の数値がプラスでも空欄でもA列が「1」と表示されてしまいます。

=IF(B2<0,"-1","1")としつつ
B列が空欄の場合は、A列が空欄になるようにするにはどうすれば良いでしょうか?

A 回答 (3件)

=IF(B2="","",IF(B2<0,-1,1))

    • good
    • 3
この回答へのお礼

助かりました

お礼日時:2025/03/05 08:23

添付画像をご覧ください。


B列に数値があって、A列でその数値の「+-判定」を行うものとします。
>B列の数値ががマイナスならA列に「-1」が、プラスなら「1」が表示される・・・(a)
というご質問者のご希望ですが、条件(a)にはBの値が0のときの判断が説明されていません。

ご質問者の数式である

A2: =IF(B2<0,"-1","1")・・・①

という数式では0のとき「1」が表示され、説明されていないのに0は勝手にプラスの判定になっています。
このため、EXCELが空白を0と判断し、0のとき「1」を表示することになる訳です。
本当に0をプラスと判定してよいのでしょうか?
それでよいのなら既出の回答の数式で解決です。

一方、IF関数を使わなくても、EXCELには専用の関数が用意されています。それがSIGN関数です。
添付画像のように

A2: =SIGN(B2)・・・②

とすれば、B列の数値ががマイナスならA列に「-1」が、プラスなら「1」が表示されます。

さて問題はここからです。
(a)というご質問者のご希望条件にB列の値が0のときの説明がないと申し上げましたが、(a)の条件にB列の値が0および空白のときどうするのかという条件を付けくわえないと、正しい数式が作成できません。
このため、ご質問のような事態に陥ることになります。

SIGN関数は値が0のとき0を返します。

ご質問者のご希望は以下のどちらでしょう
(1)空白と0とを区別して異なる表示にしたい
(2)空白も0も区別せず両方とも空白(あるいは同じ表示)でよい
例えば(1)の例で、空白なら空白、0なら0を表示する場合は

A2: =IF(B2="","",SIGN(B2))・・・③

とすれば空白なら空白、0なら0を表示することができます。
なお、数学的常識からは外れますが0をプラスと判定してよい場合は既出回答で解決できます。

また、(2)の場合は数式は➁のままで、「両方とも0を表示する」「A列の表示形式をユーザー定義で「#」として0を表示せず、どちらも空白とする」「同じくユーザー定義で「0;-0;-;」として、どちらもハイフンを表示する」などの方法があります。
「ExcelのIF関数との組み合わせの相談」の回答画像3
    • good
    • 2
この回答へのお礼

助かりました

お礼日時:2025/03/05 08:24

=IFS(ISBLANK(B2),"",B2<0,-1,TRUE,1)

    • good
    • 2
この回答へのお礼

助かりました

お礼日時:2025/03/05 08:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A