Power QueryでWebの表データを自動取得する方法

スポンサーリンク

「Webサイトに載っている表を、毎週Excelにコピペして集計表を更新する」。為替レート、株価、ランキング、各種の統計データ。こうした公開データを、手作業で集めていませんか?

コピペは一見すぐ終わりそうに見えて、実は地味に時間を食います。しかもセルの書式が崩れたり、貼り付ける場所を間違えたりと、ミスの温床になりがちですよね。来週になればまた同じ作業のくり返しです。

この「Webの表を集める作業」は、Excel標準の Power Query(パワークエリ) で丸ごと自動化できます。一度URLと取得する表を指定しておけば、あとは 更新ボタン1つで最新のデータに入れ替わる ようになります。コピペも手入力も、もう必要ありません。

この記事では、Power QueryのWebコネクタを使ってWebページの表を取り込む手順を、最初から順に解説します。URLの指定、取得する表の選び方、整形、定期更新の設定まで一通りカバーします。取得できないページの見分け方や注意点も後半でまとめているので、安心して進めてくださいね。

なお本記事は Windows 版 Excel(2016以降) での操作を前提にしています。Mac 版 Excel ではWebからの取り込み機能が制限されているのでご注意ください。

Power QueryのWebデータ取得とは?

Power QueryのWebデータ取得とは、Webページに掲載された表をURLで指定してExcelに読み込む 機能です。「Webコネクタ」や「Webクエリ」とも呼ばれます。

操作はデータタブから数クリックするだけ。ページ内の表を丸ごと取り込めます。

いちばんの魅力は、取り込んだあとの 更新がボタン1つで済む ことです。Webページ側のデータが新しくなっても、Excelで「更新」を押せば最新の内容に自動で入れ替わります。毎回コピペし直す必要がありません。

Power Queryそのものがはじめての方は、まず全体像をつかんでおくと理解がスムーズです。Power Queryのデータ整形入門や、機能の全体像をまとめたPower Queryとは何か完全ガイドも合わせて読んでみてください。

Webデータ取得が向いているデータ

Webコネクタが得意なのは、ページ内に HTMLの「表」として配置されているデータ です。具体的には、次のようなものが取り込みやすいです。

  • 為替レート・株価などの相場情報
  • 政府や自治体が公開する統計データ
  • スポーツの順位表やランキング
  • 製品スペックや料金の比較表
  • カレンダー形式の一覧データ

逆に、画像として埋め込まれた表や、ログインが必要なページのデータは取り込めません。この見分け方は記事の後半でくわしく説明しますね。

取り込む前に準備しておくこと

特別なアドインのインストールは不要です。Excel 2016以降のWindows版なら、最初から使えます。準備するのは 取り込みたいページのURL だけ。

ブラウザでそのページを開き、アドレスバーのURLをコピーしておきましょう。これで準備は完了です。それでは、実際の手順に進んでいきます。

WebサイトのデータをExcelに取り込む手順【4ステップ】

ここからは、Webページの表をExcelに取り込む流れを4つのステップで紹介します。1ステップずつ順番に進めれば、迷わず最後まで完了できますよ。

ステップ1: 「Webから」を選んでURLを入力する

まずExcelを開き、リボンの [データ]タブ をクリックします。左側にある [データの取得と変換] グループの中から、[Webから] ボタンをクリックしてください。

すると小さなウィンドウが開きます。「URL」という入力欄に、先ほどコピーした 取り込みたいページのURL を貼り付けます。貼り付けたら [OK]ボタン をクリックしてください。

初めて使うときは、アクセス方法を確認する画面が出ることがあります。その場合は、左側のメニューで 「匿名」 が選ばれていることを確認して、そのまま [接続]ボタン を押せば大丈夫です。

ステップ2: 取得する表をプレビューで選ぶ

URLを指定すると、「ナビゲーター」 という画面が開きます。これはページ内にどんな表が含まれているかを一覧で見せてくれる画面ですね。

画面の左側に「Table 0」「Table 1」のような名前が並びます。これがページ内で見つかった表の候補です。

名前をクリックしてみてください。右側にその表の中身がプレビュー表示されます。

プレビューを見ながら、自分がほしいデータが入った表 を探してクリックしてください。お目当ての表が見つかったら、画面右下の [データの変換]ボタン をクリックします。

ここで [読み込み] ボタンを押すと整形せずにそのままシートに貼り付きますが、たいていのWebデータは余分な行や不要な列が混ざっています。そのため、いったん [データの変換] を選んで整える方法をおすすめします。

ステップ3: Power Queryエディターでデータを整える

[データの変換]を押すと、Power Queryエディター という専用の画面が開きます。ここでWebから取り込んだ表を、使いやすい形に整えていきます。

ちょっとむずかしく見えますが、やっていることはシンプル。「いらない列を消す」「先頭行を見出しにする」といった片付け作業をマウスで行うだけです。よく使う整形操作は次のとおりです。

  • 不要な列の削除: 消したい列を選び、[ホーム]タブの[列の削除]をクリック
  • 先頭行を見出しに: [ホーム]タブの[1行目をヘッダーとして使用]をクリック
  • データ型の変換: 列名の左にあるアイコンから、数値・日付などの型を指定
  • 不要な行の削除: [行の削除]から空白行や上部の説明行を除外

整形のたびに、画面右側の [適用したステップ] に操作が記録されていきます。これが「手順」として保存される部分。あとで更新したときも、この手順が自動で再実行されるしくみになっています。

データ整形のもっと詳しいテクニックは、Power Queryのデータ整形入門で解説しているので参考にしてください。

ステップ4: シートに読み込んで完成

表が整ったら、左上の [ホーム]タブ にある [閉じて読み込む]ボタン をクリックします。これでPower Queryエディターが閉じ、整形済みのデータが新しいシートにテーブルとして表示されます。

