どなたか教えて下さい。
エクセルで順位表を作りたいのですが、
・1枚目のシートには全成績を
・2枚目のシートに成績上位順に並び替えた形の
順位表を作成したいのですが、簡単な方法ないでしょうか?
各部門別上位10傑といった感じの順位表を作りたいのです。
分かりにくい表現で申し訳ございませんが、ひとつ知恵を
拝借させて頂けないでしょうか?
宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

 私はRANK関数で出した順位に、COUNTIF関数で表示補正を設定し、VLOOKUP関数で一覧表示しいてます。



A~E列を記録欄、F~I列を表示欄とします。シート間でも応用できます。
  A    B    C    D    E    F     G   H   I
1 並順  補正  名前  得点 順位  並順  順位 名前 得点
2  5    0    相川   50  5     1    1  尾崎  90
3  4    0    井上   60  4     2    2  内田  70
4  2    0    内田   70  2     3    2  江藤  70
5  3    1    江藤   70  2     4    4  井上  60
6  1    0    尾崎   90  1     5    5  相川  50

記録欄
 A列はE列:順位とB列:補正値を足した並び順になります。【 例A2:=E2+B2 】
 「内田」と「江藤」は同点2位(3位無し)ですが、並び順はそれぞれ、2番目3番目となります。

 B列は該当の「得点」と同じものが表のD列上方(下方は無視)に何個あるか検索します。
 COUNTIF関数を使います【 例B2:=countif(D$2:D2,D2)-1 】-1は検索条件自身を除外するため。
 ここでは「内田」の上方には70点はいませんが、「江藤」の上方には「内田」の70点が1個あります。

 C列は、名前欄。D列は得点欄です。

 E列は RANK関数【 例E2:=rank(D2,D$2:D$6) 】で処理(※D$6:得点欄の最後のセル)

表示欄
 F列は表示したい番号を指定(順位ではありません)。
 G列~I列は VLOOKUP関数を使った記録欄の抽出です。
 【 例G2:=VLOOKUP(F2,$A$2:$E$6,5,FALSE) 】(順位:指定範囲5列目)
 【 例H2:=VLOOKUP(F2,$A$2:$E$6,3,FALSE) 】(名前:指定範囲3列目)
 【 例I2:=VLOOKUP(F2,$A$2:$E$6,4,FALSE) 】(得点:指定範囲4列目)
 (※$E$6:記録欄の最後のセル)

 D列の得点が変更になり、順位が変動するとG~I列の表が並び替えられます。
 表示欄を別シートに作る場合は、VLOOKUP関数の範囲領域にシート名も指定します。
    • good
    • 3

1枚目のシート=sheet1、2枚目のシート=sheet2 で、


sheet1のA1~A100に全データが入っていて、
sheet2のA1~A10に上位10人を表示させるとした場合

A1~A10の内容に以下の式を入れます。
=LARGE(Sheet1!A$1:A$100,ROW())

順位表の上にタイトルをつけるなどして、行番号=順位と
ならない場合は ROW() を ROW()+1 などとして行数分の
数字を足して下さい。

LARGE関数:
=LARGE(範囲,順位)
1 組のデータの中で 順位 番目に大きなデータを返します。LARGE 関数を利用すると、相対的な順位に基づいて、データの中から特定の値を選択することができます。たとえば、LARGE 関数を使って、テストの最高点、第 2 位または第 3 位の得点などを調べることができます。

ROW関数:
=ROW(範囲)
引数として指定された 範囲 の行番号を返します。
範囲 を省略すると、ROW 関数が入力されているセルの行番号が返されます。
    • good
    • 0
この回答へのお礼

ありがとうございます!
参考になりました。教えていただきました関数で
順位表を作成してみます。

お礼日時:-0001/11/30 00:00

 補足を読ませていただきましたが、日々更新されるというなら、毎度毎度のその一連の操作をマクロに登録してしまえばいいのでは?


 あと、もし、エクセルでなくて、アクセス(データベースソフト)があるなら、こちらなら、思い通りの順位表が出来ると思いますよ。
    • good
    • 0

