• ベストアンサー

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

  • Excel IF関数について質問です。

    ExcelのIF関数について質問があります。 B2,C2,D2に入力されている文字を一つずつスペースを設けて、A1に自動的に入力されるような関数を作りたいのですが、どうしてもできません。 B2,C2,D2に文字が入力されていれば、=B2&" "&C2&" "&D2 という関数でこの問題は解決できます。 しかし、もしC2が空白なら、上記関数ですと、スペースが2つできてしまいます。 ●もし空白なら、スペースを作らないというIF関数を作りたく試行錯誤しましたが、できませんでした。 どなたかおわかりの方教えて頂けないでしょうか? よろしくお願い致します。

  • エクセル関数 IF関数で出来ませんかね

    エクセル関数 IF関数で列への書式設定をしているのですが、私が考えていることが出来ません。お力をお貸ししてください。   A列    B列    C列  請求書   領収書  備考欄 1 ○  2 不要         TEL 3 ○ 4 5 不要         TEL A列はユ-ザ-定義で[=1]"○";"不要"としており、問題はC列へのA列での「不要」となった場合にTEL(=A1とし、セルの書式設定[=1]"":"TEL")でコピ-で自動的に表示させられるのですがA列へのデ-タが莫大に多いもので、IF関数で試行錯誤しています。 =IF(A1=1,"","TEL")でコピ-も考えたのですが、未入力(A4)の場合もTELで表示されます。C列をいっぺんに指定してIF関数で出来ないものでしょうか?  

  • エクセルのif関数のエラー

    エクセルでif関数を使ってデータ処理をしたのですが、上手くいき ません。何がおかしいのかが分からない状態で困っています。 状況  A B C D E 1 : + = ? 関数式 とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?) 関数式のセルに以下の様に入力しました。 =IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE)) 目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを 避ける事でした。 そうすうとD1にA列の数字を入力すると、それに対するB列をE1に 表示するようになるのですが、D1が空白の時はB1が表示されて しまってます。  また一旦D1に入力した後、D1をデリートして空白にしてもE1には もとの数値がそのまま表示されたままになってしまいます。 文章で表現している分、かなり分かりにくい説明になってしまって いますが、お詳しい方いましたらアドバイスお願い致します。

  • IF関数についておしえてください。

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

  • openoffice calc で、IF関数

    openOffice calc の IF関数についての質問です。 A列のA1からA20のセルに(A,B,C,D)が、ランダムにあるとします。 これを、A列のセルの値が”A”ならば、返す値は”あ”、”B”ならば、”い”、同じように「C→う」「D→え」 のように、値に応じた、答えをB列に出させるにはどのような関数と式を使えば良いのでしょうか? 宜しくお願い致します。

  • エクセルのIF関数で、文字が入力されていたならば~

    エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。 =IF(A1="『どんな文字でも』","",+B1-C1) A1セルに『どんな文字でも』入っていたならば、空白に。 文字が入っていなければB1セルからC1セルを引く、という状態です。 この『どんな文字でも』の部分に何を入れればいいのか教えてください。 またIF関数以外でも同様のことができれば構いません。 宜しくお願いします。

  • IF関数をひとつのセルに二つ使いたい。

    A列のセルには、 「空白」、「0.5」、「1」、「1,5」、「2」が入るのですが B列のセルには 隣接するA列が「0.5」~「1,5」までは500、 「2」以上だと1000、 A列が空白だとB列も空白にしたいです。 でも最初からB列には関数 「=IF(1<A1,1000,500)」を入れてオートフィルしているので 空白のセルも勝手に「500」に入力されてしまいます。 そもそも「=IF(1<A1,1000,500)」ではだめですよね? よろしくお願いします。

  • IF関数

    エクセルで、 B列~K列までのセルに1つでも数値が入っていれば、 A列に○印がつくような、 関数式をお教え下さい。 今まで合計を出して>1なら○が入る ようにしていたので(恥)・・・

  • IF関数について

    IF関数について A列のセルに住所が入力されていて、「中野区」という文字列が含まれているときに「○」そうでない場合は「-」をB列セルに表示させる方法で B列セルに、 =IF(COUNTIF(A1,"*中野区*"),"○","-") を入力すれば良いことがわかりました。 この条件に加えて、A列のセルが空白の場合上の行を参照するという条件を加えたいと思います。 例A3のセルが空白の場合A2を参照しB3に表示させる。 因みに、A2も空白の場合A1を参照する。 って感じにしたいです。 宜しく御願いします。

  • セルの内容を合わせるエクセル関数

    お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。

専門家に質問してみよう