• ベストアンサー

エクセル関数について教えてください。

エクセル関数について教えてください。 例:ロードレース大会の順位によって5段階の評価を自動的につけたいんですが・・・ 1位:Aさん・・・10位:Bさん・・・36位:Cさん・・・ を上位から評価をつける(5段階) 評価5:10%  評価4:30%  評価3:50%  評価2:10% 総人数から1位から何位までは「5」、何位までが「4」というように自動的に入るようにしたいんですが、わかる方教えてください。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.4

#1です。 #3に書いた「#2です」は「#1」の間違いです。mshr1962さんゴメンナサイ・ さて、#1の補足に対してですが、 > この表の数値になる意味 VLOOKUPの特性と関連しているので、以下の方で解説します。 > 何故、(55-1)になるのか?とか・・・ 「データが2行目から55行目に入っているとして」と断り書きをいれたはずですが、 全参加人員の数を出したかったので「55-1」としましたが、 #3でも言及したように、不定な(毎回変わる)数値はキメ打ちすべきでは無かったです。 COUNTIF等を使って、その都度自動的に分母(参加人数)を算定すべきでしょう。 > =VLOOKUP(INT(RANK(B2,$B$2:$$B55,1)*100/(55-1)),Sheet2!$A$1:$B$5,2,TRUE) > この数式の意味を教えてもらえたら助かるんですが・・・ これも、#3で言及したようにRANK関数の部部は不要で、かつ計算式がうまくないです。 そこで書き直すと、 =VLOOKUP(ROUNDUP(B2*100/(55-1),0),Sheet2!$A$1:$B$5,2,TRUE) となります。 要は、上位10%の順位に対して「5の評価」をしたいわけです。 棄権、失格等が無く100人の参加者があったとして、 1位~10位が10%以内で、評価5 11位~40位が30%(10%超~40%)で、評価4 41位~90位が50%(40%超~90%)で、評価3 91位~100位が10%(90%超~100%)で、評価2 「評価1」はないので、#3で言及したように#1で示したものはうまくないのです。 Sheet2    A   B 1  0   5 2  10.1  4 3  40.1   3 4  90.1   2 5  100.1   1 とすれば一応うまくいきます、※100.1に対する「1」はダミーです。 VLOOKUPの特性として、検索範囲の中に見つからなかった場合、 この例ではA列のなかで見つからないと、検索値より小さい最大数にポイントされます。 5%なら0、15%なら10.1、94%なら90.1がポイントされ、VLOOKUPの結果はそれぞれ、評価5と評価4と評価2が返されます。 ROUNDUP関数によって、検索値は必ず整数ですから、10.1や40.1がポイントされること決して無く、 必ずそれ以下の部分がポイントされます。 チェックの表に10や40を設定してしまうと、 Sheet2    A   B 1  0   5 2  10   5 3  10.1  4 4  40   4 5  40.1  3 6  90   2 7  90.1  2 8  100.1  1 と無駄な行を設定しなくてはならなくなります。

oxin
質問者

お礼

どうもありがとうございました! 丁寧に教えていただいてとても感謝しています。 ついでで申し訳ありませんが・・・ 1  日本A夫 男 2  日本B子 女 3  日本C子 女 4  日本D夫 男 5  日本E子 女 6  日本F夫 男 このような名簿を作ったときに、別のシートに”男女別”に、しかも”自動的”に振り分けられていく設定ってあるんでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

noname#79209
noname#79209
回答No.7

#1です。 やはり教職関係の方でしたか。 実は家内がこの質問への回答を書くところを横から見ていて、 「何だか、学校の通信簿の評価みたい。」 「やっぱり、未だにパーセンテージで評価分けをしているのかしらね。」 と言っていました。 やっぱり女性の「カン」はコワイです。 それはそうと、エクセルの関数専用の参考書(VBAと書いてないモノ)を入手され、 拾い読みでも構わないので、日頃から目を通すことをおすすめします。 そして、その関数の具体的な使い方より、どんな結果が得られるかをを考えながら読むことです。 例えば、MODと言う関数は、割り算の余りを出すための関数です。 MOD(9,4)は「9÷4」の余りである「1」が算出できます。 しかし、「MOD関数は、割り算の余りを出す関数」とだけ憶えてしまうと、 ある数値から一の位を抜き出すのに「MOD(A1,10)」が使えるという発想が出てきません。 このように、関数のエフェクトをグローバルな視点で見ながら習得していくことをお勧めします。

oxin
質問者

お礼

一応、誤解の無いように申し上げておきますが、今やろうとしていることは、最終的な評定を出すための1つの材料とするものです。 現在は、『絶対評価』になっていますので、あくまでも通信簿は、一人一人の「伸び」を評価して5段階の評定を出します。 ですから、運動の苦手な子は成績が悪くなるというものではないことは理解してください。 ただ、保護者や子どもからの、成績に関する苦情もあったりするので、数値できちんと示せれば、説明責任を果たせるのかなということです。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.6

