【実況中】

実況!ロトロクチャレンジ~エクセルで予想ツールを作る①データベース~

ロトロクチャレンジ;ツール編アイキャッチ
記事内に商品プロモーションを含む場合があります

※「ロト6」「ロトシックス」を、ここでは『ロトロク』と呼ぶ

ミニロト17年目。一週たりとも予想を休んでいない shirono-j🤠です。

ミニロトチャレンジで「1等当せん」を達成した暁に、ロト6(ロトロク)にチャレンジする準備を始めた。まだ1回も当せんしていないので傍から見ればチャンチャラ可笑しいだろうが、絶対に当てるのでこっちは大まじめだ。

準備とは、「予想→購入」を、毎週・効率よく・長期間継続して実行するためのツール作り。そしてツールとは、エクセル(EXCEL)による予想ツール。これから「ロトロクチャレンジ」の予想エクセル考案と作成の様子を記録していく。

このページは第一段階『データベースファイル』の作成をする。ミニロトでの経験を活かし、きれいでシンプルな「作品造り」に取り組む!

DBシートを作る

基本的にはミニロトチャレンジの考え方を踏襲していく。

この頃はまだエクセルの「テーブル機能」を知らなかったので使用していない。大好きな機能なので今回は初めから入れておくことにする。

シート名は『DB』とした。

(B表)のデータを入力する

当せんNoのデータは、全て みずほ銀行さんのサイト内「当せん番号案内」から入手できる。「先月以前の当せん番号案内」というコーナーだ。

「(B表)A表以前の当せん番号」のデータを入力するので、まずは場所を把握。あとでエクセルへコピペ入力する。

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり


販売実績やキャリーオーバーのデータもぜんぶ収集したいが、古いデータは入手できない。今、拾える分までを採取しておく。

■「DBシート」を作る

コピペ入力をするための受けとなる「DBシート」を作成する。これを先にやっとけば、あとはしばらくコピペを繰り返すだけ。簡単だ。

「DBシート」とは「データベースとなるシート」のことで、今後の予想に活用する計算や分析など『すべての源』となる大切な元データである。

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

①見出しを作成する

コピーしたデータを貼り付ける場所、のちのち使用する計算枠や、使用するかもしれない販売実績、キャリーオーバーも考慮。小当たりの金額などを入力するセルも用意する。上の2行は、あとで使うので空けておく。

②テーブルをセットする

挿入タブからテーブルをセット。ボク🤠の好みは、黒の枠線付きだ。フォントはメイリオ、フォントサイズは 10 にした。このテーブル名は「テーブル1」となる。
見出し行は、上揃えにして、折り返して全体を表示させ、高さを45にセットすると、列幅を好みへ調整しやすいはずだ。

■「旧データ」をコピペ

古いデータは 20回分づつ一覧表になっているのでコピペの効率が良い。ここでは、古いデータをコピペして書式を軽く整えるところまでを行う。

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

①第一回から20回分づつコピペ

サイトから必要部分をコピーして貼り付けるだけ。ただし、貼り付け先の書式に合わせた方が良いだろう。動画は80回分の事例だが、これを(B表)の最後まで完了させてから次の②へ移っても良い。

②抽選日の列を整える

抽選日の書式が 長い日時形式になっているので、短い日時形式へ変更する。列幅はできるだけ狭い方が全体が見やすくて好きだ。

③回別の列を整える

漢字式で、第??回といった形式になっているので数字だけに直す。繰り返すが、列幅はできるだけ狭い方が全体が見やすくて都合がよろしい。

④各列の幅と罫線を整える

狭くても良い列は狭くしておく。b1~b5の列は、当せん金が発生した時に記録するスペースだ。広くとらなきゃいけなくなるようにガンバらねば!🔥

■ 数式を入れる

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

①ボーナス数字の色を変えておく

解りやすいように、ボーナス数字の列はフォント色を変えておく。

②何回分入力できたかカウント

何回分のコピペが完了したか解るように数式を入れておく。ここは最終的に「現在、第何回目か」を検出するための大切なセルとなる。

下の数式を[A2]へ入力した。

=COUNT(テーブル1[回別]))

※テーブルをいくつか作成してここに至った場合は「テーブル1」とはならない

③当選数字を繋ぐ

六つの当せん数字を繋いでおく。これは、当選したかどうかを判定するための大切な仕組みなんだ。過去に同じ当せんNoがあったかも検出できる。

下の数式を[J4]のセルへ入力してエンター押したら、あとはスピルで下まで一気だ。

=IF([@1桁目]=””,””,VALUE(CONCATENATE([@1桁目],[@2桁目],[@3桁目],[@4桁目],[@5桁目],[@6桁目])))

(A表)のデータを入力する

次に、「(A表)先月から過去1年間の当せん番号」のデータを入力する。ひと月ごとブロックになっているので、効率的にコピペするには工夫が必要だ。

■ 別シートへコピペ

別のシートを起こし、テーブルを用意して(A表)のデータをそのままコピペしていく。動画は3カ月分の事例だが、これを(A表)の最後まで完了させる。このテーブル名は「テーブル2」となる。

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

