##日付を整数型に変換
前回の続きです。
Dateパラメーターを一回設定して、1週間部(7日分)のデータを取得できるようにします。
もっとスマートな方法があると思うですが、プログラム的な知見が浅いため、コツコツと地道な方法(?)で進めました。
指定した日付 - 1
指定した日付 - 2
・・・
指定した日付 - 6
と減算をするそれぞれのクエリーを用意します。
ただ、「日付型-1」をする方法が見つからなかったので、**「日付型の値を数字型に変換し、減産する」**方法を取りました。
そのために、まず**「日付型の値を数字型に変換した値」のリスト**を用意します。
前回作った**「para_date」クエリを複製し、名前を「para_date2」**に変更します。
右パネルの「クエの設定」の「適用したステップ」を下から削除し、「YYYYMMDD」の形式に戻し、日付型にします
右クリックから**「型の変更」→「整数」**にします。
「リスト」に変換します。
前回と同様の手順で「新しいパラメーター」を用意します。
パラメーター名は**「select_para_date2」**としました。
現在の値は「44313」(2021/04/27)とします。
「パラメーター利用1」を複製し、**「-1_パラメーター利用1」という名称にします。
この時点の「詳細エディター」**のスクリプトは以下のようになっています。
let
ソース = Json.Document(Web.Contents(Text.From("https://opendata.corona.go.jp/api/ReductionRate" & selerct_para_date & "&dataName=" & select_para_area))),
テーブルに変換済み = Table.FromRecords({ソース}),
削除された列 = Table.RemoveColumns(テーブルに変換済み,{"errorInfo"}),
#"展開された itemList" = Table.ExpandListColumn(削除された列, "itemList"),
#"展開された itemList1" = Table.ExpandRecordColumn(#"展開された itemList", "itemList", {"date", "dataType", "dataName", "comparisonPreDay", "comparisonPreDeclare", "comparisonPreSpread"}, {"itemList.date", "itemList.dataType", "itemList.dataName", "itemList.comparisonPreDay", "itemList.comparisonPreDeclare", "itemList.comparisonPreSpread"}),
変更された型 = Table.TransformColumnTypes(#"展開された itemList1",{{"itemList.dataType", Int64.Type}, {"itemList.comparisonPreDay", type number}, {"itemList.comparisonPreDeclare", type number}})
in
変更された型
以下のように変更します。
ソース = Json.Document(Web.Contents(Text.From("https://opendata.corona.go.jp/api/ReductionRate" & selerct_para_date & "&dataName=" & select_para_area))),
↓ ↓ ↓
ソース = Json.Document(Web.Contents(Text.From("https://opendata.corona.go.jp/api/ReductionRate" & "?date=" & Date.ToText(Date.From(select_para_date2-1), "YYYYMMDD") & "&dataName=" & select_para_area))),
マイナス1日の「2021/04/26」のデータが取得できています。
上記の変更では、「select_para_date2-1」を「YYYYMMDD」の形式に変換し、さらに「文字列型」に変換し、URLも末尾に付与しています。
もう少し効率のよい方法があるかもしれませんが、思いつきそうもないので、今回はこれで進めます。
##クエ入りの追加で1週間分まとめて取得
1週間分なので、追加で
select_para_date2-2 クエリ名は「-2_パラメーター利用1」
select_para_date2-3 クエリ名は「-3_パラメーター利用1」
select_para_date2-4 クエリ名は「-4_パラメーター利用1」
select_para_date2-5 クエリ名は「-5_パラメーター利用1」
select_para_date2-6 クエリ名は「-6_パラメーター利用1」
と用意します。
クエリを1つにマージしたほうが使いやすいので、「7days_パラメーター利用1」としてマージ(追加)します。
「-1_パラメーター利用1」を複製し「7days_パラメーター利用1」を作り、順番が逆になりますが、「-1日」でない指定した「当日」を選ぶクエ入に変更し、ここに他のクエリを追加します。
**「select_para_date2-1」を「select_para_date2」**とします。
ソース = Json.Document(Web.Contents(Text.From("https://opendata.corona.go.jp/api/ReductionRate" & "?date=" & Date.ToText(Date.From(select_para_date2), "YYYYMMDD") & "&dataName=" & select_para_area))),
クエリの追加を行います。
1つのクエリに集約できました。
3種類の数値(割合)の列名を「前日比_PreDay」「宣言前(20200407)との比較_PreDeclare」「感染拡大以前との比較(202001-02)_PreSpread」と変更します。
左上の**「適用」**をクリックし、可視化設定画面に移ります。
「集合縦棒グラフ」で可視化しました。
**「データの変換」→「パラメーターの編集」**でパラメーターの値を変更します。
##プルダウンリストから「日付」と「エリア選択」
プルダウンリストから「select_para_area」に「北海道札幌駅周辺」、「select_para_date2」に「44315」(2021/04/29)を選択します。
更新されました。
作業の区切り区切りで保存します。
了