追加質問、特にこの場合は別の質問になるので、 他の質問者諸氏が同様の悩みで解法を探す際に探せなくなるので、 できれば新規の質問にしていただきたいです。 そうすれば、この質問に関係した回答者だけでなく、 より多くの回答者諸氏の目に止まって、よい回答が得られるチャンスが増えます。 自動でといわれていますが、まずは手動の方法。 オートフィルタを掛けて、男女それぞれを抽出したうえで データのある行を全てコピぺするという手があります。 でもオートフィルタで男女に分けて表示できるのですから、 わざわざ別シートに貼り付ける必要はないのでは? ああ、競技なので 男子の部、女子の部があるので、 RANKが一緒になると困るのですね。 となるとその後は年齢の別に分けたいという要求が有るのでは? やりたいことは、今はまだやらなくても、全体の構想をお話しいただいたほうが、 手戻りにならなくて済みます。 私は個人でSEのまねごとを仕事としていますが、クライアントには常に 「今はやらなくても、構想は全て話してください」とお願いしています。 そうでないと、「あ、それもやりたかったのなら、ここはこうしておいたのに」 と言うことになってしまいます。

oxin
質問者

お礼

こういったサイトを使うのは初めてだったんですが、アドバイスありがとうございました。 実は、私、教員をしておりまして、生徒の成績処理のためにこのようなことを始めました。 まずは、新規で質問をしてみます。 たくさんの回答、本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.5

#1です。ゴメンナサイ、#4の最後に記載ミスがありました。 =======ここから====== チェックの表に10や40を設定してしまうと、 Sheet2    A   B 1  0   5 2  10   5 3  10.1  4 4  40   4 5  40.1  3 6  90   3 ←「2」になっていました。 7  90.1  2 8  100   2 ← 追加 9  100.1  1 ← 行番号変更 と無駄な行を設定しなくてはならなくなります。 =======ここまで======= 解らないことがあれば、補足で質問してください。

全文を見る
すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.3

#2です。ゴメンナサイ。私の方式はうまくないです。 また、既に順位がでているのでRANK関数は不要でしたね。 ただ、質問者さんが言われている評価基準が解らなくなりました。 参加者が充分多ければいいのですが、 10人未満だと、評価の基となる正しいパーセンテージ得られません。 さらに、ロードレースなので開催毎にエントリー人数が異なるでしょうから、 分母をキメ打ち(55-1などと)するのはマズイですね。 また、棄権、失格、不参加(参加登録をはしたが来なかった...棄権扱い?)をどこにどう入力するのか。 「0:00:00」と入力するのか、タイムを入力しない(ブランクのまま)のか、その旨(棄権、失格などと)を入力するのかで、 後の計算式が微妙に異なって来ます。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

全体人数がわかればそれで比率が出せるのでは? たとえば50人なら、 01~05 評価5 06~20 評価4 21~45 評価3 46~50 評価2 ですよね。 =LOOKUP(順位/COUNTA(順位の範囲),{0,0.11,0.41,0.91},{5,4,3,2}) でできると思います。

oxin
質問者

お礼

回答、どうもありがとうございました。 さっそく試してみます。 今、エクセルの関数について勉強しているところです。 また何かの時にお世話になるかもしれませんが、よろしくお願いします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.1

A2~A55に名前、B2~B55に成績があったとして、 =RANK(B2,$B$2:$$B55,1) で順位が得られます。 =INT(RANK(B2,$B$2:$$B55,1)*100/(55-1)) で整数化したパーセントが得られます。 別シートか別エリアに(ここではSheet2とします) Sheet2    A   B 1  0   5 2  10.1  4 3  30.1   3 4  50.1   2 5  90.1   1 で =VLOOKUP(INT(RANK(B2,$B$2:$$B55,1)*100/(55-1)),Sheet2!$A$1:$B$5,2,TRUE) とすれば可能かと...

oxin
質問者

お礼

回答、どうもありがとうございました。 さっそく試してみます。 今、エクセルの関数について勉強しているところです。 また何かの時にお世話になるかもしれませんが、よろしくお願いします。 ありがとうございました。

oxin
質問者

補足

