2017年6月1日木曜日

浦和競馬場の出目

というタイトルは、まあ、おまけみたいなもの。
一応、2012年以降からのデータはこんな。

→ Excel Online

1~3着までの、馬番と枠番です。
有り難い事に僕の作業のお手伝いに来てくれている方がおりまして、せっかくなので色々と学んでもらおうかと。
競馬と言えばデータベースです。
特にリレーショナルデータベースとは抜群に相性が良い。
そんなデータベースの基本と言えばクエリ、つまりはSQL文です。

これは個人的な考えなのだけれども、DBを学ぶにあたって最も最悪な方法は・・・1番最初にAccessに触れる事。
実際に僕が経験したので本当にそう思います。
アレはアカン。
同じマイクロソフトの製品であればSQL Serverで始めて下さい。
今ではセットアップは非常に簡単になりましたしね。

必要な本も2冊のみ。




これで競馬程度であれば充分です。

今回やってもらった事は、1つの成績テーブルを3つ繋いでそれぞれ1~3着馬を抽出するクエリの作成。
同じテーブルでも別名をつける事によって違うものとして扱える、というのは初めて知った時には驚いたものです。
・・・等という事をアクセスでやるとSQL文を書く事無くクリックだけで完結出来てしまう。
理屈で理解する前に手順で覚えてしまうのは、よろしく無いぞ。

あとは、データをエクセルに貼って色をつけるだけ。
VBAのコードとしてもこんな。

Sub wakucolor()

Dim i, h As Integer

i = 2
Do While Cells(i, 1) <> 0

For h = 9 To 11

Select Case Cells(i, h)

Case 1
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 2
 
Case 2
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 16
 
Case 3
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 3
 
Case 4
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 41
 
Case 5
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 36
 
Case 6
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 50
 
Case 7
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 45
 
Case 8
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 26
 

End Select

Next h

i = i + 1
Loop

End Sub


ループの箇所は僕の手抜きです。
終了条件の箇所は、もっとキッチリ書くべき。
ですが、使い捨てのコードであれば、僕は毎回コレですね。


see more info at JRDV.sp