No.6ベストアンサー
- 回答日時:
http://oshiete1.goo.ne.jp/qa4381233.html
の続きでしょうか。同順位の人が複数いることも想定する必要がありますね。
まずは簡単な作業列を使う方法を説明します。
Sheet1に次のような表があるとします。H列は作業列ですが、H2の式は
=G2*1000+ROW()
になります。下方向にコピーしてください
A列 B列 C列 D列 E列 F列 G列 H列
名前 点数1 点数2 合計 点数1順位 点数2順位 総合順位 並替順位
A 20 20 40 3 3 2 2002
B 30 10 30 2 4 4 4003
C 40 30 70 1 1 1 1004
D 10 30 40 4 1 2 2004
これを別のシートに以下のように並べ替えるには
A列 B列 C列 D列 E列 F列
順位 氏名 点数1 点数2 合計 並べ替え順位
1 C 40 30 70 1004
2 A 20 20 40 2002
2 D 10 30 40 2005
4 B 30 10 30 4003
F2の式(下方向にコピー)
=SMALL(Sheet1!H:H,ROW(A1))
A2の式(下方向にコピー)
=INDEX(Sheet1!G:G,MATCH($F2,Sheet1!$H:$H,0))
B2の式(下方向とE列まで右方向にコピー)
=INDEX(Sheet1!A:A,MATCH($F2,Sheet1!$H:$H,0))
---------------------------------------------------------
次に作業列を使用しない方法を説明しますが、難しくなりますよ
このような式になります(一例です)
B2セルに直下の式を貼り付けて下方向、および右方向にコピーします
=INDEX(Sheet1!A:A,MOD(SMALL(INDEX((Sheet1!$G$2:$G$99="")*10^5+Sheet1!$G$2:$G$99*100+ROW(Sheet1!$G$2:$G$99),),ROW(A1)),100))
ただしこの式は99人まで対応しています。100人以上999人以下なら式中の範囲と、式中で「100」を掛けたり、剰余を取っているところを1000に変更する必要があります。
A1セルの式は
=VLOOKUP(B2,Sheet1!$A$2:$G$5,7,0)
になります。下方向にコピーしてください。
C列(点数1)~E列(合計)も「上の長い式」を使わなくてもVLOOKUP関数で表示できますから、ご自身でも試してみてください
の続きでしょうか。同順位の人が複数いることも想定する必要がありますね。
まずは簡単な作業列を使う方法を説明します。
Sheet1に次のような表があるとします。H列は作業列ですが、H2の式は
=G2*1000+ROW()
になります。下方向にコピーしてください
A列 B列 C列 D列 E列 F列 G列 H列
名前 点数1 点数2 合計 点数1順位 点数2順位 総合順位 並替順位
A 20 20 40 3 3 2 2002
B 30 10 30 2 4 4 4003
C 40 30 70 1 1 1 1004
D 10 30 40 4 1 2 2004
これを別のシートに以下のように並べ替えるには
A列 B列 C列 D列 E列 F列
順位 氏名 点数1 点数2 合計 並べ替え順位
1 C 40 30 70 1004
2 A 20 20 40 2002
2 D 10 30 40 2005
4 B 30 10 30 4003
F2の式(下方向にコピー)
=SMALL(Sheet1!H:H,ROW(A1))
A2の式(下方向にコピー)
=INDEX(Sheet1!G:G,MATCH($F2,Sheet1!$H:$H,0))
B2の式(下方向とE列まで右方向にコピー)
=INDEX(Sheet1!A:A,MATCH($F2,Sheet1!$H:$H,0))
---------------------------------------------------------
次に作業列を使用しない方法を説明しますが、難しくなりますよ
このような式になります(一例です)
B2セルに直下の式を貼り付けて下方向、および右方向にコピーします
=INDEX(Sheet1!A:A,MOD(SMALL(INDEX((Sheet1!$G$2:$G$99="")*10^5+Sheet1!$G$2:$G$99*100+ROW(Sheet1!$G$2:$G$99),),ROW(A1)),100))
ただしこの式は99人まで対応しています。100人以上999人以下なら式中の範囲と、式中で「100」を掛けたり、剰余を取っているところを1000に変更する必要があります。
A1セルの式は
=VLOOKUP(B2,Sheet1!$A$2:$G$5,7,0)
になります。下方向にコピーしてください。
C列(点数1)~E列(合計)も「上の長い式」を使わなくてもVLOOKUP関数で表示できますから、ご自身でも試してみてください
No.5
- 回答日時:
同点の場合、表に先に登場した人の順位が上とします。
[Sheet1]
名前 点数
あ 30
い 10
う 20
え 30
お 40
順位計算用の点数を別に作ります。
点数が実数であるならC2に次の式を入れて下にコピー =B2+0.1-Row()/10000
項目が1000点以上あるときは「/10000」の桁を増やします。
[Sheet1]
名前 点数 順位用点
あ 30 30.0998
い 10 10.0997
う 20 20.0996
え 30 30.0995
お 40 40.0994
次にSheet2
1行目に順位 名前 点数 順位用点と入れ、
A2以降に1,2,3、…と連番。
D2に =LARGE(Sheet1!C:C,A2) と入れて下までコピー
B2に =INDEX(Sheet1!A:A,MATCH(D2,Sheet1!C:C,0)) と入れて下までコピー
C2に =INDEX(Sheet1!B:B,MATCH(D2,Sheet1!C:C,0)) と入れて下までコピー
[Sheet2]
順位 名前 点数 順位用点
1 お 40 40.0994
2 あ 30 30.0998
3 え 30 30.0995
4 う 20 20.0996
5 い 10 10.0997
最後にSheet1のC列、Sheet2のD列を非表示にして完成
No.4
- 回答日時:
RANK関数とVLOOLUP関数で
Sheet1
A B C
1 順位 名前 点数
2 1 あ 92
3 5 い 10
4 4 う 13
5 2 え 91
6 3 お 46
A2 =RANK($C2,$C$2:$C$9,0)
A6まで下にオートフィル
A1:D6まで「順位」と名前を定義
Sheet2
A B C
1 順位 名前 点数
2 1 あ 92
3 2 え 91
4 3 お 46
5 4 う 13
6 5 い 10
B2 =VLOOKUP($A2,順位,2)
C2 =VLOOKUP($A2,順位,3)
それぞれを6行までオートフィル
No.3
- 回答日時:
仮に Sheet1が
A B
氏名 点数
Aさん 10
Bさん 30
Cさん 20
・・・
とあって
Sheet2のB列に
=LARGE(Sheet1!B:B,ROW(B1)) 下までコピィ
*点数が高い順番に表示される
A列に
=INDEX(Sheet1!A:A,MATCH(B1,Sheet1!B:B,FALSE)) 下までコピィ
点数にあった人の氏名を表示 できます。
但し、同点はないものとしてです。
No.2
- 回答日時:
別シートには式で参照するようにしてあらかじめセットしておけば、元の値の変更がリアルタイムに反映されます。
>おそらく…こんな感じのものじゃないかと…
情報がないので、こんな感じという表記で・・・(詳しくはヘルプを参照)
=INDEX(表の範囲,MATCH(ROW(),順位の範囲,0),表示する表の列番号,1)
(「表の範囲」、「順位の範囲」は絶対参照にしておく)
表示したい列の内容によって、「表の列番号」は各列で指定
作成した行を下方にオートフィル
(このままだと順位が連番でない場合や、その番号がない場合はエラーが出ますが、エラー処理を追加することで、空白などにすることは可能です。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/03/16 11:19
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) RANK.EQとCOUNTIFSの組み合わせで同ポイントの場合、違う条件を加えて順位を付けたい。 1 2022/08/30 19:49
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報