LoginSignup
0
0

More than 1 year has passed since last update.

Power BI Desktopでパラメーターを使い人流データを可視化(2)

Posted at

日付を整数型に変換

前回の続きです。
Dateパラメーターを一回設定して、1週間部(7日分)のデータを取得できるようにします。
もっとスマートな方法があると思うですが、プログラム的な知見が浅いため、コツコツと地道な方法(?)で進めました。

指定した日付 - 1
指定した日付 - 2
・・・
指定した日付 - 6

と減算をするそれぞれのクエリーを用意します。
ただ、「日付型-1」をする方法が見つからなかったので、「日付型の値を数字型に変換し、減産する」方法を取りました。

そのために、まず「日付型の値を数字型に変換した値」のリストを用意します。

前回作った「para_date」クエリを複製し、名前を「para_date2」に変更します。
右パネルの「クエの設定」の「適用したステップ」を下から削除し、「YYYYMMDD」の形式に戻し、日付型にします

image.png

右クリックから「型の変更」→「整数」にします。

image.png

「リスト」に変換します。

image.png

前回と同様の手順で「新しいパラメーター」を用意します。
パラメーター名は「select_para_date2」としました。
現在の値は「44313」(2021/04/27)とします。

image.png

「パラメーター利用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も末尾に付与しています。
もう少し効率のよい方法があるかもしれませんが、思いつきそうもないので、今回はこれで進めます。

image.png

クエ入りの追加で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))),
image.png

クエリの追加を行います。

image.png

image.png

1つのクエリに集約できました。
3種類の数値(割合)の列名を「前日比_PreDay」「宣言前(20200407)との比較_PreDeclare」「感染拡大以前との比較(202001-02)_PreSpread」と変更します。
左上の「適用」をクリックし、可視化設定画面に移ります。
「集合縦棒グラフ」で可視化しました。

image.png

「データの変換」→「パラメーターの編集」でパラメーターの値を変更します。

image.png

プルダウンリストから「日付」と「エリア選択」

プルダウンリストから「select_para_area」に「北海道札幌駅周辺」、「select_para_date2」に「44315」(2021/04/29)を選択します。

image.png

更新されました。

image.png

作業の区切り区切りで保存します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0