ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュのIF関数について質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
判定を次を4段階で評価しなさい。欠席日数が全日数の3分の1以下で合計が80点以上のものをA、60点以上のものをB、50点以上のものをC、それ以外をDとする。
これをIF関数を使った式にしたいのですが、わかりません。教えてください。

コメント(14)

問題を丸投げしてませんか?
どんなデータがあって…という説明もないですし。
ご自身でなにかやってみた事とかはないのでしょうか?
あればそこからがスタートになります。
できている部分、わかっている部分があるのに、すべてを質問されて
いるのでしょうか?

IF関数はご存じないのでしょうか?
でしたら、IF関数そのものについてヘルプを見るなり調べることと、
それでも理解できなかったのならその部分について具体的に質問を
するべきかと思いますよ。
IF関数を入れ子にしてやればいいです。

=IF(条件1,"A",IF(条件2,"B",IF(…))
A: 関数の使い方、条件区分とも理解し、数式を入力してみたが思い通りに動かない。
B: 関数の使い方、条件区分とも理解しているが、どう入力したらよいか分からない。
C: 関数の使い方はわかっているが、条件区分の方法がわからない。もしくはその逆。
D: 関数の使い方、条件区分のどちらもわからない。

まずは自分を評価してみてください。


あと、これくらいの問題なら基本的な関数の使い方としても紹介されているんじゃないでしょうか。ググればすぐに見つかると思いますよ。
入れ子がわかりにくい場合は、行を分けて考えると判りやすいですよ。
=IF(条件1,"A",
 IF(条件2,"B",
  IF(…)
 )
)
のように。

IF関数を入れ子にして式を立てたのですが、それだと、欠席日数が全日数の3分の1以下という条件下でA,B,Cを判断しているのではなく、ただテストの合計点でA,B,Cを判定してしまうため、題意より本来Dという判定になるべき、テストの合計は90点、欠席日数半分という場合でもAと判定されてしまいます。

なので、皆さんがくれたヒントとヘルプを元に
=IF(AND(欠席日数の条件式),IF(テストの合計>=80,"A",IF(テストの合計>=60,"B",IF(テストの合計>=50,"C","D"))))
という式をたてましたが、できませんでした。

ANDは必要ないのでしょうか??
IF(条件,真の場合,偽の場合)
となるので、ANDは不要です。

それでダメなら、欠席日数を判定する部分が間違っていると思います。
ABCすべてに欠席日数の条件が必要なら、欠席日数がたりなければ無条件でDですね。
なんかそんな感じで式を組んでみたらどうですか?
もうひとつ、欠席日数の条件を満たさない場合の "D" が必要じゃないですか?
こんばんは、実際に入力しながらやってみました。

これでどうでしょうか?

=IF((欠席日数の条件式),IF(テストの点数>=80,"A",IF(テストの点数>=60,"B",IF(テストの点数>=50,"C","D"))),"D")
みなさんありがとうございます。ANDを使った、

=IF(AND(欠席日数の条件式,テストの合計>=80),"A",IF(AND(欠席日数の条件式,テストの合計>=60),"B",IF(AND(欠席日数の条件式,テストの合計>=50),"C","D")))

でできたのですが、POMM!さんの式

=IF((欠席日数の条件式),IF(テストの点数>=80,"A",IF(テストの点数>=60,"B",IF(テストの点数>=50,"C","D"))),"D")

でもできました。こっちのほうがシンプルでいいですね♪ 

本当にありがとうございます。
3のまっきぃさんのご発言にも関係するのですが、条件が入り組んだ場合を、If関数を使って表現する時には、いきなりエクセルの式を書こうとするのではなく、一旦論理の進め方のフローを書くことをお勧めします。

フローとは、個々の条件に対して、条件を満たす場合満たさない場合、それぞれ次に何をするかを書いたものです。

そもそもそれを描けないことにはエクセルでのif式入力のレベルには到達していない。

フローを描ければ、エクセルの段階で自分が知らなくて教えてほしいものの内容も自ずと明確になります。

上記意見、確かにそうですね。

もともとif関数の式を見てもらえば分かるだろうという前提で私も式のみを書いてしまいまして、失礼しました。

考え方としては、if関数の=if(条件,条件式に該当する,それ以外(条件式に該当しない))という基本の部分を大きな枠から条件ごとに分岐させていったということですね。

 最初IFの条件式で大きなくくりの、
 欠席日数の条件式に該当するもの(真)、それ以外(偽)=D に分岐します。

 次に、条件式に該当するもの(真)のなかでIFを入れ子にし、点数ごとに分岐していくという構造です。
ですので次は80点以上はA(真)とし、それ以外(偽)のところで、さらにIFを入れ子にして点数ごとに条件分けしていきます。

=IF(合計点>=80,A,(それ以外)
                 =IF(合計点>=60,B,(それ以外)
                                 =IF(合計点>=50,C,D)

 と、縦に階層をかいたのでちょとわかりづらいかもしれませんが、(それ以外=偽)のところに下の式が入れ子になるカタチですね。
 で、以下の式となります。

=IF((欠席日数の条件式),IF(テストの点数>=80,"A",IF(テストの点数>=60,"B",IF(テストの点数>=50,"C","D"))),"D")

 基本が2分割の繰り返しなので、ひとつひとつ確認しながらやっていくと単純だと思います。

 
フローを書くことを勧めた八神かかしさん、この問題のフローを改めて自分で書いてみました。そうしたらエクセルレベルのことではなく、日本語解釈のことで疑問が発生。


この条件をその通りに解釈すると、
『いくら100点取っても出席率が条件に満たなければDの評価を得る。』
ってことになるんですね。

現実の世界ではそれもまたヘンな気がしますが、まあこの際どうでもいいっか。
>13
「出席日数が足りなければ何をどうやっても不可」って事は多いと思うんですけどね。
試験の点数が足りないのであれば追試とかって選択肢もありますが、出席不足は問答無用で不可が普通ではないかなと。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。