プロが教えるわが家の防犯対策術!

エクセル2003です。
初歩的な数式について疑問がでました。

たとえば、セルA1の値がTRUEなら「はい」、そうでなければ「いいえ」を返したい場合、
=IF(A1=TRUE,"はい","いいえ")
と書くのが正しいのでしょうが、経験的に
=IF(A1,"はい","いいえ")
と=TRUEを省略しても同じ答えを返すので、ついついこのような楽な書き方をしてしまいます。
厳密には、A1がTRURでなくとも 0以外の数値ならば「はい」が返るのは存じております。

ところが、上記の条件に、「セルA2の値が0より大きい」という条件を加えると、追加条件の「A2が0より大きい」を満たす場合、答えが変わってしまいました!

=IF(AND(A1,A2>0),"はい","いいえ")
と=TRUEを省略すると
A1が空白であっても「はい」が返ります。

もちろん、
=IF(AND(A1=TRUE,A2>0),"はい","いいえ")
と省略せずに書くと正しく「いいえ」が返ります。

A2>0という新条件を加えても、A1の条件については何もかわらないのに答えがかわるのはどうしてでしょうか?

A 回答 (1件)

AND関数のヘルプには「引数として指定した配列や参照に、文字列または空白セルが含まれる場合、これらの値は無視されます。

」とあります。

=AND(A1,A2>0) で、A1が空白や文字列の場合、A1は無視されるようです。

参考URL:http://office.microsoft.com/ja-jp/excel-help/HP0 …
    • good
    • 0
この回答へのお礼

なんと、AND関数の仕様でしたか・・・・。
でも仕様というよりはバグといいたいですねえ。
ありがとうございます。

お礼日時:2012/02/27 00:46

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