やり方はいろいろあると思いますが、全成績を入力したシートを新しいシートにコピーしてそのデータを並び替えるのが一番手っ取り早いのではないでしょうか。


 簡単ですいません。

この回答への補足

ありがとうございます。おっしゃるとおりなんですが、日々データの更新が有る為、毎度毎度操作しなくていいような方法がない物かと思っているのです。
データ入力さえすれば即時に反映されるような形です。
すみません、表現力がなくて伝わりにくいかとは思いますが、ひとつ宜しくお願い致します。

補足日時:2000/10/04 15:45
    • good
    • 1

お役に立つかもしれない情報・・・



RANK関数

【書 式】=RANK( 数値, 範囲, 順序 )
【使用法】順序に従って範囲内の数値を並べ替えたと
     き、数値が何番目に位置するかを返します。

無料のシートを拝借する手も・・・

・教科成績処理プログラム(for Microsoft Excel)

http://www.d1.dion.ne.jp/~r_iso/tedukuri/kyouka. …
    • good
    • 0

データ>フィルタ>オートフィルタ


でトップテンも選べます。

どういう使い方するのか分からないのであれなんですけど
1枚のシートで充分やれると思います。
ま複数のシートに分けたいのなら
その都度見たい条件でオートフィルタを
かけてそのデータ2枚目以降にコピーすればどうで
しょう。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qexcelでテストのランキングの表を作りたい

excel2003で100人ほどのテストの点数のランキングの表を作りたいです。

元の表として「氏名」「点数」「順位」の項目をつくり、氏名、点数は手入力で、順位はRANKという関数で順位を与えました。

そして、その中で上位30位を別の表として「順位(1位から30位)」「点数」「氏名」という項目を作り表作成したいんですけど
点数に該当する氏名の表示方法がわかりません。

・「順位」→RANKで1位から、30人分を表示(元の表の点数を変えると順位も変わる)
・「点数」→LARGEで点数の高い順に表示(元の表の点数を変えると順位も変わる)

・「氏名」→その点数に該当する氏名を表示する方法がわかりません。また、同じ点数が数名いる場合に氏名が重複しないようにするにはどうすればいいでしょうか。

エクセル初心者です。よろしくお願いします。
わかりにくい説明ですいません、何かあったら補足で説明いたします。

Aベストアンサー

◆6人のランキング表から上位3位までを表示しています
◆Sheet1
    A       B     C
1   氏名     点数  順位
2  大阪 太郎   88    1
3  神戸 次郎   77    4
4  京都 春子   82    2
5  奈良 三郎   65    5
6  三重 秋子   82    2
7  山口 四郎   63    6

◆Sheet2
   A    B     C
1  順位  点数   氏名
2   1   88   大阪 太郎
3   2   82   京都 春子
4   2   82   三重 秋子

A2=IF(SMALL(Sheet1!C:C,ROW(A1))>3,"",SMALL(Sheet1!C:C,ROW(A1)))

B2=IF(A2="","",LARGE(Sheet1!B:B,ROW(A1)))

C2=IF(A2="","",INDEX(Sheet1!A:A,SUMPRODUCT(LARGE((Sheet1!$B$2:$B$200=B2)*(ROW($B$2:$B$200)),COUNTIF($B$2:B$200,B2)-COUNTIF($B$2:B2,B2)+1))))

★共に下にコピー

◆6人のランキング表から上位3位までを表示しています
◆Sheet1
    A       B     C
1   氏名     点数  順位
2  大阪 太郎   88    1
3  神戸 次郎   77    4
4  京都 春子   82    2
5  奈良 三郎   65    5
6  三重 秋子   82    2
7  山口 四郎   63    6

◆Sheet2
   A    B     C
1  順位  点数   氏名
2   1   88   大阪 太郎
3   2   82   京都 春子
4 ...続きを読む

