• 締切済み

エクセルのIF関数の使い方について

 こんにちわ。仕事で成績の評価表の作成をしたくて、エクセルで表を作成しました。    表は、  Aのセル・・・氏名 Bのセル・・・テストの点数 Cのセルが平常点          Dのセル・・・BとCのセルを合計した合計点数          Eのセル・・・成績評価  Fのセル・・・合計点数による順位    という表を作成しました。    Eのセルに Dのセルの合計点数を基準として 5段階の評価をつけたい。    条件が、 85点以上が5、60点以上が4、50点以上が3、35以上が2、1~34点までが1    =IF の関数 =IF(論理式、真の場合、偽の場合) というのを使用すればいいのは   わかったんですが、いまいち関数式の取り方、書き方がわからなくて・・・本をみて記入して   みたんですがエラーになります。   どうしたら評価を自動転記することができるか、教えてください。   また点数をもとに順位をつける方法も教えて欲しいです。よろしくお願いします。

みんなの回答

  • malaytrace
  • ベストアンサー率33% (349/1027)
回答No.4

こういう場合はvlookup関数を使う方が便利ですし、修正も容易です。 別のシートでもいいし、空いた部分でもいいですから、点数と評価の表をつくります。 左列にその評価となる最低点を昇順(小さい方から)、右列に評価に並べます。 別のシートに作成したとします。   A  B 1  0  1 2  35  2 3  50  3 4  60  4 5  85  5 でE1のセルに、 =vlookup(d1,シート名!$A$1:$B$5,2,true) と入力します。 これで、「d1の値を「シート名!」のシートのA1:B5の範囲の左端列から探し、みつかった行の左端から数えて2列目の値を返しなさい。ただし値が見つからない時はその値を超えない最大値(小さい方の最も近い値)で代用し、同様にみつかった行の左端から数えて2列目の値を返しなさい。」ということになります。昇順に並べていないとややこしいことになるらしいので注意しましょう。検索範囲は行列とも$をつけて(絶対参照にする)おかないとコピーした時にずれていきますので忘れずに。 あとこれをE2,E3とコピーして行けばいいです。

  • no-good
  • ベストアンサー率35% (21/59)
回答No.3

    A   B   C   D   E  F  1 佐藤  45  45  90  5  1  2 鈴木  25  15  40  2  3  3 黒沢  30  35  65  4  2  こういうことでしょうか?  そして、質問は  ・E列を D列をもとに IFで評価付けをしたい。  ・F列を D列をもとに 順位付けをしたい。  まず、E1。  =IF(D1>=85,5,IF(D1>=60,4,IF(D1>=50,3,IF(D1>=35,2,IF(34>=D1>=1,1,"")))))  そして、F1。  =RANK(D1,$D$1:$D$3,0)  こんな感じで、いかがでしょうか?

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

あぁ、ゴメンナサイ、誤記ました。 見ればわかったと思いますが、考えなしにコピーして出来ないご相談も多いので、書き直します。 訂正: まぁふつーにIF関数を使うと =IF(D2=0,"",IF(D2<35,1,IF(D2<50,2,IF(D2<60,3,IF(D2<85,4,5))))) といった具合に、「端から順に削っていく」ように関数を重ねていきます。 もうちょっとアイデアを働かせると、 =IF(D2=0,"",IF(D2>=1,1)+IF(D2>=35,1)+IF(D2>=50,1)+IF(D2>=60,1)+IF(D2>=85,1)) これをもっと簡略化すると =IF(D2=0,"",(D2>=1)+(D2>=35)+(D2>=50)+(D2>=60)+(D2>=85)) みたいにして計算することもできます。 失礼しました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

やりようは色々あります。 E2: =IF(D2=0,"",MATCH(D2,{1,35,50,60,85},1)) なんて方法もあります。 まぁふつーにIF関数を使うと =IF(D2=0,"",IF(E2<35,1,IF(E2<50,2,IF(E2<60,3,IF(E2<85,4,5))))) といった具合に、「端から順に削っていく」ように関数を重ねていきます。 もうちょっとアイデアを働かせると、 =IF(D2=0,"",IF(E2>=1,1)+IF(E2>=35,1)+IF(E2>=50,1)+IF(E2>=60,1)+IF(E2>=85,1)) これをもっと簡略化すると =IF(D2=0,"",(E2>=1)+(E2>=35)+(E2>=50)+(E2>=60)+(E2>=85)) みたいにして計算することもできます。 >順位 fxウィザードで「順位」と問い合わせてみると F2: =RANK(D2,D:D) などのようにしたらどうですかと関数を教えてくれます。

関連するQ&A