たびたびすみません・・・   A    B 1  0    5 2  10.1   4 3  30.1   3 4  50.1   2 5  90.1   1 この表の数値になる意味と =VLOOKUP(INT(RANK(B2,$B$2:$$B55,1)*100/(55-1)),Sheet2!$A$1:$B$5,2,TRUE) この数式の意味を教えてもらえたら助かるんですが・・・ 何故、(55-1)になるのか?とか・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで順位をつける関数教えてください

    エクセルで4つのデータの順位をつける方法(関数)を教えてくだい。 0~+域が上位で、-域は0に近いほうが上位にしたい。 例:データ             →  順位がこうなる  A    B    C    D    A   B  C  D -36  -26  -16   6     4  3  2  1 -16   0    6   16     4  3  2  1

  • エクセル 自動並び替え

    エクセルでサッカーの試合結果を計算してるのですが順位の上位順に自動的に並べ替えたいのですがどのようにすればよいのでしょうか? できればシート1に入力すれば自動的にシート2にランク順に記入できればいいのですが 例 シート1 チーム名 順位  ・・・・・  A   3位  ・・・・・  B   1位  ・・・・・  C   2位  ・・・・・ シート2 順位  チーム名 ・・・・・ 1位   A   ・・・・・ 2位   B   ・・・・・ 3位   C   ・・・・・

  • 困り度★★★エクセルの関数(文字)がさっぱりわかりません。

    こんばんは。 Windows2000, Office2000を使って仕事しています。 エクセルで、成績表をつけます。 A・B・C・Dの評価が4つあって、その結果をどうするかの計算式が、さっぱりわかりません。 例えば、太郎さんは、A・B・A・Aの評価のため、総評価はAです。 次郎さんは、A・B・C・Bの評価で総評価がBといった具合なんだけど、それをエクセルの表で自動計算したいのですね・・・・・。 実は、同僚から聞かれたんで、詳しい成績評価基準なんかはわからないんですが・・・ マニュアルと首っ引きで調べましたが、そのなかのどの関数もあてはまりません。 どんな関数で処理すればいいのでしょう??? アドバイスお願いします。

  • エクセルの関数について

    エクセルの関数について教えて下さい。 氏名  1回目 順位 2回目 順位 Aさん 50点  1位  25点  2位 Bさん 45点  2位  30点  1位 Cさん 40点  3位  35点  4位 Eさん 35点  4位  40点  3位 Fさん 30点  5位  45点  6位 Gさん 25点  6位  50点  5位 最初の1回目の成績により、右にランク関数で順位が出ます。 次に上位2人・中位2人・下位2人で三つのグループを作り、 2回目の結果で上位→中位→下位グループの順番で総合順位を 出す方法を教えて下さい。

  • エクセルのランク関数について

    エクセルの関数についてぜひとも教えて下さい。 氏名  1回目 順位 2回目 順位 Aさん 50点  1位  25点  2位 Bさん 45点  2位  30点  1位 Cさん 40点  3位  35点  4位 Dさん 35点  4位  40点  3位 最初の1回目の成績で右に順位が出ます。 次に上位2人・下位2人で二つのグループを作り、2回目の結果で 上位グループ→下位グループの順番で順位を出す方法を教えて下さい。

  • エクセルの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(論理式、真の場合、偽の場合) というのを使用すればいいのは   わかったんですが、いまいち関数式の取り方、書き方がわからなくて・・・本をみて記入して   みたんですがエラーになります。   どうしたら評価を自動転記することができるか、教えてください。   また点数をもとに順位をつける方法も教えて欲しいです。よろしくお願いします。

  • エクセルの関数を教えてください

    至急どなたか教えてください。 エクセルでどういう計算方法を入れれば いいのか伝授ください。 評価としてA、B、Cの3種類が あり、それぞれAは売上の0.75がけを する、Bは売上の0.4がけ、Cは0.1がけ をする表を作ります。 列A B C D・・・・ 1A 180 135(=B1*0.75) 2B 200 80(=B2*0.4) 3 ・ ↑本来はこのような形で計算式を 入れればいいと思うのですが、 A列に入れてる評価を今はAでも 後でBに変更した場合、直接また 計算式を入れるというのではなく、 自動にBを入れたらC列のところも 計算式が0.4で計算されるようになる という関数はありますでしょうか? Aだったらこう、Bだったらこう、Cが 入ったらこうというような計算式を一度に セルに入れておきたいんですが。

  • ExcelのRANK関数で。

    こんにちは。宜しくお願い致します。 ゲームの得点を集計するフォームをエクセルで作成しているのですが、 もしも同点のものがあった場合は、順位をより上のセルに入力されているものが上位になるように設定したいのです。 例) B列(得点)  C列(順位) 10       2 20       1 10       3 10       4 と、このような形にしたいのです。 今現在、RANK関数を使用して作成していたのですが、同点の場合に不都合があることに気が付いて、その解決方法がわかりません。 もっとほかの関数を使うべきなのでしょうか? どなたか教えてください。宜しくお願い致します。

  • エクセル関数について教えてください。

    エクセル関数について教えてください。 受取手形の集計をしたいのですが。。 例えば A社 100 B社 200 A社 300 C社 400 C社 500 と以下収受した順でエクセルに打ち込んでいます。 大体月で100枚前後あるのですが、そこで数枚あるA社C社は合計して、且つ金額の上位順でならべたいのですが関数を使ってできますか? この様に表示させたいです。 C社 900 A社 400 B社 200 ・ ・ ・ 宜しくお願いします。

  • エクセルで4つのデータの順位をつける方法(関数)を教えてくだい

    エクセルで4つのデータの順位をつける方法(関数)を教えてくだい。 0~+域が上位で、-域は0に近いほうが上位にしたい。 例:データ             →  順位がこうなる  A    D    F    G    A   D  F  G -36  -26  -16   6     4  3  2  1 -16   0    6   16     4  3  2  1 データのセルは飛び飛びです。 具体的にお願いします。素人です。

専門家に質問してみよう