お疲れさまでした。これでWebページの表が、Excel上のデータとして使えるようになりました。あとはこのテーブルを使えば、いつものように集計表やグラフを作れますよ。

しかも、ここで取り込んだデータは元のWebページとつながったままです。次の章で説明する更新機能を使えば、最新のデータにいつでも入れ替えられますよ。

データを最新に更新する・自動化する方法

Webデータ取り込みの真価は、ここからの 更新 にあります。一度作っておけば、コピペのやり直しなしで最新データを取り込めます。

手動で更新する

いちばん簡単なのは、ボタンを押すだけの手動更新です。取り込んだテーブルのどこかをクリックし、[データ]タブの [すべて更新]ボタン をクリックします。これだけで、Webページの最新データに入れ替わりますよ。

ショートカットキーで更新したい場合は、Ctrl + Alt + F5 を押せば全クエリをまとめて更新できます。

ファイルを開いたときに自動更新する

毎回手で更新するのも面倒、という場合は自動更新を設定できます。テーブルを選んで [データ]タブの [クエリと接続] からクエリを右クリックし、[プロパティ]を開きます。

プロパティ画面で [バックグラウンドで更新する][ファイルを開くときにデータを更新する] にチェックを入れましょう。さらに「N分ごとに更新する」を指定すれば、開いている間も定期的に最新化されます。

決まった時刻に自動で更新を回したい、PCを触らずにデータだけ更新したい、という場合はもう一歩進んだ自動化が必要です。VBAやタスクスケジューラーを組み合わせる方法は、Power Queryのクエリ更新を自動化する方法でくわしく解説しています。

複数ページや複数ファイルをまとめて扱う

似た構造のページが複数あるとき、あるいはフォルダ内の複数ファイルをまとめたいときは、Power Queryの結合機能が役立ちます。フォルダ単位の一括取り込みについては、Power Queryで複数のExcelファイルをフォルダから一括結合する方法を参考にしてください。

うまくいかないときの対処法

Webデータ取得は便利ですが、ページによっては取り込めないことがあります。よくあるつまずきと、その原因・対処法を整理しておきます。

ナビゲーターに表が出てこない

[Webから]でURLを指定したのに、ナビゲーターに表(Table)が表示されないことがあります。これは、そのページのデータが HTMLの表として作られていない のが主な原因です。

最近のWebサイトは、JavaScriptで後からデータを描画するものが増えています。こうしたページは、Power Queryがアクセスした時点ではまだ表が存在しないため、取り込めません。次のようなページは取り込めない可能性が高いです。

  • スクロールすると追加で読み込まれるページ
  • ボタンを押すと表示が切り替わる動的なページ
  • 表が画像として貼られているページ

この場合は、データを CSVやExcel形式でダウンロードできないか をまず探してみてください。公的な統計サイトの多くはダウンロード機能を備えています。ダウンロードできれば、ファイルから取り込む方が確実で安定します。

ログインが必要なページのデータが取れない

会員制サイトや社内システムなど、ログインしないと見られないページのデータは、基本的にWebコネクタでは取り込めません。Power Queryの「匿名」アクセスでは、ログイン後のページにたどり着けないためです。

組織内のシステムであれば、管理者にデータのエクスポート機能やAPIの有無を確認するのが近道です。無理にスクレイピングしようとせず、正規のデータ取得経路を探しましょう。

取り込んだデータが文字化けする

海外サイトなどで文字化けが起きた場合は、Power Queryエディターの [ソース]ステップ を確認します。文字コードの設定が合っていないことが原因です。

Power Queryエディターの右側にある[適用したステップ]で[ソース]の歯車アイコンをクリックし、ファイルの originエンコード(UTF-8 など)を切り替えると直ることがあります。

更新するたびに列が増減してエラーになる

Webページの構造が変わると、取り込み時にエラーが出たり、列がずれたりすることがあります。これはWebデータ取り込みの宿命とも言える注意点です。

対策として、特定の列に依存しすぎない整形手順を意識しておきましょう。また、定期的に更新結果をチェックする運用にしておくと安心です。元ページのレイアウト変更には、こまめに気づけるようにしておくのがポイントです。

サイトの利用規約を確認しておく

技術的な話とは別に、取得先サイトの利用規約 は必ず確認してください。サイトによっては、自動取得(スクレイピング)を禁止している場合があります。

特に大量・高頻度のアクセスはサーバーに負荷をかけるため、トラブルのもとになります。常識的な範囲での利用を心がけ、規約で禁止されているデータの取得は避けましょう。

まとめ

Power QueryのWebコネクタを使えば、これまでコピペで集めていたWebの表データを自動で取り込めるようになります。最後に手順をふり返っておきましょう。

  • [データ]タブ →[Webから] でURLを指定する
  • ナビゲーター で取り込む表を選び、[データの変換]で整える
  • Power Queryエディターで不要な列・行を片付け、[閉じて読み込む]
  • [すべて更新] ボタンやプロパティ設定で、最新データに入れ替える

ポイントは、一度作れば 更新がボタン1つで済む ことです。為替・株価・統計データといった「毎週・毎月くり返し集めるデータ」ほど、自動化の効果が大きく出ます。

ただし、JavaScriptで描画されるページやログインが必要なページは取り込めません。その場合はCSVダウンロードなど別の経路を検討してください。利用規約の確認も忘れずに。

まずは身近な公開データのページで、一度試してみてくださいね。一度コツをつかめば、データ収集にかけていた時間がぐっと減らせるはずです。さらにPower Queryを使いこなしたい方は、Power Queryとは何か完全ガイドPower Queryのはじめ方も合わせてどうぞ。

タイトルとURLをコピーしました