【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう
【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

本記事では
東京都コロナ入院者数と退院者数比率推移グラフ
を作成するツール 18_01.accdb を作成する方法の概略について紹介します。

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう
しらかば堂

いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

具体的には、前回作成した 17_01.accdb をコピーして 18_01.accdb を作成し

17_01.accdb 同様 16_01.accdb 内の T0000_東京都コロナ発症状況_マスタ テーブル リンク を張った状態で

これを入力 テーブル として 東京都コロナ入院者数と退院者数比率推移グラフ を作成するための Excel ファイル
T1040_日付_退院者数_入院者数_退院率.xlsx を作成していきます。

そしてついでに(これは Excel の技ですが) T1040_日付_退院者数_入院者数_退院率.xlsx を使って 2軸グラフ も作成する予定です。

マスタテーブルのデータ更新

ところで 政府が再度東京都に緊急事態宣言を発令したこと を受け
この記事以降 2021/07/23付 CSV データ を使用することにしましょう。

最新 CSV データの更新の仕方については

【連載】#15 CSVファイルを直接Accessのテーブルにインポートする方法を説明します

の記事を参考に、あらかじめ 16_01.accdb 内の T0000_東京都コロナ発症状況_マスタ テーブル
を更新しておいてくださいね。


またお時間のない方、手っ取り早く本記事の内容を確認したい方には

(有償) 16_01.accdb から個人のPC環境に依存する部分を削除した 16_02.zip のダウンロードは次のリンクから入手できますので、個人PC環境に依存する部分を調整しAccess ファイル 16_01.accdb を準備したあと最新データを更新して下さいね。

(有償) 16_02.zip をダウンロードする


また他 Access ファイル内 テーブル への リンク参照 記事をまだ読まれていない方は

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

を参照して内容の確認をお願いします。

グラフ作成に向けた考え方

今回の目標となるグラフを再掲しましょう。

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

またグラフのもとになる
T0000_東京都コロナ発症状況_マスタ テーブル
の一部(一番古いレコードと一番新しいレコード)も再掲しましょう。

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう
【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

まず、このようなグラフを書くのに必要なデータは何だと思いますか?

Excel でグラフを描画したことがある方は想像がつくかもしれませんね。

答えは

  1. グラフの横軸となる日付
  2. 日付毎の退院者数(退院済フラグの合計)
  3. 日付毎の入院者数
  4. 退院率=日付毎の退院数÷日付毎の入院数

ですね。

でも T0000_東京都コロナ発症状況_マスタ テーブル からどうやって上記の4つのデータを導き出すんでしょうね。
ここが本記事の本題になります。

また Excel にデータをエクスポートしたあとグラフを描画するにあたり、データ数が増え続けると相対的にグラフの横軸が長くなり、最終的にとっても見にくくなるという意味で出力するデータ数が決まっていた方が都合がよいので

CSV に含まれる最新日付を含み 400日分 のデータのみ出力することに
しましょう。

この 400日 は 過去1年間+約1か月間の推移を見たい という意味です。

厳密には365日+31日=396日とかいう感じですが、エクスポートデータの個数が直感的に目で見て分かりやすい 切りのいい数 にしています。

テーブル内のレコードの特徴

さてグラフを書くという観点で上の T0000_東京都コロナ発症状況_マスタ テーブル のデータビューを眺めると以下のような特徴がありそうです。

  1. これらの レコード は患者毎の入院 レコードと推定できる。なぜなら入院しないと レコード として記録されないと推定できるから
  2. ここから現在の レコード に明示されてはいませんが、レコード があることと入院数は同じ意味であると考えることができる。 例えば T0000_東京都コロナ発症状況_マスタ テーブル の一番新しい レコード では 退院数フラグ の記入がないが、レコード 自体は存在しているのでこの患者は入院し、未退院の状態であると推定できる
  3. レコード が患者単位で記録されていることを受け、同一日に複数の患者が入院するといったことが普通に起きている

グラフ用データ作成に向けた方針

以上の レコード の特徴を踏まえると
グラフ作成用データ作成に向けた方針は次のようなものになります。

  1. グラフの横軸となる日付データの個数を400にするために
    T0000_東京都コロナ発症状況_マスタ テーブル
    の一番新しい日付(この例では2021/07/23)に遡る400日以前の レコード は集計に入れない工夫が必要
  2. 入院数の集計を行うために各 レコード 毎に、入院数に相当するフラグの新設が必要
  3. T0000_東京都コロナ発症状況_マスタ テーブル からのお互いに同じものがない日付の作成が必要
  4. 日付毎に入院数と退院数を合計することが必要
  5. 日付、退院数、入院数、退院率=日付毎の退院数÷日付毎の入院数 を フィールド とするレコード をもった テーブル の作成が必要
  6. テーブル Excel ブックとしてエクスポートすることが必要
  7. Excel ブックから、日付入院数退院数退院率に対する 2軸グラフ の作成が必要

ツールの全体像

それでは今回のツールの全体像を紹介しましょう。まず 最終的にこのツールを自動実行して終了まで持っていくautoexec マクロです。

ここでは記事を書いている途中でこのツールが勝手に動かないように
名前を autoexec_ に変更して掲載しています(笑)。

ここで T0000_東京都コロナ発症状況_マスタ テーブル の前だけ➡がついて 参照リンク になっていることにも注意してくださいね。

逆にいえばそのほかの➡のついていない テーブル はこの 18_01.accdb の中に実体がある テーブル ということです。

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

この autoexec マクロ の役目は、この 18_01.accdb が起動されたら、
M1000_作成_T1040_日付_退院者数_入院者数_退院率 マクロを起動して
自らを終了させる!

この一点につきます。

では M1000_作成_T1040_日付_退院者数_入院者数_退院率 マクロ は何をするのでしょうか。

この マクロ マクロビルダ 画面は以下のようになっています。

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

以前

【連載】#16 Accessのマクロを細かく調整し、おしゃれに自動化する方法を説明します

でご紹介したように

  • 警告メッセージの出力抑制設定をしたあと
  • 個々の方針に沿った クエリ 処理を実行し、最終的に出来上がった
     T1040_日付_退院者数_入院者数_退院率 テーブル Excel ファイル としてエクスポートし
  • 最後に Excel ファイルの格納場所、ファイル名をメッセージとして出力する

そんな流れになっています。

まとめ

いかがですか?

今回は マスタテーブル のデータ更新をしたうえで
東京都コロナ入院者数と退院者数比率推移グラフ
を作成する方法の概略を

  • グラフ作成に向けた考え方
  • テーブル内のレコードの特徴
  • グラフ用データ作成に向けた方針
  • ツールの全体像

という観点で紹介しました。

次回以降は本記事の中で紹介した方針に沿って
具体的な クエリ 処理の内容を1つずつ紹介していきます。

さてこの記事全体の目標は

  • 今の状況から抜け出してもっと前向きな仕事に取り組みたい
  • さっさと仕事を切り上げて充実したアフターファイブを過ごしたい

でしたよね。

あなたの解決したい問題は何ですか?


次回はまた

【連載】#19 Accessでテーブル内データの最大値を集計-最大クエリを使って求めよう

Access VBA の新しい窓を開きましょう。


Microsoft Access 関連教材は次のリンクからどうぞ。

Access VBA 関連教材の紹介


(有償)本記事中で参照している 16_01.accdb から個人のPC環境に依存する部分を削除した 16_02.zip のダウンロードは次のリンクからどうぞ。

(有償) 16_02.zip をダウンロードする