• ベストアンサー

エクセルでの順位の並び替えについて

現在以下のような表があります。 順  位  1  2  4  2 点数合計 15  10  8  10 内  訳  (省略) 名  前 A氏 B氏 C氏 D氏 (内訳を入れると合計点数及び順位がでる) これを 順位  名前 1位  A氏 2位  B氏 2位  D氏 4位  C氏 という表に並びなおしたいのですが どのようにしたらよろしいでしょうか 現在は 順位  名前 1位  A氏 2位  B氏 3位  #N/A 4位  C氏 となってしまっております。 当方いろいろ調べつつがんばって表作っておりますが ど素人のため意味もわからず作っております。 初めての質問ですのでいろいろとご迷惑をおかけするかもしれませんがなんとか教えていただけますようよろしくお願いいたします。

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

  • ベストアンサー
  • odessa7
  • ベストアンサー率52% (101/192)
回答No.2

 例えば以下の方法はいかがでしょうか?  順位行と点数合計行の間に作業セルを挿入します。 順位 ・・・ 作業 ★→ 点数 ・・・ ★ =COLUMN()*0.001+A1 ←この関数を入れて行の終わりまでコピー&ペースト  次に表示させる側にも作業セルを挿入します。表示させる部分は仮にA10セル~B14セルとします。    A  B 10 順位 名前 11 ☆1 ☆2 ・ ・ 14 ☆1 =OFFSET($A$1,0,MATCH(B10,A$4:D$4)-1) ☆2 =HLOOKUP(SMALL($A$2:$D$2,ROW()-9),$A$2:$D$4,3,FALSE) この関数をコピー&ペースト  範囲は適宜広げてください。  また不明な点はお尋ねください。  ご参考まで。

tomo3210
質問者

お礼

ありがとうございました。 データに重みをつけるということがあるんですね^^ 目からうろこでした^^ ありがとうございました。

その他の回答 (4)

  • haccyan
  • ベストアンサー率43% (27/62)
回答No.5

おはようございます。 まず質問内容から、 同率順位に対応した、横並びの形で順位が出ている。 これをタテ並びで、上から順位どおりに並べ替えたい。 という問題として考えてみます。 まず、表の行列の入れ替えを行います。 表全体をコピー→別シートの適当な場所を選択し、 →右クリックメニューの[形式を選択した貼り付け]から、 貼り付け方法を[値(V)]、演算は[しない(O)]とし、 [行列を入れ替える(E)]をチェックして[OK] これでタテ並びの表に変換されて貼り付けられたはずです。 (ただしこの場合、関数などの数式は破棄されて見た目そのままが残った状態となります) 次に、順位通りに並べ替えます。 並べ替えるデータのどこか一部を選択した状態で [データ]の[並べ替え]を選び、[最優先されるキー]に順位列を指定して、 [昇順]と、範囲の先頭行の[タイトル行]をチェックして[OK] 以上で目的の状態になります。

tomo3210
質問者

お礼

ありがとうございました。 今回は重みをつけるという方法でやってみました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

作業列を1列使いますが、(どこでも良いが下記例ではE列を使った) バッチ的作業でよいものとする(出来上がったデータだけを対象にする、列増加に即時反映しないでよい、作業をやり直しでよいとする)。 ーーー 例データ A1:E4 順位 1 2 4 2 点数合計 15 10 8 10 名前 A氏 B氏 C氏 D氏 ーーーー A1:E4を範囲指定して、編集-コピー どこでも良いが、たとえばA11をポイント 編集ー形式を選択して貼り付けー行列を入れ替える。 ーーーーー 結果 A11:D15 順位 点数合計 名前 1 15 A氏 2 10 B氏 4 8 C氏 2 10 D氏 ーーーー E12に =COUNTIF($A$11:A13,A12) をいれ、E15まで式を複写。 E12:E15は 1 1 1 2 となる。 ーーーーーー A12:E15を範囲指定して、並べ替えする。 ソートキーは第1キーはA列、第2キーはE列。 結果 A11:E15 順位 点数合計 名前 1 15 A氏 1 2 10 B氏 1 2 10 D氏 2 4 8 C氏 1

tomo3210
質問者

お礼

ありがとうございました。 今回は下記のデータに重方法を取り入れてみました。

  • onntao
  • ベストアンサー率32% (108/332)
回答No.3

点数合計に対する順位が自動表示されているなら、そこには当然関数が入っていると思いますが、それを 順位  名前 1位  A氏 2位  B氏 2位  D氏 4位  C氏 のように並び替えたということですが、同率2位の存在を無視してしまうと、ないはずの3位が関数によって検索されているであろう氏名は これまた当然、見つかりませんというエラーの#N/Aがでます 並び替え結果と希望される 順位  名前 1位  A氏 2位  B氏 2位  D氏 4位  C氏 の順位を、同率順位があっても対応できるよう、やはり関数にて取得した方がよく、その手法は”重み付け”と俗に呼ばれるものを勉強するとよいでしょう。 尚今回の場合は +ROW()/1000というより +COLUMN()/1000というパターンでしょうが、同じことですね

