今回は結果シートの作成。データが違ったときのために、なるべく数式を使うことにする。そうすることで、Excelでも簡易データベースになる。MS Accessなんて持ってないし、数百人くらいならばデータベースは必要ないだろう。
本当は、エントリーシートから数式を使って参照していけば、誤字などの修正時かなり楽になるんだけど・・・
今回も前回と同様にマクロは使っていない。いきなりマクロで作成するとバグ潰しが面倒になるので、少しずつ作成していく。マクロを使うところは、ここに書いてある通りで考える。
必要な項目は、次の通り。
- 順位1から順番に割り当てる。同タイムは、同じ順位にする。これらから、RANK関数をする。
=RANK(タイムのセル, 全員のタイムのセル範囲, 1)
-
タイム次の2通りの案がある。
1. 記録シートからそのまま持ってくる。
=記録シート!セル
2. 記録を時間に変更する。
(1日を1.0としたシリアル値に変更)=TEXT(INT(セル/100)/(24*60)+MOD(セル,100)/(24*60*60),"mm:ss.00")
左寄せで表示されるため、右寄せにする。
今後の記録を比較するためにも、2.の方法の方が良いかもしれない。
- ビブ
- 氏名
- ふりがな
- クラス
- 年齢(いちおう列を非表示)
- クラブ
これらの項目は記録シートからそのまま持ってくる。
=記録シート!セル
ビブNo.からVLOOKUP関数で持ってくるという方法もあるが、そのまま持ってきた方が重くならないだろう。
表示項目の列は上から順。これも簡単に変更可能なように、セル番号に$文字をつけて対応する。
ソートは、順位で昇順に。
印刷範囲は、記録全てを指定。
タイムがない(未入力 or 文字列)場合。ビブNo.はあるが、タイムが記録されていない時で判定。文字列をそのまま持ってくるか、"DS"と書き込む。
=IF(記録シート!ビブ<>"" AND 記録シート!タイム<>"",記録シート!タイム,"DS")
今回はここまで。次回は、クラス分け。
マクロで数式を作成するときの覚書。
Worksheets("Sheet1").Range("A1").Formula = "=IF($B3<>"""",VLOOKUP($I3,$B$3:$G$13,2,0),"""")"
TEXTエディタ部分でいろいろなタグが通れば良いのだけどなあ。
いのえう、自分の記録管理をエクセルでやってるんだね。流石だ・・・・・
なんかいのえうがんばってんなぁ。
体に気をつけてがんばってねん。
またいっしょに滑ろうぜ。
追伸
WindowsにVMWare入れてLinuxつっこんでPosgre入れるじゃん、この状態でWindowsにODBCドライバを入れると(もち、DBの設定はするけどさ)エクセルやアクセスとか、ODBCドライバ対応のアプリでポスグレのデータにアクセスできるぜ。面白いよ。でもって、アパッチ入れてPHPいれてWebアプリ作って、手ごろなAJAXライブラリを拾ってきていじれば、結構びっくりなアプリ作れるよ。やってみそ!はぁ・・・PerlでCPAN、ルビーでRuby on Rails、いまではバイトでも手軽に使えるWebアプリをちょちょいと作れる時代・・・・。
自己管理記録じゃなくて、大会の記録だよ~。
ポスグレだったら、Windows版も出ているので、
別にLinux入れなくてもアクセスできるよー。
最近の言語って簡単にアプリ作れるよね。
でも、ハードウェアからどんどん遠ざかっているので、
何か物足りない。言語自体の処理が重いのに、
フレームワークやらで更に速度が遅くなっている。
開発効率は上がったかもしれないけど、パフォーマンス
が悪くなって、ユーザーの満足が得られなくなってきて
いるような気がする今日この頃です。