Qエクセルで、自動的にランク順に順番を表示させる方法

エクセルで、自動的にランク順に順番を表示させる方法

エクセル2003を使用しています。

T列に名前、U列にその人の点数が表示されています。
これに対し、点数の高い順に自動的に並べ替えてB列に順位、C列に名前を表示させたいです。

同じ点数がある場合、以下の様な表示をしたいです。
1位 Aさん 80点
2位 Bさん 70点
2位 Cさん 70点
4位 Dさん 60点

表示>並べ替えは使用しないで、関数で対応したいです。
分かる方いましたら、お願いします。

Aベストアンサー

なるべくシンプルな計算式で。

添付図:
S2に
=RANK(U2,U:U)+ROW()/1000
以下コピー。

B2に
=VLOOKUP(SMALL($S:$S,ROW(A1)),$S:$U,COLUMN(),FALSE)
B,C列にコピー。

A2に
=RANK(C2,C:C)
以下コピー,
必要に応じてA列を右クリックしてセルの書式設定の表示形式のユーザー定義で
0位
と設定しておくなど。

Qエクセルで大会順位表作成

釣りの会で得点表をエクセルで作ろうと思っております。

釣果(匹数)で順位決定して、順位により
1位100点、2位90点 3位80点 4位70点 5位60点 6位50点
7位以降は参加点として10点それぞれ獲得します。

順位付けまではRANK関数でできたのですが、
順位による配点、また同率順位があった場合、
たとえば同率3位が3人いた場合、
3位4位5位の合計得点の210点の平均で70点を同率3位の3人に配点する、
いうよな処理をしたいのですが、
よろしくお願いいたします。

Aベストアンサー

No.1です。

補足の件について・・・
↓の画像のようにF・G列を作成しておいてください。
(F列の順位は人数分作成し、10位以降はすべて10と入力しておきます)

今回は少し数式を短くしてみました。
D2セルに
=AVERAGE(INDIRECT("G"&MATCH(C2,F:F,0)&":G"&MATCH(C2,F:F,0)+COUNTIF(C:C,C2)-1))
という数式を入れオートフィルでコピー!

これで画像のような感じになります。

何とかご希望通りになったでしょうか?m(_ _)m

Qエクセルの関数でベスト3の名前を表示させたい

過去の質問を色々調べたのですが、分からなかったので教えてください。

現在、次のようなエクセルの表を作っています。
    AさんBさんCさん日計
1日目100006000150017500
2日目1500200030006500
3日目40000340001200086000

「日計」の隣に(その日の)1位~3位の人の名前を参照させるような関数はないでしょうか?
RANK関数で順位を挿入するようなスペースが無いので、何かいい方法があれば教えてください。

Aベストアンサー

一例です。
=INDEX($B$1:$D$1,MATCH(LARGE($B2:$D2,COLUMN(A1)),$B2:$D2,0))

QエクセルRANK関数の同率順位を別表に抽出する時

お世話になります。
エクセル2003を利用しています。初心者なので教えていただきたく存じます。
以下文面のようにランキング表を作りました。
RANK関数を利用してランキングを出し、順位表にTOP5(重複していても)まで出したいと思っています。

A列にA店~Z店までの名前(A店という名前は仮です)が入っており、
B列に上から結果数字がランダムに入力がされており、
C列にRANK関数を使って順位がその結果の横に数字として反映されています。

B列の順位の数字が大体1~20程度までの数字が記入されており、C列のRANK関数の結果が当然ですが重複して順位が表示されている状態です。

別表を作成して1~5位のランキング表を作り、A列に入っている店名とを表示させたいと思っております。
1位と2位は単独であったので店名はINDEXとMATCH関数を使ってきれいに抽出できたのですが、
3位以下は重複しているようで#N/Aと表示されてしまいます。
表示の仕方として「あいうえお順(A~Zの若い順)」で表示できればと思っております。

