• ベストアンサー

エクセルの関数で

よろしくお願いします。 例えばエクセルで、成績を管理しているとします。 4月の点数が90点以上の人を「優秀」、5月の点数が80点以上の人を「合格」それ以外の人を「再試験」と表したい場合どのようにすればよいのですか? 私の勉強不足で、IF関数では2つまでしか表示できないし、AND関数では言葉を自由に変えることができません。 どなたか御教授お願い致します。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

=IF(A1>=90,"優秀",IF(A1>=80,"合格","再試験"))

ichigo2007
質問者

お礼

回答ありがとうございます。 上の数式バーにこの式になるように論理式に打ち込んだところ、正しくありませんとの表示が出てしまうのですが、何がいけないのでしょうか? まず、IF関数を選択すると、論理式、真の場合、偽の場合という欄が出ます。数式バーを見ますと=IF()がすでに入力されているので一番上の論理式のところには、回答者様が書いてくださったので言うところのA1・・・・・・"再試験")までを入力すると数式バーのところが書いてくださったのと同じ式になります。これでOKを押すと、正しくありませんとでてしまうのです。

ichigo2007
質問者

補足

出来ました。ありがとうございました。 No5さんの補足欄にて皆様へのお礼させていただきます。

その他の回答 (4)

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

1.IF文のネストにする =IF(B2>=90,"優秀",IF(B2>=80,"合格","再試験")) 2.LOOKUP等の参照関数を使う =LOOKUP(B2,{0,80,90},{"再試験","合格","優秀"}) {}の部分は 0 再試験 80 合格 90 優秀 と別のセルに書き込んでセル参照でも可 3.CHOOSE関数を使う =CHOOSE(B2/10+1,"再試験","再試験","再試験","再試験","再試験","再試験","再試験","再試験","合格","優秀") ※CHOOSE(数式,1の時の結果,2の時の結果,.....,29の時の結果)で 数式の結果が1~29の間になるように操作すれば29個の結果に割り振りできます。

ichigo2007
質問者

お礼

回答ありがとうございます。 色々な方法があるのですね。たくさん教えてくださってありがとうございます。今回はIF関数でやってみたいと思っています。 論理式に上記の式を入れたら、真のとき、偽のときの欄には何も入れなくて良いのでしょうか?式を入れた時点ですでに正しくありませんと表示が出てしまいます。

ichigo2007
質問者

補足

この場を借りて皆様に御礼したいと思います。 皆様のおかげで出来ました。ありがとうございます。 呼び出した関数の論理式の中で色々やっていたのが悪かったようです。 数式バーを直接編集したら出来ました。 本当にありがとうございます。 皆さんにポイントを付けたいのですが、システム上そういうわけにいきませんので、後の方には大変申し訳ないのですが、先に回答くださったお二方にポイントを付与させていただきます。皆さんに感謝しています。また質問させていただくことがあるかもしれませんが、そのときはよろしくお願いいたします。

  • suekun
  • ベストアンサー率25% (369/1454)
回答No.4

関数にはネストという機能があります。 関数の中に関数を入れる。って考えです。 但し、階層は7段までですが、関数の引数に関数を使う事ができるのです。 じゃー今回は場合はどうするか? IFで条件分岐して、正しいならその文字を入れる。 正しくなければ、もう一度IFで判定する。 IF(倫理式、真実の値、偽りの値) この偽りの値の部分に入れましょう。 IF(論理式、真実の値、IF(論理式、真実の値、偽りの値)) これで最初の偽りの値の部分にもう一度判断させる事ができます。 IF(90点以上、優秀、IF(80点以上、合格、再試験)) となるわけです。 あとは実際に式を組んでみてください。

ichigo2007
質問者

お礼

回答ありがとうございます No1,2さんと同じということでいいのでしょうか? 何度か試してるんですが、どうしても正しくありませんと出てしまうんです。皆さんお答え下さって、正しい答えだと思いますので、もう少し挑戦してみようと思います。

回答No.3

出来れば4月と5月がどのような行列で整理しているのですか? それとも全て4月ですか? たとえばA列に4月の成績があって結果を載せたい列にこの関数を貼り付ければできるかも? =IF(A3>=80,IF(A3>=90,"秀","合格"),"不合格") A3とかはそのデータの列行です。

ichigo2007
質問者

お礼

回答ありがとうございます。     A   B            4月  5月   1 鈴木   95   85   2 佐藤   80   70 3 高田   85   85 という風な感じになってます。 どうもうまくいきません。

ichigo2007
質問者

補足

ちょとずれちゃいましたね、すみません。 No2さんに書いたように書きたかったのですが^^; この場合だと、5月の上にCがある感じです。

回答No.2

関数のネスト(積み重ね)が必要ですね。 IFを2回使うのです。   =IF(A1>=90,"優秀",     IF(A1>=80,"合格","再試験")   ) 詳しくは下記のアドレスも参考にして下さい。

参考URL:
http://kokoro.kir.jp/excel/if-if.html
ichigo2007
質問者

お礼

回答ありがとうございます。1の方のお礼に書いたのですが、やり方が悪いのか「正しくありません」との表示が出てしまいます。 あと、回答くださった皆さん一度目のIFと2度目のIFの後はA1など、同じセルを選択するようになってますが、4月と5月なのでA1、B1のようになっていいんですよね?大雑把な例ですけどこんな感じです。         A   B            4月  5月   1 鈴木   95   85   2 佐藤   80   70 3 高田   85   85

関連するQ&A

専門家に質問してみよう