プロが教える店舗&オフィスのセキュリティ対策術

A1に2013/5/31
B1に2013/5/31
C1に2013/5/31
に日付がはいってるのですが、
=IF(A1=B1,"同じ","違う")なら同じになるのですが
なぜか=IF(A1=B1=C1,"同じ","違う")だと、違うが返ります。

三つの日付は同じなのになぜ違うが返るのでしょうか?

「「別々のセルの3つの日付が同じなら」って」の質問画像
gooドクター

A 回答 (5件)

「なぜ?」と問われると、「仕様です」としか言いづらいのですが・・




エクセルの比較演算子は「右辺を左辺を比較する」ために用意されているからです。
ここには「3つ以上を比較する機能」が含まれていないのです。

エクセルの内部処理については厳密には解りませんが、
質問文中の条件であるときに
「A1=B1」と言う式を与えると、右辺と左辺が同値ですので「TRUE」を返してきます。

「A1=B1=C1」と与えた場合、「比較演算子は右辺と左辺を・・」ですから、
エクセルは[A1=B1]と[C1]を比較しにかかります。
前述の通り[A1=B1]=[TRUE]ですから、エクセルは[TRUE]=[C1]と判断し、
同値ではないため[FALSE]を返してきます。
(逆に[A1]=[B1=C1]なのかもしれませんが、そこははっきり解りません。)

よって、IF関数においても条件式[A1=B1=C1]=[FALSE]ですから、
「偽の場合」に設定されている「"違う"」を返してくると言うからくりです。


三者(以上)を比較したいときには、一般的にはAND関数やOR関数を使います。
詳細は別途お調べいただくとして、具体的には
  式:=IF(AND(A1=B1,B1=C1),"同じ","違う")
のように使います。
結果は添付図の通りです。
「「別々のセルの3つの日付が同じなら」って」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/06/08 08:25

こんにちは。



IF関数は IF(論理式, 真の場合, 偽の場合)  として作成されています。

質問者様は 論理式の部分に間違った式 A1=B1=C1 を入力されていますので、
それが 違う と判断されているようすです。

A1かつB1かつC1が同じ とする場合は 論理式は AND(A1=B1,A1=C1) とすべきです。
「「別々のセルの3つの日付が同じなら」って」の回答画像5
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/06/08 08:25

式 =A1=B1 は TRUE を返します。


でも、C1 は TRUE ではないので、「違うが返る」のです。

試しに、C1 に半角文字で TRUE と入力してみてください。「同じが返る」でしょ。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/06/08 08:25

“論理式”とは何か、を勉強すべし!

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

ありがとうございます。

お礼日時:2013/06/08 08:25

A1=B1=C1こんな比較はできません



書くなら
=IF(AND(A1=B1,A1=C1),"同じ","違う")
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/06/08 08:25

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

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

gooドクター

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

人気Q&Aランキング