無知で恐縮なのですが、情報不足の点等あればご指摘いただきたく存じます。
お詳しい方、ご教授宜しくお願い致します。

お世話になります。
エクセル2003を利用しています。初心者なので教えていただきたく存じます。
以下文面のようにランキング表を作りました。
RANK関数を利用してランキングを出し、順位表にTOP5(重複していても)まで出したいと思っています。

A列にA店~Z店までの名前(A店という名前は仮です)が入っており、
B列に上から結果数字がランダムに入力がされており、
C列にRANK関数を使って順位がその結果の横に数字として反映されています。

B列の順位の数字が大体1~20程度までの数字が記入されており...続きを読む

Aベストアンサー

No.1です。
たびたびごめんなさい。

投稿後気になったのですが、前回の方法はE列の順位は必ず1~5までという前提ですので、
同順位でも表示上はランクの差が出てしまいます。

E列順位はC列の順位そのものを表示させるのが一般的だと思いますので、
もう一度やってみました。

↓の画像でC列は小細工せずにRANK関数だけにしてC2セルに
=RANK(B2,B:B)
という数式を入れフィル&コピーしています。

そしてE2セルに
=SMALL(C:C,ROW(A1))

F2セルに
=INDEX(A$1:A$50,SMALL(IF(C$1:C$50=E2,ROW(A$1:A$50)),COUNTIF(E$2:E2,E2)))

これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合は、
上記数式をドラッグ&コピー → F2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にE2・F2セルを範囲指定 → F2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

こんな感じではどうでしょうか?m(_ _)m=

No.1です。
たびたびごめんなさい。

投稿後気になったのですが、前回の方法はE列の順位は必ず1~5までという前提ですので、
同順位でも表示上はランクの差が出てしまいます。

E列順位はC列の順位そのものを表示させるのが一般的だと思いますので、
もう一度やってみました。

↓の画像でC列は小細工せずにRANK関数だけにしてC2セルに
=RANK(B2,B:B)
という数式を入れフィル&コピーしています。

そしてE2セルに
=SMALL(C:C,ROW(A1))

