• ベストアンサー

IF関数で次のような条件の式を作りたいです(入れ子の使い方)

こんばんは エクセルはずぶの素人で、一生懸命関数を覚えているところです。 次のような場合に、どんな式を立てれば良いか教えてください。 「A>70かつB>70かつC>80の時、合格。ただしC>75の場合は補欠」 どうしても補欠のところが上手く出来ません。 自分なりに考えて作った式で、補欠のところ以外でできたのは IF(B2>=70,IF(C2>=70,IF(D2>=80,"合格","不合格"),"不合格"),"不合格") でしたが、なんだかスマートでないので、もっと良いやり方がありそうな気がします。 また、関数の挿入を使うと何故かIFが全て「+」でつながってしまうのですが(カンマになりません)、どうしてでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Yosha
  • ベストアンサー率59% (172/287)
回答No.2

質問中の説明が不明確なので、以下の質問であるとして回答します。 >「A列が70点以上、かつB列が70点以上、かつC列が80点以上の時、D列には"合格"を、ただしA列が70点以上、かつB列が70点以上、かつC列が75点以上の場合は、D列には"補欠"を、それ以外はD列に"不合格"を入れる。」 簡単で分かり易い式として、D列に =IF(AND(A1>=70,B1>=70,C1>=80),"合格",IF(AND(A1>=70,B1>=70,C1>=75),"補欠","不合格")) を入れる。 点数に小数点を含まない場合は、 =IF(AND(A1>69,B1>69,C1>79),"合格",IF(AND(A1>69,B1>69,C1>74),"補欠","不合格")) とすれば、多少式が短くなります。

nikkoright
質問者

お礼

こんばんは ご回答有難うございます。仰るとおりの条件です、説明が悪くて申し訳ありません…。 なるほど、小数点を含むと含まないとで、式もちょっと違うのですね!ANDはまだ学んでいないのですが、大体分かりました。有難うございます。

その他の回答 (6)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.7

方法はいくつかありますが IF文を使う場合 =IF(AND(A1>70,B1>70,C1>75),IF(C1>80,"合格","補欠"),"不合格") LOOKUP関数を使う場合 =LOOKUP((A1>70)*(B1>70)*C1,{0,75,80},{"不合格","補欠","合格"}) CHOOSE関数を使う場合 =CHOOSE((A1>70)*(B1>70)*((C1>80+C1>75))+1,"不合格","補欠","合格")

nikkoright
質問者

お礼

こんばんは IFで一杯いっぱいなので…知らない関数が出てきました~(涙)という感じです。 もう少し勉強したら解る様になるかしら、頑張ります! 沢山の方に教えていただけて本当に助かりました。

noname#22222
noname#22222
回答No.6

=IF((A1>70)*(B1>70)*(C1>80),"合格",IF((A1>70)*(B1>70)*(C1>75),"補欠","不合格")) と書くことが可能です。 =IF((A1>70)*(B1>70),IF(C1>80, "合格",IF(C1>75,"補欠","不合格")),"不合格") と書くことも可能です。 前者は、No2さんの式と同じです。 後者は、NO3さんの式と同じです。

nikkoright
質問者

お礼

こんばんは アドバイス有難うございます ANDでなくても*で表せるのですね。勉強になりました! 有難うございます。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.5

>ただしC>75の場合は補欠 この条件が曖昧ですね A,Bの値に拘わらず、C>75の場合は補欠 =IF(AND(A1>=70,B1>=70,C1>=80),"合格",IF(C1>=75,"補欠","不合格")) A>70かつB>70かつ、80>C>75の場合は補欠 =IF(AND(A1>=70,B1>=70,),IF(C1>=80,"合格",IF(C1>=75,"補欠","不合格")),"不合格") 但し、条件と式では「 = 」の有無で違いがありますね ご自身で訂正下さい

nikkoright
質問者

お礼

こんばんは アドバイス有難うございます 説明がおかしくて、皆様にご迷惑をかけ、申し訳ないです。やりたいのは後者のほうです。そして「>」ではなく「>=」が正しいです。 そういうわけで後者は答えが合いました。でも、ANDの後、どうしてIFが入るのか分からないのです。うーん、勉強しないと…。

回答No.4

こんなのではいかがですかね… =IF(OR(A<=70,B<=70,C<=75),"不合格",IF(C<=80,"補欠","合格"))

nikkoright
質問者

お礼

こんばんは アドバイス有難うございます。 逆転の発想、ですか?ORもまだ学習していなくて、よく分かりませんが、エラーが出てきてしまいました。でも何がエラーなのか、分かりませんでした…(泣)勉強します。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ =IF(AND(A1>=70,B1>=70),IF(C1>=80,"合格",IF(C1>=75,"補欠","不合格")),"不合格")

nikkoright
質問者

お礼

こんばんは ご回答有難うございます。 確かに入れてみたら正しい答えになりました…が、IF(C1>=80だけANDの外に出すのが良く分かりません。もっと勉強します…。

回答No.1

A,B,Cの全てが基準を超えたときだけ合格と解釈しましたので, こんな式はどうでしょうか。 AがA1,BがB1,CがC1に入力されており,D1に式を入れるとします。 =IF(AND(A1>70,B1>70,C1>80),"合格",IF(C1>75,"補欠","不合格")) 解釈があっているとすれば,これでいいと思いますが,なぜこれで いいかは,自分で勉強してみてくださいね。 ヒント:「かつ」は通常入れ子にしません。 もう一つのご質問については,現象が確認できず,よくわかりません。

nikkoright
質問者

お礼

こんばんは 早速ご回答いただき有難うございます。 ちょっと説明が悪くて申し訳ありません。補欠になる条件はAもBも70より大きく、Cが75より大きい場合なので、教えていただいた式だとCが75より大きければAやBはどんな数でも良い、ということになりますよね…? 実はまだANDの使い方については学習しておらず、全く分からないのですが、勉強して色々な式に対応できるようになりたいと思います。

関連するQ&A