• ベストアンサー

「別々のセルの3つの日付が同じなら」ってIF関数じ

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

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

「なぜ?」と問われると、「仕様です」としか言いづらいのですが・・ エクセルの比較演算子は「右辺を左辺を比較する」ために用意されているからです。 ここには「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),"同じ","違う") のように使います。 結果は添付図の通りです。

eipchrucwizi
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

こんにちは。 IF関数は IF(論理式, 真の場合, 偽の場合)  として作成されています。 質問者様は 論理式の部分に間違った式 A1=B1=C1 を入力されていますので、 それが 違う と判断されているようすです。 A1かつB1かつC1が同じ とする場合は 論理式は AND(A1=B1,A1=C1) とすべきです。

eipchrucwizi
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.4

式 =A1=B1 は TRUE を返します。 でも、C1 は TRUE ではないので、「違うが返る」のです。 試しに、C1 に半角文字で TRUE と入力してみてください。「同じが返る」でしょ。

eipchrucwizi
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.3

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

eipchrucwizi
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
回答No.1

A1=B1=C1こんな比較はできません 書くなら =IF(AND(A1=B1,A1=C1),"同じ","違う")

eipchrucwizi
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A