F2セルに
=INDEX(A$1:A$50,SMALL(IF(C$1:C$50=E2,ROW(A$1:A$50)),COUNTIF(E$2...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QEXCEL 売上ランキング表を作りたいです

売上ランキング表を作りたいです、VLOOKUPの関数を使ってやってみたのですが、
”範囲”の左端はこの場合絶対に店舗名でなければいけないのでしょうか?
下の表だと左端にランキングが来ていて、

これを参照する感じにしたいのですが、エラーになります。
=VLOOKUP(B2,範囲を先月のデータすべてを入れます,1,FALSE)
上の式では無理した。やはり左端のランキングを右側(F列)に移動して
=VLOOKUP(B2,$B$20:$I$29,5,FALSE)とかにしないとだめでしょうか?

Branch 平日 週末 平均 先月
1 A店 105.1 88.4 96.8 -1
2 B店 38.6 39.6 39.1 ▲3
3 C店 23.0 26.5 24.7 ▼2

先月のデータ
1 A店 123.5 102.4 112.9
2 C店 39.9 39.5 39.7
3 B店 23.7 26.7 25.2

Aベストアンサー

表示したいのは、ランキングの順番で表示したいのでしょうか。
仮にデータシートがSheet1
A   B      F
店名 実績・・・ 順位 が入っているとして

表示したいシートには
順位 店名 実績・・・



と準備してある場合 B2に
=INDEX(Sheet1!A$2:A$1000,MATCH(Sheet1!$F$2:$F$1000,$A1.FALSE),1)
で、右フィル、下フィルしてみては、いかがでしょうか。

但し、Sheet1の順位を求める式にRANK関数などで順位を出している場合、
同点の順位が発生した場合、下行にある店舗が無視されます。
例 1位が同点で、2店舗あった場合、1が2回でて、2が0回、3が1回表示されますので、表示のシートの2位が表示されません。
同点の場合のルールは別途、検討してもらうことになりますが、
Sheet1の順位を決める関数に F2に
=RANK(B2:B1000,B2)+COUNTIF(B2:B$2,B2)-1
で下フィルしておけば、同金額の場合、下の行の店舗には、次の順位が
でますので、取り合えずもれはなくなります。

表示したいのは、ランキングの順番で表示したいのでしょうか。
仮にデータシートがSheet1
A   B      F
店名 実績・・・ 順位 が入っているとして

表示したいシートには
順位 店名 実績・・・



と準備してある場合 B2に
=INDEX(Sheet1!A$2:A$1000,MATCH(Sheet1!$F$2:$F$1000,$A1.FALSE),1)
で、右フィル、下フィルしてみては、いかがでしょうか。

但し、Sheet1の順位を求める式にRANK関数などで順位を出している場合、
同点の順位が発生した場合、下行にある店舗が無視さ...続きを読む

Qエクセルでランク表を作成する方法について

Excelでランキング表を作成する方法を教えてください。

具体的には
     国語  算数  理科
  A   78   67   88
  B   68   83   76
  C   80   79   91
という表が既にあります。

 これを次のような科目別のランキング表にしたいのです。

      国語  算数  理科
 1位   C     B   C
 2位   A    C   A
 3位   B    A   B 

 いろいろな関数を試したのですが,うまくいきません・・・
 よろしくお願いします。

Aベストアンサー

添付図参照
G2: =INDEX($A:$A,MATCH(LARGE(B:B,$F2),B:B,0))

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで順位表を並び替えたい。同順位表示方法は?

エクセルで順位表を別シートに並び替えたいと考えていますが、同点になった場合はどうしたらよいでしょうか?

シート1で集計した結果を参照し、シート2に上から順に1位から表示させる表を作りたいです。

試行錯誤の結果、下記まで作業しました。
=========
<シート1>
    A        B       C       
   (1)商品名  (2)販売額  (3)ランキング 
1    a     1000       2
2   b     1500      1
3  c     1000      2
4  d     500      4
5  e     300      5

(1)手入力
(2)SUM関数で集計した値
(3)RANK関数

<シート2>
    A        B    C
(3) ランキング  (1)商品名 (2)販売額
1
2
3
4
5

(3)手入力
(2)INDEXとMATCH関数
(3)INDEXとMATCH関数
=========

1)シート2の(3)ランキングをシート1を参照し降順で自動表示させる方法を教えてください。
今は手入力なので、同順位があった場合にずれが生じてしまいます。

2)シート2に同順位表示のまま並び替えする方法を教えてください。
INDEX関数とMATCH関数を使っていましたが、
シート1で同順位表示されていた箇所が、シート2で表示できませんでした。

どうぞ宜しくお願いいたします。

エクセルで順位表を別シートに並び替えたいと考えていますが、同点になった場合はどうしたらよいでしょうか?

シート1で集計した結果を参照し、シート2に上から順に1位から表示させる表を作りたいです。

試行錯誤の結果、下記まで作業しました。
=========
<シート1>
    A        B       C       
   (1)商品名  (2)販売額  (3)ランキング 
1    a     1000       2
2   b     1500      1
3  c ...続きを読む

Aベストアンサー

順位の数字に細工をしておくだけで、簡単にできます。

添付図:
C2に
=RANK(B2,B:B)+ROW()/1000
と記入、カンマ区切りの書式設定を取り付けて以下コピーしておく

これで同順も違う数字が計算できるので、あとはINDEXとMATCHで持ってくるだけです。


E2:
簡単に1番からの連番を記入
ROW関数とか使ってもいいですが、手で記入するので十分

F2:順位の数字の小さい順に取ってくる
=INDEX(A:A,MATCH(SMALL($C:$C,$E2),$C:$C,0))
右にコピー、下にコピー。


実際に手を動かして、できることを確認してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報