ここで新たに作成したテーブルは、『テーブル2』という名前になってるのが大事!!
違う場合は、テーブル名を修正する必要アリ!

■ データの並べ替え

上記の(A表)データのままでは「DBシート」の「テーブル1」へコピペすることができない。関数を使って並べ替え、一気にコピペする。

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

①見出しを別シートへコピペする

回別から口数までの16列分を[K1]のセルへ貼り付ける。

②テーブル化する

[J~Z]の列を、適当な行数でテーブル化し、[J2]セルへ上記(A表)データの一番古い回別データの左にあるNo(当事例では1237)を入力しておく。このテーブ名は「テーブル3」となる。

③行番号をセットする

[J3]のセルに行番号を計算する数式を入れる。入れたら、数字が1になるまで下へコピーする。

=J2-12
④回別をセットする

[K2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1],テーブル2[[#見出し],[3]])
⑤抽選日をセットする

[L2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+1,テーブル2[[#見出し],[3]])
⑥1桁目をセットする

[M2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+2,テーブル2[[#見出し],[3]])
⑦2桁目をセットする

[N2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+2,テーブル2[[#見出し],[4]])
⑧3桁目をセットする

[O2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+2,テーブル2[[#見出し],[5]])
⑨4桁目をセットする

[P2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+2,テーブル2[[#見出し],[6]])
⑩5桁目をセットする

[Q2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+2,テーブル2[[#見出し],[7]])
⑪6桁目をセットする

[R2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+2,テーブル2[[#見出し],[8]])
⑫B(ボーナス数字)をセットする

[S2]のセルに行番号を計算する数式を入れる。式のヘッドには「-」を付けておく。

=-INDEX(テーブル2,[@列1]+3,テーブル2[[#見出し],[3]])
⑬維は飛ばす

ここは、コピペ後にセットするので何もしない。[T2]のセルは空白のまま。

⑭販売実績額をセットする

[U2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+9,テーブル2[[#見出し],[3]])
⑮キャリーオーバーをセットする

[V2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+10,テーブル2[[#見出し],[3]])
⑯1等をセットする

[W2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+4,テーブル2[[#見出し],[6]])
⑰口数1をセットする

[X2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+4,テーブル2[[#見出し],[3]])
⑱2等をセットする

[Y2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+5,テーブル2[[#見出し],[6]])
⑲口数2をセットする

[Z2]のセルに行番号を計算する数式を入れる。

=INDEX(テーブル2,[@列1]+5,テーブル2[[#見出し],[3]])

■「DBシート」へコピペ

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

上記で並べ替えたデータを「DBシート」の「テーブル1」最下行へコピペして、データ様式や書式を整える。

①「テーブル3」を「テーブル1」へコピペ

「テーブル3」の[K1]から[Z1]までをコピーして、「テーブル1」の[A列の最下の空セル]へ ペーストする。この時、回別の番号がちゃんと連続していることを確認しておく。連続していなかったら何か間違っている。

②データ様式を整える

置き換え機能を使って、漢字の「円」と「口」と「該当なし」を消去する。回別も数字だけに直して幅スペースを節約。同時に第2500回の分までエリアを用意しておくと、あとあと計算させやすい。

※おまけ

「維」の列(J列)へ条件付き書式の「重複検知」を入れておく。過去の当せんNoが再度発生したら黄色に変わるようにセットした。第1823回時点では、まだ当せんNoが重複した形跡はない。

cb1シートを作る

次に、カウントベースシート(cbシート)を作る。今後の分析において土台となる大事な位置づけになるだろう。

ミニロトチャレンジでは、多種の「cbシート」を継ぎ足して作成してしまい、無駄にコンピューターへ負担をかけている気がしていた。

今回は、出来るだけ少ない「cbシート」へ納めるように努力する。でも、おそらく一つでは済まないのでシート名には番号をつけて『cb1』とした。

テーブル枠を作る

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

数式を入力してカウントテーブル(計数表)とするための「枠」を作成する。

なお、ここでは「テーブル機能」は使わない。大量の数式計算をテーブル機能内で行って計算が遅くなった経験があるからだ。たとえ少しでも早くしたい。

さらに、このテーブルは観測に使うことはないはずなので、フィルタリングを気にする必要もない。不要なリスクは避けておこう。

数式の入力と外観整備

※文字まで読めるきれいな画像はYouTubeへ移動する必要あり

各回別ごとで、①~㊸が出現したかどうかをカウントする数式をセットする。出現したときだけ「1」を表示させる事になる。

■ 数式の入力

[B4]のセルに各当せん数字をカウントするための数式を入れる。入れたら、あとは全範囲へドラッグ&ドロップで広げるだけ。

=COUNTIF(テーブル1[@[1桁目]:[6桁目]],B$3)

■ 外観を整える

現在の表示は「0か1か」となっている。

少々見づらいので、書式をさわって「1」だけを表示させる。表示形式で操作するのが一番コンピューターに負担をかけない方法だと考えた。

いったん、ここまで

今後、カウントベース的なシートやテーブルが増加していくが、このブックに追加するかは都度検討だ。どんな分析をしていくかに大きく影響されるし。

とりあえず、DB関連はここまで。いったん分析系のブックへ進もう。