- ベストアンサー
Excel2003 0と空白を別の値として判断したい
エクセル2003でIF関数の質問ですが、 A1=2 B1=0 と A1=2 B1が空白 の場合で B1が0のとき0を返し、B1が空白の場合A1の値を返したいのです。 つまり0と空白を別の値として判断したいのですが、どうしたらいいので しょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
判定を行う順序がポイントになります。 =IF(ISBLANK(B1),A1,IF(B1=0,0,"未定義")) ※B1が0でも空白でもない場合は"未定義"が返ります。 B1がいわゆる「長さ0の文字列""」の場合も空白と同様に処理するなら、 =IF(B1="",A1,IF(B1=0,0,"未定義")) ※[B1が空白または長さ0の文字列""ならばA1] 先に0かどうかの判定をしてしまうと、 空白は0とみなされてしまうのでうまくいきません。 ×=IF(B1=0,0,IF(B1="",A1,"未定義")) ⇒B1が空白のとき0,長さ0の文字列""のときA1 ×=IF(B1=0,0,IF(ISBLANK(B1),A1,"未定義")) ⇒B1が空白のとき0,長さ0の文字列""のとき"未定義"
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
IF文で引数となるセルの値がでてくる1歩前から区別して出てくるように関数を作らないとダメと思う。 エクセルはおせっかい機能で、表「計算」ソフトのメインの機能を 慮って、0にしてしまうケースがあるがそれをさせないように、IF文で場合分けをしておくことが必要だ。 ーー いま値がでてしまっていることを前提にするなら、質問にもならないことで =IF(A1="",・・が空白を捉えるやり方で、=IF(A1=0,・・が0を捉えるやり方である。 ただしユーザー書式設定の#ガあったりするので 書式 値 を区別し 質問の関数と、その元になる値(その作成来歴=入力か関数の結果か)を具体的に書かないと、正しい解答はできないよ。 質問は説明表現が不十分と思う。 この辺は甘く見ないこと。
お礼
確かに説明表現が不十分でした。すいませんでした。 今後は書式と値の区別も視野に入れて質問したいと思います。
- mu2011
- ベストアンサー率38% (1910/4994)
次のようなことでしょうか。 B1が0又は空白でない、空白としています。 =IF(B1=0,0,IF(B1="",A1,""))
お礼
早速、回答ありがとうございます。
お礼
この回答により問題が解決されました。 ×=IF(・・・の部分も参考になります。 ありがとうございました。(´▽`)