[[20040803235859]] 『時間の早い順に順番[番号]をつける』(まだら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『時間の早い順に順番[番号]をつける』(まだら)

並び替えをせずにA列の中で早い順(時間)にB列に番号をつける、、という関数はあるのでしょうか。出来ればその順で自動で並び替えが出来ればいいのですが・・・
時間は違うシートからVLOOKUPでもってきたものです。(値貼り付けはしません)
作成したいものはレースの成績表です。何十個分のキーになる数字(ゼッケンのようなもの)とその時間を入れると、各クラスごとの成績表(別シート、ゼッケン番号はあらかじめ入っている)にじかんが飛びそれをそのまま印刷するだけでよい・・というものを作りたいので、出来れば自動で成績順に並び替えまでしたいのです・・。こんなことってできるでしょうか!?どなたかいいお知恵をお願い致します。


 おはようございます。
 少し?かなり違うかもしれませんが、とりあえずとういこで、お願いします。
 >何十個分のキーになる数字
 これが、私には無理の様です。汗
 A     B    C    D     E    F     G    H    I  
順位	順位付加	クラス	タイム	検索値	順位	クラス	タイム	順位	クラス	タイム	検索クラス
6	6.02	222	1:00	1222	1	222	0:03	1	111	0:30	111
1	1.03	222	0:03	1111	2	111	0:30	2	111	0:50	
4	4.04	111	0:50	2111	3	111	0:30	3	111	1:20	
8	8.05	111	1:20	3111	4	111	0:50				
10	10.06	222	2:00	1333	5	333	0:50				
2	2.07	111	0:30	2222	6	222	1:00				
3	2.08	111	0:30	2333	7	333	1:10				
5	4.09	333	0:50	4111	8	111	1:20				
7	7.1	333	1:10	3222	9	222	1:20				
9	8.11	222	1:20	4222	10	222	2:00				
 A2に
 =RANK(B2,$B$2:$B$11,ROW())
 B2に
 =SUM(RANK(D2,$D$2:$D$11,ROW()),ROW()/100)
 C列はクラスを入力
 D列はタイムを入力
 E2に
 =COUNTIF($G$2:G2,G2)*1000+G2
 F列は順位の連番を上から入力
 G2に
 =VLOOKUP(F2,$A$2:$D$11,3,FALSE)
 H2に
 =VLOOKUP(F2,$A$2:$D$11,4,FALSE)
 I2に
 =IF(J2="","",F2)
 J2に
 =IF(COUNTIF($E$2:$E$11,ROW()*1000+$L$2),VLOOKUP(ROW()*1000+$L$2,$E$2:$H$11,3,FALSE),"")
 K2に
 =IF(COUNTIF($E$2:$E$11,ROW()*1000+$L$2),VLOOKUP(ROW()*1000+$L$2,$E$2:$H$11,4,FALSE),"")
 L2にクラスを入力すると
 IJK列に結果が表示されます。
 でも、多分ご希望にはかなってないと思いますが、一案ということで
 お願いします。
 で、どうでしょう?
 JKL列が付けられない(>_<)
(夏目雅子似)

ご考案ありがとうございます!!
やってみました。でも高度すぎて意味がよくわからずやってみたので、結果が出ない場所もありました・・・(>_<) ちょっとよく考えて解読してみますが、もしよろしかったら意味も教えていただけますか??・・・おばかでごめんなさい・・・
とりあえず RANK がまず一番知りたかったことなのでよかったです。

(まだら)


 ↑の図は私のExcelをそのまま貼り付けたものですから、同じ様に入力していただければ
 そのまま出ると思いますが、実際は少しちがうでしょうから、ポイントだけコメントして
 みますね。
 Vlookup関数はすでに使われているのですから、詳しいことはいいですね?
 今回のポイントは検索値ですね。
 先ず左から、
 A列は問題ないでしょ?
 B列は、同じタイムがあった時の為にRow(行)/100で差を付けて区別しているんですね。
 C列D列も問題ないですね。
 問題は、E列ですね。クラスNoが今回は3桁の数字なので、出現回数かける1000で
 4桁目に順位を付けているんですね。だから、よくみると、クラス222の場合は
 1222
 2222
 3222
 4222
 と出現する回数ごとに4桁目が増えているのがわかりますね。
 後は、そんなに難しくないですね。
 こんな感じでいいですか?かなりご要望のものとは異なってしまったけど、
 応用していただければ、いいかと思います。では、また(^^)V
(夏目雅子似)
 失礼しました。
 J2に
 =IF(COUNTIF($E$2:$E$11,ROW(A1)*1000+$L$2),VLOOKUP(ROW(A1)*1000+$L$2,$E$2:$H$11,3,FALSE),"")
 K2に
 =IF(COUNTIF($E$2:$E$11,ROW(A1)*1000+$L$2),VLOOKUP(ROW(A1)*1000+$L$2,$E$2:$H$11,4,FALSE),"")
 に変更してください。ごめんなさいm(__)m
 それから、
 RANKのRow()は昇順に順位をつけたかっただけなので、
 =RANK(B2,$B$2:$B$11,1)
 でも、いいですし、0以外の数値ならなんでもいいです。
 Trueでもいいです。
 わかり難くて重ね重ねごめんなさいです。m(__)m
 もう、みてらっしゃらないかな?
(夏目雅子似)

ありがとうございます!なんとなくわかりました!こんな発想があるなんて・・。
私がイメージしていたものよりもっと高度なことが出来そうな気がしてきたので、もっとじーーっくり考えてみます。。ところで、順位付加で、同じ順位のときの優先順位を行ではなくその人がもっているハンディキャップ(数値)でつけるにはどうしたらよいですか?またまた質問でごめんなさい・・・。
(まだら)

 おはようございます。
 >その人がもっているハンディキャップ(数値)でつけるにはどうしたらよいですか?
 基本的には同じことだと思うのですが、作業列を一列追加して
 (前回の表に間違いがあったので改めてのせておきますね。)
 追加した列以外は前回と同じで、順位付加の
 B2に
 =SUM(RANK(E2,$E$2:$E$11,1),C2/100)
 かな?
 でも、同じ順位になる可能性が高いので、行とかを取り入れた方がいいと思います。
 それから、
 >もっとじーーっくり考えてみます。。
 は、やばいですぅ。。汗^^;
 で、どうでしょう?
(夏目雅子似)

 順位	順位付加	H/C	クラス	タイム	検索値	順位	クラス	タイム	順位	クラス	タイム	検索クラス
 6	6.02	2	222	1:00	1222	1	222	0:03	1	222	0:03	222
 1	1.05	5	222	0:03	1111	2	111	0:30	2	222	1:00	
 5	4.04	4	111	0:50	2111	3	111	0:30	3	222	1:20	
 9	8.08	8	111	1:20	1333	4	333	0:50	4	222	2:00	
 10	10.07	7	222	2:00	3111	5	111	0:50				
 2	2.09	9	111	0:30	2222	6	222	1:00				
 3	2.1	10	111	0:30	2333	7	333	1:10				
 4	4.03	3	333	0:50	3222	8	222	1:20				
 7	7.01	1	333	1:10	4111	9	111	1:20				
 8	8.06	6	222	1:20	4222	10	222	2:00				

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.