• ベストアンサー

Excel2003 0と空白を別の値として判断したい

エクセル2003でIF関数の質問ですが、 A1=2 B1=0 と A1=2 B1が空白 の場合で B1が0のとき0を返し、B1が空白の場合A1の値を返したいのです。 つまり0と空白を別の値として判断したいのですが、どうしたらいいので しょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#52504
noname#52504
回答No.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の文字列""のとき"未定義"

masakencom
質問者

お礼

この回答により問題が解決されました。 ×=IF(・・・の部分も参考になります。 ありがとうございました。(´▽`)

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

IF文で引数となるセルの値がでてくる1歩前から区別して出てくるように関数を作らないとダメと思う。 エクセルはおせっかい機能で、表「計算」ソフトのメインの機能を 慮って、0にしてしまうケースがあるがそれをさせないように、IF文で場合分けをしておくことが必要だ。 ーー いま値がでてしまっていることを前提にするなら、質問にもならないことで =IF(A1="",・・が空白を捉えるやり方で、=IF(A1=0,・・が0を捉えるやり方である。 ただしユーザー書式設定の#ガあったりするので 書式 値 を区別し 質問の関数と、その元になる値(その作成来歴=入力か関数の結果か)を具体的に書かないと、正しい解答はできないよ。 質問は説明表現が不十分と思う。 この辺は甘く見ないこと。

masakencom
質問者

お礼

確かに説明表現が不十分でした。すいませんでした。 今後は書式と値の区別も視野に入れて質問したいと思います。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次のようなことでしょうか。 B1が0又は空白でない、空白としています。 =IF(B1=0,0,IF(B1="",A1,""))

masakencom
質問者

お礼

早速、回答ありがとうございます。

関連するQ&A