見出し画像

データの取得と変換(PowerQuery)

Excelでカレンダーを作る(1)はこちら
Excelでカレンダーを作る(2)はこちら
Excelでカレンダーを作る(3)はこちら

「Excelでカレンダーを作る」の番外編です。
Webから取得したデータがそのまま利用できない場合、データ加工やデータ結合が必要になります。「Excelでカレンダーを作る」では、その手順を書いていないので、番外編として紹介します。

そして考察は PowerQueryの本質について少し触れてみました。

Step1「祝日のデータをWebから取得」

画像1

[データ]タブWebからを選択しURLを入力します。
利用するURLは、内閣府「国民の祝日について」のホームページです。
 URL : https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html 
OK」をクリックします。

画像2

ホームページから取得できそうなテーブルの候補が左側に出てきます。選択しテーブルビューやWebビューで内容を確認することができます。

今回必要なのは、2021年と2022年の「国民の祝日」のデータです。Webビューで確認すると「令和3年(2021年)及・・・」と書かれた2つのテーブルが該当しますので、「複数のアイテムの選択」をチェックして該当のテーブル2つにチェックを入れます。

このデータは加工が必要なので「データの変換」をクリックします。

画像3

PowerQueryエディターが開き、データを加工できる状態になります。
左側のクエリに取得したデータの一覧。右側のクエリの設定プロパティ適応したステップが表示されます。
データ加工の手順は、この適応したステップに記録され、何度でもやり直すことができます。これがPowerQueryの特徴です。

取得したデータを確認すると、2つとも同じ年号になっていることが分かります。これはテキスト型のデータを日付型に変換するときに、Excelが自動補間したためです。あとで修正するので、わかるようにプロパティの名前を「Year2021」と「Year2022」に変更しておきます。春分の日が3/20になっている方が2021年、3/21になっている方が2022年です。

Step2「日付データの間違いを修正」

画像4

年号間違いは、適応したステップ変換された型」の誤変換で発生しています。これを修正するために、ひとつ前のステップ「ナビゲーション」を選択して適応前の状態にします。(×をクリックするとステップが消えてしまうので注意してください)

データ「日付」列の値がもとのテキスト型(○月〇日)になり、年号が含まれていないことが分かります。

画像5

日付」列のテキスト(○月〇日)の前に年号を追加することで、誤変換を防止します。「日付」列を選択後、[変換]タブ書式から「プレフィックス」を選択し、年号(2022年)を入力して、「OK」をクリックします。

日付」列のテキストが○年○月○日になっていることを確認します。

画像6

適用したステップの「変更された型」を選択して、「日付」列を日付型に再変換し戻します。「日付」列の年号が正しくなっていることを確認します。

Step3「2021年と2022年のデータを結合」

画像7

2つのデータを結合し、ひとつのテーブルにします。クエリYear2021」を選択し、[ホーム]タブ結合から「クリエの追加」を選択します。

画像8

追加するテーブルの▼から「Year2022」を選択し「OK」をクリックします。
適応したステップに「追加されたクエリ」が記録され、2021年の下に2022年の祝日が追加されたことが分かります。

Step4「ワークシートにデータを読込む」

画像9

PowerQueryで加工したデータをワークシートに読込みます。[ホーム]タブの「閉じて次に読み込む...」を選択します。
既存のワークシート」にチェックを入れて、読込先のセル(K1)を選択します。

画像10

2年分の祝日テーブルを作成することができました。

考察

データの取得と変換(PowerQuery)の特徴は、成果物だけでなくプロセス(ステップ等の工程)を重視しているところです。

どのようにして、データを取得し加工したのかを記録することで、取得元のURLは信頼できるか、加工手順は妥当なのか。プロセスでデータの信頼性を評価できるようになります。

今回は 2年分の祝日データ(34件)なので、結果をマンパワーでチェックすることもできると思いますが、これが1000件、1万件になったとき、同じ品質でチェックできるだろうか。その結果は保証できるだろうか。

仮に1000件のデータをミスなくチェックできたとして、その時間は価値があるのだろうか。価値がないとは言えないがエビデンスは不十分だろう。PowerQueryの適応したステップにはプロセスが記録されています。チェックすべきは結果ではなく、このプロセスです。プロセスが間違っていなければ結果は保証されます。これがエビデンスです。

ではプロセス保証の観点で、もう一度のこのデータを振り返ってみよう。データの取得元は内閣府です。これは十分に信頼できます。しかしExcelは誤変換しています。それはなぜだ!!

私は年号を手動で追加しているが妥当な処理だったのだろうか? Excelのロジックは今年の年号で日付を補間しているが、時間が経ち年号が変わったころにクエリを更新するとどうなるのだろうか・・・。

Webには、星の数ほどの情報が存在し、そこには正解も間違いもあります。正しい情報を取得することと正しく利用することの両立がマストであり、求められる時代なんだと思います。

この記事が気に入ったらサポートをしてみませんか?