既にあるシステムを利用して、データを入れ替える
この記事を読むと、1980~1990年代COBOLやBASICプログラマーだった人が、今のパソコンを道具として使い自身の作業の効率化(自動・半自動)に役立てることが出来るきっかけを掴めるかもしれないブログになっている。
現行の半自動システムからの手順
- Accessで作成してDBから誤データを確認する
- 2020.05.03東京9R-10R
- 2020.04.11中山4R
- 2019.06.15函館5R
- 2019.06.15阪神4R
- 2019.06.15東京5R
- 現行のデータ入力用Excelフォーマットに手動で必要データを全てコピペする
- 表型に整理するプログラム(VBA)は現行をそのまま使用する
- 上記5つの該当日のデータ全てをAccessとSQL-EXPRESSの競馬DBから削除する
- Accessから手動で該当データを削除する
- 通常のシステムを使いデータ投入する
- AccessとSQL-EXPRESSのデータを確認する
※この5点を順番に行っていく!
現行システムは2021-2020年版JRAホームページをコピペしている
つまり2019-2020年のデータ作成後の保存しているExcelデータを修正するよりも、該当する場・日付分全てのデータを手動でコピペして現行システムでデータ作成し投入し直すのが一番間違いがないだろうという感じで処理を行うことにした。
最新のプログラムが今までのバグを全て吸収しているので、それがよかろう~という思い。
入れ替えデータは、場+日付で1R~12R全てを作成する
- 2020.05.03東京
- 2020.04.11中山
- 2019.06.15函館
- 2019.06.15阪神
- 2019.06.15東京
参考記事一覧
- VBA 自作した(競走)結果Dのヘッダーと明細の見出しをみる
- VBA コピペ作業を何度も再現させるシートの準備
- VBA 2020年12月JRAホームページ更新によるコピペシステム ExcelVBAの変更履歴を記す
※後は、Accessでの手作業によるデータ削除が必要。アプリ操作の詳細はココでは説明しない。
修正前、誤データ48件
開催日 | 場名 | R | K馬番 | 着順 | 単勝倍率 | 複勝人気 | 複勝min | 複勝max |
2019/6/15 | 阪神 | 4 | 7 | 7 | 0 | 1 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 8 | 5 | 0 | 1 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 9 | 4 | 0 | 1 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 12 | 9 | 0 | 1 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 13 | 8 | 0 | 1 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 14 | 6 | 0 | 1 | 0 | 0 |
2019/6/15 | 東京 | 5 | 11 | 11 | 0 | 1 | 0 | 0 |
2019/6/15 | 東京 | 5 | 12 | 5 | 0 | 1 | 0 | 0 |
2019/6/15 | 東京 | 5 | 13 | 8 | 0 | 1 | 0 | 0 |
2019/6/15 | 東京 | 5 | 14 | 7 | 0 | 1 | 0 | 0 |
2019/6/15 | 東京 | 5 | 15 | 6 | 0 | 1 | 0 | 0 |
2019/6/15 | 東京 | 5 | 16 | 2 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 4 | 6 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 6 | 4 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 7 | 5 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 8 | 1 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 9 | 9 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 11 | 8 | 0 | 1 | 0 | 0 |
2019/6/15 | 函館 | 5 | 12 | 3 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 5 | 10 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 6 | 12 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 7 | 5 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 8 | 11 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 9 | 7 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 10 | 2 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 11 | 9 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 12 | 6 | 0 | 1 | 0 | 0 |
2020/4/11 | 中山 | 4 | 13 | 1 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 1 | 6 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 2 | 8 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 3 | 9 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 4 | 2 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 5 | 7 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 6 | 5 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 7 | 3 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 8 | 4 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 9 | 9 | 1 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 1 | 9 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 2 | 7 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 3 | 11 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 4 | 4 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 5 | 5 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 6 | 10 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 7 | 1 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 8 | 8 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 9 | 6 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 10 | 3 | 0 | 1 | 0 | 0 |
2020/5/3 | 東京 | 10 | 11 | 2 | 0 | 1 | 0 | 0 |
修正後
クエリー1を実行すると、対象データは0件と表示。明細データを日付+場+Rで検索し確かめる。
- 2020.05.03東京9R-10R
- 2020.04.11中山4R
- 2019.06.15函館5R
- 2019.06.15阪神4R
- 2019.06.15東京5R
開催日 | 場名 | R | K馬番 | 着順 | 単勝倍率 | 複勝人気 | 複勝min | 複勝max |
2019/6/15 | 阪神 | 4 | 1 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 2 | 1 | 1.6 | 1 | 1.1 | 1.1 |
2019/6/15 | 阪神 | 4 | 3 | 96 | 40.3 | 8 | 6.4 | 25.5 |
2019/6/15 | 阪神 | 4 | 4 | 2 | 10.1 | 4 | 1.6 | 5.3 |
2019/6/15 | 阪神 | 4 | 5 | 3 | 8.6 | 3 | 1.5 | 4.9 |
2019/6/15 | 阪神 | 4 | 6 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 7 | 7 | 90.6 | 9 | 11.5 | 46.5 |
2019/6/15 | 阪神 | 4 | 8 | 5 | 7.3 | 5 | 1.7 | 5.7 |
2019/6/15 | 阪神 | 4 | 9 | 4 | 5.5 | 2 | 1.4 | 4.3 |
2019/6/15 | 阪神 | 4 | 10 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 11 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 12 | 9 | 119.3 | 10 | 16.1 | 65.8 |
2019/6/15 | 阪神 | 4 | 13 | 8 | 24.8 | 7 | 3.3 | 12.2 |
2019/6/15 | 阪神 | 4 | 14 | 6 | 25.1 | 6 | 2.8 | 10.4 |
2019/6/15 | 阪神 | 4 | 15 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 阪神 | 4 | 16 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 東京 | 5 | 1 | 10 | 4 | 2 | 1.5 | 2.2 |
2019/6/15 | 東京 | 5 | 2 | 14 | 106.7 | 14 | 15.3 | 23.9 |
2019/6/15 | 東京 | 5 | 3 | 1 | 38.8 | 10 | 7.9 | 12.3 |
2019/6/15 | 東京 | 5 | 4 | 15 | 14.8 | 6 | 3.3 | 5 |
2019/6/15 | 東京 | 5 | 5 | 12 | 9 | 4 | 2.1 | 3 |
2019/6/15 | 東京 | 5 | 6 | 13 | 5.1 | 3 | 1.6 | 2.2 |
2019/6/15 | 東京 | 5 | 7 | 4 | 3.4 | 1 | 1.3 | 1.6 |
2019/6/15 | 東京 | 5 | 8 | 9 | 19.6 | 5 | 2.7 | 4 |
2019/6/15 | 東京 | 5 | 9 | 3 | 35.1 | 9 | 5.7 | 8.8 |
2019/6/15 | 東京 | 5 | 10 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 東京 | 5 | 11 | 11 | 66.4 | 13 | 11.5 | 18 |
2019/6/15 | 東京 | 5 | 12 | 5 | 23 | 8 | 4.4 | 6.7 |
2019/6/15 | 東京 | 5 | 13 | 8 | 55.8 | 12 | 9.3 | 14.5 |
2019/6/15 | 東京 | 5 | 14 | 7 | 52.4 | 11 | 8.1 | 12.7 |
2019/6/15 | 東京 | 5 | 15 | 6 | 106.3 | 15 | 17.1 | 26.7 |
2019/6/15 | 東京 | 5 | 16 | 2 | 19 | 7 | 3.5 | 5.3 |
2019/6/15 | 函館 | 5 | 1 | 7 | 19.3 | 7 | 4.1 | 6.6 |
2019/6/15 | 函館 | 5 | 2 | 2 | 4.8 | 3 | 1.3 | 1.8 |
2019/6/15 | 函館 | 5 | 3 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 函館 | 5 | 4 | 6 | 3.1 | 1 | 1.2 | 1.6 |
2019/6/15 | 函館 | 5 | 5 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 函館 | 5 | 6 | 4 | 5.1 | 4 | 1.5 | 2.2 |
2019/6/15 | 函館 | 5 | 7 | 5 | 13.9 | 6 | 2.7 | 4.3 |
2019/6/15 | 函館 | 5 | 8 | 1 | 14.6 | 5 | 2.6 | 4.1 |
2019/6/15 | 函館 | 5 | 9 | 9 | 66.3 | 9 | 10.2 | 16.3 |
2019/6/15 | 函館 | 5 | 10 | 97 | 0 | 0 | 0 | 0 |
2019/6/15 | 函館 | 5 | 11 | 8 | 28.2 | 8 | 4.9 | 7.8 |
2019/6/15 | 函館 | 5 | 12 | 3 | 4.2 | 2 | 1.2 | 1.7 |
2020/4/11 | 中山 | 4 | 1 | 8 | 366.8 | 11 | 33.8 | 72.4 |
2020/4/11 | 中山 | 4 | 2 | 4 | 2.4 | 1 | 1.1 | 1.3 |
2020/4/11 | 中山 | 4 | 3 | 3 | 3.2 | 2 | 1.1 | 1.8 |
2020/4/11 | 中山 | 4 | 4 | 97 | 0 | 0 | 0 | 0 |
2020/4/11 | 中山 | 4 | 5 | 10 | 145.3 | 8 | 15.7 | 33.3 |
2020/4/11 | 中山 | 4 | 6 | 12 | 235.3 | 9 | 17.1 | 36.4 |
2020/4/11 | 中山 | 4 | 7 | 5 | 274 | 10 | 28.1 | 60 |
2020/4/11 | 中山 | 4 | 8 | 11 | 332.8 | 12 | 39.1 | 83.7 |
2020/4/11 | 中山 | 4 | 9 | 7 | 12.6 | 5 | 2 | 3.7 |
2020/4/11 | 中山 | 4 | 10 | 2 | 4.8 | 3 | 1.2 | 2.1 |
2020/4/11 | 中山 | 4 | 11 | 9 | 7.6 | 4 | 1.8 | 3.4 |
2020/4/11 | 中山 | 4 | 12 | 6 | 40.1 | 7 | 5.4 | 11.2 |
2020/4/11 | 中山 | 4 | 13 | 1 | 15.9 | 6 | 2.3 | 4.4 |
2020/5/3 | 東京 | 9 | 1 | 6 | 14.6 | 6 | 2 | 8.9 |
2020/5/3 | 東京 | 9 | 2 | 8 | 142.2 | 9 | 13.7 | 74.4 |
2020/5/3 | 東京 | 9 | 3 | 9 | 41.1 | 8 | 7.1 | 37.7 |
2020/5/3 | 東京 | 9 | 4 | 2 | 6.5 | 2 | 1.4 | 5.2 |
2020/5/3 | 東京 | 9 | 5 | 7 | 9.2 | 3 | 1.6 | 6.9 |
2020/5/3 | 東京 | 9 | 6 | 5 | 1.4 | 1 | 1.1 | 1.1 |
2020/5/3 | 東京 | 9 | 7 | 3 | 13.2 | 4 | 1.7 | 7.1 |
2020/5/3 | 東京 | 9 | 8 | 4 | 20.2 | 7 | 2.9 | 14.1 |
2020/5/3 | 東京 | 9 | 9 | 1 | 16.9 | 5 | 1.9 | 8.6 |
2020/5/3 | 東京 | 10 | 1 | 9 | 6.8 | 3 | 1.7 | 2.4 |
2020/5/3 | 東京 | 10 | 2 | 7 | 24.9 | 8 | 4.6 | 6.8 |
2020/5/3 | 東京 | 10 | 3 | 11 | 16 | 7 | 3.9 | 5.7 |
2020/5/3 | 東京 | 10 | 4 | 4 | 13.9 | 6 | 2.4 | 3.5 |
2020/5/3 | 東京 | 10 | 5 | 5 | 7.2 | 5 | 2.1 | 3.1 |
2020/5/3 | 東京 | 10 | 6 | 10 | 60.5 | 11 | 7.1 | 10.6 |
2020/5/3 | 東京 | 10 | 7 | 1 | 2.6 | 1 | 1.3 | 1.5 |
2020/5/3 | 東京 | 10 | 8 | 8 | 32.2 | 9 | 5.2 | 7.8 |
2020/5/3 | 東京 | 10 | 9 | 6 | 33.6 | 10 | 6.2 | 9.2 |
2020/5/3 | 東京 | 10 | 10 | 3 | 7.1 | 4 | 1.8 | 2.5 |
2020/5/3 | 東京 | 10 | 11 | 2 | 5 | 2 | 1.6 | 2.2 |
JRAホームページ:過去の最終オッズを見る方法
- レース結果
- 過去レース結果検索
- 開催年月を設定して検索
- レース結果 レース選択:ヘッダーが表示される
- 左:レース結果 右2:最終オッズ
- 閲覧したいレースの「最終オッズ」を見ることができる
※私は過去データまで遡ってデータ化していないが、これを使ってスクレイピングすれば過去のオッズもデータ化することは可能だ。
ただ、そこまでのデータを必要とするなら、始めからJRA-VAN データラボを活用した方が良い。とだけ付け加えておく!
この記事では便宜上既に、データ修正後を上記で貼り付けている。
手順としては5つの日付別場別のExcelデータが出来ている状態なので、これを毎週使っているAccessインポート用の書式にヘッダーと明細を手動でコピペして、データ投入の準備をする。
既にデータベースに入っている該当データを削除し、通常通りデータインポートすれば、誤データの修正は完了する。
修正データを作成する:「inp今週分」に纏める
「inp今週分」に纏めたデータ明細の参考例
AccessDBを立ち上げ、誤データを削除する
※上記画像でクエリ1:誤データ48件が表示されているが、これが明細で、ヘッダーも同様に作成すると手動で削除しやすい。更にSQL-EXPRESSのDBデータもAccessにアタッチして同様に選択クエリーを作成して手動で削除するのが望ましい。
選択クエリーで確認後、削除クエリーに変換し実行でも悪くはないが今回の場合だとヘッダー60件、明細823件と対象が少ないので、選択クエリーでデータ確認後、そのまま手動で削除してもAccessファイルに負荷がかかることはないと思われる。
但し、もしもの為に作業前にはバックアップを取っておくのは技術者として最低限の作業ということは覚えておこう~( ̄▽ ̄)
今回作成したクエリー1~を削除
次回以降使う予定がないので、ワーク的に作成したクエリー1~は全て削除しておく。作成した修正モジュールを全て残す場合は、サブシステムとして新しいAccessファイルを作成し必要なテーブルをアタッチし記録しておけば良い。
編集後記
今回使用したツール
- Microsoft Excel2019
- Microsoft Access2019
Excelシートにコピペしたい!BASICベースな簡易言語は「UWSC」
※私の所感だと、VBAがBASICなのでUWSCを覚えるのは、ググれば良いだけ!相性は抜群だと思う。あとループ型のプログラミングは、「Python」や「Power Auto Desktop」よりも作成しやすい。
ただ最終的な目的はプログラムを組んだ後なので(今回だと馬券を当てるためにデータ分析する)集めたデータを分析するツールの方が重要になってくる。
私は、Access+Excelでデータ蓄積からデータ加工そして分析まで、Microsoft365で全て出来上がるのでコレを利用している。
今回は誤データを発見したため、その作業内容を記事化してみたが、今やっているコト・モノの方が履歴として残したい私の意思と直結するので記事化しやすい。
これからも、こんな感じでやっていこうと思っている次第でありんす~♡
それでは、またね~😎