• ベストアンサー

IF関数について

EXCELのIF関数について教えて下さい。 A列 B列  C列 D列 ○     ○  ○    ○  ×  × ×     ○  × AもしくはB列が○で、C列が○ならD列は○ AもしくはB列が×で、C列が○ならD列は× AもしくはB列が×で、C列が×ならD列は× AもしくはB列が空白で、C列が空白ならD列は空白 と言った条件式をD列のセルに記述しようと思っています。 試行錯誤してみたんですが、上手くいきません。 アドバイスでも構いませんので、教えて下さい。

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

  • ベストアンサー
  • e10go
  • ベストアンサー率38% (47/122)
回答No.7

質問の中の条件が、 1.AもしくはB列が○で、C列が○ならD列は○ 2.AもしくはB列が×で、C列が○ならD列は× 3.AもしくはB列が×で、C列が×ならD列は× 4.AもしくはB列が空白で、C列が空白ならD列は空白 (条件の前の番号は私が付けました) と、No.1の回答補足、 >A,B列ですが、どちらか一方にしか値は入力しません。 と合わせると、下記のパターンが考えられます。 A,B,C,D,条件 ○,-,○,○,1 ○,-,×,?,条件なし ○,-,-,-,4 ×,-,○,×,2 ×,-,×,×,3 ×,-,-,-,4 -,○,○,○,1 -,○,×,?,条件なし -,○,-,-,4 -,×,○,×,2 -,×,×,×,3 -,×,-,-,4 -,-,○,?,条件なし -,-,×,?,条件なし -,-,-,-,4 (注)「-」は、空白 D列(セルD1)に入れる式は、 =IF(AND(OR(A1="○",B1="○"),C1="○"),"○",IF(AND(OR(A1="×",B1="×"),OR(C1="○",C1="×")),"×",IF(C1="","","?"))) (C列に「○・×・空白」以外のケースが無いなら、下の式でもOK) =IF(AND(OR(A1="○",B1="○"),C1="○"),"○",IF(AND(OR(A1="×",B1="×"),C1<>""),"×",IF(C1="","","?"))) で、良いと思いますが、No.5の回答補足、 >A列またはB列にデータが入っていてC列にデータが入っていない場合⇒× >C列にデータが入っていて、A列またはB列にデータが入っていない場合⇒× を条件とすると、D列は全て「×」になります。 こういう事は、頭の中で条件と結果を考えると上手くいかないものです。 考えられる条件全てを表にして、結果を書いて考えると、何とかなるものです。

その他の回答 (7)

回答No.8

結局、この問題はこのようになるのでしょう。  (A="○" or B="○")and C="○" then "○" else "×" AかBに入力があり、かつCにも入力があるとき、それらの二つとも○ならD欄も○で、それ以外は×ということですね!? これならご自身で式を立てられると思います。 ただしA欄B欄共に入力したりすると、正しい結果は得られません。

回答No.6

この問題は、次のように場合分けできます。 (1)A="○" or B="○" and C="○" then "…" else "…" (2)A="○" or B="○" and C="×" then "…" else "…" (3)A="○" or B="○" and C=" " then "…" else "…" (4)A="×" or B="×" and C="○" then "…" else "…" (5)A="×" or B="×" and C="×" then "…" else "…" (6)A="×" or B="×" and C=" " then "…" else "…" (7)A=" " or B=" " and C="○" then "…" else "…" (8)A=" " or B=" " and C="×" then "…" else "…" (9)A=" " or B=" " and C=" " then "…" else "…" この中で、(7)と(8)の処理方法が示されていませんが、どうすればいいのですか? もうすこし要約して、 (1)A列とB列はいずれか一方が入力され、C列は必ず入力される。 (2)A列,B列,C列にひとつでも×があればD列は×。 (3)A列,B列共に空白ならC列は無視してD列は空白。 (4)その他は○。 というようにできないのですか? 不得手な論理構造に無理して首を突っ込むことはありません。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.5

=IF(OR(A1="○",B1="○"),IF(C1="○","○","×"),IF(OR(A1="×",B1="×"),"×",IF(AND(A1="",B1="",C1=""),"","それ以外"))) 網羅していない条件があります。 A列またはB列にデータが入っていてC列にデータが入っていない場合etc... 明確にしていただければ(真理値表に記入を)回答しますが。

SUPERH2O
質問者

補足

レスありがとうございます。 何度もすみません。 A列またはB列にデータが入っていてC列にデータが入っていない場合⇒× C列にデータが入っていて、A列またはB列にデータが入っていない場合⇒×

回答No.4

条件がはっきりしていませんね 下の「?」の部分を埋めることができますか? 空白は「△」として記述しています。 A B C D ○ ○ ○ ○ ○ × ○ ? ○ △ ○ ○ × ○ ○ ? × × ○ × × △ ○ × △ ○ ○ ? △ × ○ ? △ △ ○ ? ○ ○ × ? ○ × × ? ○ △ × ? × ○ × ? × × × × × △ × ? △ ○ × × △ × × ? △ △ × ? ○ ○ △ ? ○ × △ ? ○ △ △ ? × ○ △ ? × × △ ? × △ △ ? △ ○ △ ? △ × △ ? △ △ △ △

SUPERH2O
質問者

補足

説明が足りませんでした。すみません。 A、B列は片方しか値が入りません。

  • shippo
  • ベストアンサー率38% (1216/3175)
回答No.3

質問文に矛盾があるかと思いますが・・・。 1.AもしくはB列が○で、C列が○ならD列は○ A B C D O O O O O X O O X O O O 2.AもしくはB列が×で、C列が○ならD列は× A B C D X O O X O X O X X X O X この時点で1と2のA列B列に共通の状態ができ、ともにC列が○の状態で同じですから、D列の結果に違いができてはいけないはずです。しかしながら質問文だとこの矛盾が生じるためプログラムを作ることができません。

SUPERH2O
質問者

補足

返信ありがとうございます。 条件の説明が足らず、申し訳ございません。 A,B列は片方しか値は入れません。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.2

1番目と2番目の条件が矛盾しているようです。 AもしくはBのどちらかだけが○のときはDはどうなるのでしょうか? 条件を整理してみましょう。 真理値表を書いて、ORで結んでみましょう。 ABC|D ○○○|? ○○×|? ○×○|? ○××|? ×○○|? ×○×|? ××○|? ×××|?    |?   ○|?  ○ |?  ○○|? ○  |? ○ ○|? ○○ |?

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

C列以外の条件が矛盾しています Aが×、Bが○で、C列が○ ならば D列の結果は○ですか×ですか?

SUPERH2O
質問者

補足

説明を追記いたします。 A,B列ですが、どちらか一方にしか値は入力しません。

関連するQ&A