参考URL:
http://excite.okwave.jp/kotaeru.php3?q=1490728
tomo3210
質問者

お礼

ありがとうございました。 データに重みをつけるということがあるんですね^^ 目からうろこでした^^ ありがとうございました。

  • rupo
  • ベストアンサー率14% (7/50)
回答No.1

ゴミレス覚悟で書きます。 私の経験で言えばありうるのは計算式が ソートをかけたときにずれてしまった可能性です。 ソートをかけるときの範囲指定が間違っていると ありえます。 次に、 > 2位  B氏 > 3位  #N/A とのことですが、これは試しに故意に点数合計の D氏の数字を書き換えたりすると、 表示が直ったりしますか? 後は恐らく関数が組み込まれた表になってるのだと 思いますので、組み込まれた関数の計算式をいじることに なると思います。 詳しい方のコメントを待つことにしましょう。 いじる時はもともとのファイルは バックアップして残しておきましょう。

tomo3210
質問者

補足

早速の回答ありがとうございます。 #N/Aはもとのデータに3位がないためにおきているようです。 同点も同じ2位と表示で切ればいいのですが・・ ちなみに新しい表のほうは1位2位・・・手打ちになっています。 できればこれも関数にしたいのですが・・

関連するQ&A

  • エクセルの並べ替えについておねがいします。

    名前 点数1 点数2 合計 点数1順位 点数2順位 総合順位 A  20  20  40   3     2     2 B  30  10  30   2     3     3 C  40  30  70   1     1     1 のような表があります。 総合順位順に並べ替えて別シートに表示したいのですが、 順位  名前 合計 1   C  70 2   A  40 (このように)    どうしたらいいでしょうか。 ちなみに点数1、2、合計も 表示できれば幸いです。 あと、別件で、「#N/A」とはどんなエラーメッセージなんでしょう? 表示させないようにするにはどうしたらいいですか。 宜しくお願いします。 

  • エクセルで同率の順位の人が表示されない

    得点表を元に順位(RANK関数)を出し名前順の表にして、 その順位表を元にVLOOKUP関数で順位順の表を作ってます。 この場合、順位順の表では同順位の人がいた場合、同順位2人目以降の人の名前が表示されません(#N/Aと表示されます) 同位の人も名前と得点をそのまま表示させたいのですが、何か方法は有りませんか? 現在↓ 1位 Aさん 10点 2位 Bさん  9点 3位  #N/A  #N/A 4位 Dさん  8点     ・     ・ となります。それを 1位 Aさん 10点 2位 Bさん  9点 3位 Cさん  9点 4位 Dさん  8点 としたいです。 左の順位表記は書きこんでいるだけなので変化しません。もちろん順位に連動して変化してほしいですが、このままでも構いません。 Aさん・Bさんの各セルに=VLOOKUP(Q5,$U$4:$V$21,2,FALSE)のように設定しています。 ずいぶん前に本を見ながら設定したもので、理屈は忘れてます・・エクセル2000です。

  • エクセルで順位表

    エクセルをつかった成績の順位表の関数についておしえてください   数学(点)   英語(点)   合計(点)   順位 Aさん   1      2      3       6 Bさん   2      4      6       4 Cさん   5      5       10      2 Dさん   6       7      13      1 Eさん   4      0      4      5 Fさん   6      4      10      2 ひとまず上記のような表をつくったのですが、さらに下記のような順位表をつくりたいのです。 1位 Dさん 2位 Cさん    Fさん 4位 Bさん 5位 Eさん 6位 Aさん ここで問題なのが同じ点数がある場合が多いので、どう表示させるべきかもよくわかりません。よろしくおねがいします

  • エクセル 順位

    番号 名前  1試合  2試合  3試合 合計ポイント 1    A    10    20           30 2    B     5    15           20 3    C    20    20           40 4    D     0     5            5 5    E    30    30           60 1試合と2試合の合計ポイントは足算出来るのですが 試合のポイントに点数を入れると 順位で入れ変わるようにしたいのですけど こんな感じです↓ 順位 番号  名前  1試合  2試合  3試合 合計ポイント 1位  5    E     30    30         60  2位  3    C     20    20         40 3位  1    A     10    20         30 4位  2    B      5    15         20 5位  4    D      0     5          5 どうしたらいいのか解らず 皆様にいい方法を教えて頂きたいです。 何卒、宜しくお願い致します。

  • Excelで順位をつけたい

     お世話になります。よろしくお願いいたします。    エクセルでの順位の付け方です。  例えば、  国語、数学の2教科のテストの結果で順位をつけるとします。     列A  列B   列C   列D 行1      国語   数学  合計点 行2  A君  40    60   100 行3  B君  50    50   100 行4  C君  60    40   100  上記のような結果の時に普通に「RANK」を使うと、3人全員が「一位」になりますが、  合計点が同じ場合は、国語の点数が良い者から、「一位・二位・三位」になるようにしたいのです。  したがって、C君が「一位」・B君が「二位」・A君が「三位」になるようにするには、 どのようにすればよろしいですか?お教えください。

  • 計算式教えてください

    エクセル2010 A      B    C     D    E 名前   科目   科目   合計  順位がはいっています。 別の表のB列とC列に1位から5位までの合計点数と名前をいれたいのですがどういう式にすればよいでしょう?合計と順位は関数をいれてあります。 A      B    C      順位   合計   名前

  • 点数順に並び替え???エクセル

    A列に出席番号、B列に名前、C列に点数が入力されています。これにD列に順位をいれて、順位1位、2位、3位と並び替えたいのですがどのようにしたらうまくいきますか?

  • エクセルの順位付けについて

    Sheet1に以下のデータがあります。      項目A 項目B 項目C 項目D 合計   順位 みかん   5   0.22    3    2  10.22    6 りんご   3   1.2    1    3   8.2     3 ばなな   4   2.2    3    1  10.2     5 いちご   1   1.5    2    3   7.5     1 ぶどう   2   1.5    3    1   7.5     1 れもん   3   2.5    1    3   9.5     4 ちなみに、項目A~Dの数値は、パラメータ(ウェイト)を変更する ことによって、変わります。したがって、順位も変わります。 そこで、Shee2では、パラメータを変更するたびに変わる順位順に 出したいのですが、どのようにすればよいでしょうか。 ご教示頂ければ幸いです。 最終形のイメージは以下ののとおりです。 順位      項目A 項目B 項目C 項目D   合計    1  いちご   1   1.5    2    3     7.5  1  ぶどう   2   1.5    3    1     7.5  3  りんご   3   1.2    1    3     8.2  4  れもん   3   2.5    1    3     9.5  5  ばなな   4   2.2    3    1    10.2    6  みかん   5   0.22    3    2    10.22  なお、順位のところは、1、2、3・・・と順番になるケースもあれば 1、2、2、4となるケースもあるかと思っています。 よろしくお願いします。

  • エクセル MATCH関数で検索範囲内に同じ値の検索値が複数ある場合

    MATCH関数で検索範囲内に同じ値の検索値が複数ある場合の処理に悩んでいます。 (Sheet1) A B C D 名称 点数 順位 備考 あああ 80 6 アアア いいい 90 3 イイイ ううう 85 5 ウウウ えええ 90 3 エエエ おおお 80 6 オオオ かかか 70 9 カカカ ききき 80 6 キキキ くくく 60 10 ククク けけけ 100 1 ケケケ こここ 95 2 コココ C2=RANK(B2,B$2:B$11) Sheet1のこの表からSheet2に (Sheet2) 順位 名称 点数 備考 1 けけけ 100 ケケケ 2 こここ 95 コココ 3 いいい 90 イイイ 4 えええ 90 エエエ 5 ううう 85 ウウウ 6 あああ 80 アアア 7 おおお 80 オオオ 8 ききき 80 キキキ 9 かかか 70 カカカ 10 くくく 60 ククク という表を作ろうとして、 (Sheet2) A B C D E 順位 検索 名称 点数 備考 1 9 けけけ 100 ケケケ 2 10 こここ 95 コココ 3 2 いいい 90 イイイ 4 #N/A #N/A #N/A #N/A 5 3 ううう 85 ウウウ 6 1 あああ 80 アアア 7 #N/A #N/A #N/A #N/A 8 #N/A #N/A #N/A #N/A 9 6 かかか 70 カカカ 10 8 くくく 60 ククク B2=MATCH(A2,Sheet1!$C$2:$C$11,0) C2=INDEX(Sheet1!$A$2:$A$11,B2) E2=INDEX(Sheet1!$B$2:$B$11,B2) E2=INDEX(Sheet1!$D$2:$D$11,B2) としたのですが、90点が2人、80点が3人の部分が、#N/Aとなってしまいました。 Sheet1に4,7,8位がないのが原因と言うところまではわかったのですが、このような場合どのように処理すればよいのでしょうか。 Sheet2の同じ点数の順位の表示は、6位6位6位ではなくて、6位7位8位のままで編集したいと考えています。 また、同一順位内での表示順序はどうなってもいいと考えています。 エクセル2003です。 よろしくお願いします。

  • Excel ~順位の条件

      A B C D E F … 1   5 7 2   5 3 3   4 4 上記のような表に順位を付けたいです。 (1)Bの値に順位を付ける (2)Bの値が同じ場合はCの値で順位を付ける 例えばDに表示する場合のどのような関数式になるでしょうか?

専門家に質問してみよう