【Excel】Power QueryでWebページからデータを取得する方法

【Excel】Power QueryでWebページからデータを取得する方法
🛡️ 超解決

Web上の表形式データをExcelに取り込みたいけれど、手作業でのコピペは手間がかかりすぎて困っていませんか?

Power Queryを使えば、Webページ上のテーブルデータを自動でExcelに取り込めます。

この記事では、ExcelでPower Queryを使ってWebページからデータを取得する手順を詳しく解説します。

Web上の情報を効率的に活用できるようになります。

【要点】Power QueryでWebページからデータを取得する手順

  • データ取得元としてWebを指定: Power QueryでWebページをデータソースとして選択する。
  • URLの入力と接続: データを取得したいWebページのURLを入力し、Excelから接続する。
  • テーブルの選択と読み込み: Webページ上のテーブルデータを選択し、Excelシートに読み込む。

ADVERTISEMENT

Power QueryによるWebデータ取得の仕組み

Power Queryは、Excelに標準搭載されているデータ加工・整形ツールです。

Webページからのデータ取得機能は、指定したURLにアクセスし、HTML構造を解析して表形式のデータを抽出します。

これにより、手作業では時間のかかるデータ収集作業を大幅に効率化できます。

取得したデータは、Excelのテーブルとして取り込まれ、必要に応じてさらに加工・分析が可能です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

Webページからデータを取得する手順

ここでは、Power Queryを使ってWebページからデータを取得する具体的な手順を説明します。

  1. Excelで新しいクエリを作成
    Excelを開き、「データ」タブをクリックします。次に、「データの取得」グループにある「データの取得」をクリックします。
  2. データソースとして「Web」を選択
    表示されるメニューから「その他のソースから」を選び、「Web」をクリックします。
  3. WebページのURLを入力
    「Webから」ダイアログボックスが表示されます。「基本」を選択し、「URL」欄にデータを取得したいWebページのURLを正確に入力します。URLの入力が終わったら、「OK」をクリックします。
  4. 接続と認証(必要な場合)
    Excelが指定したURLに接続します。Webサイトによっては、サインインや認証情報(ユーザー名、パスワードなど)の入力が求められる場合があります。その場合は、画面の指示に従って認証情報を入力してください。
  5. 「ナビゲーター」ウィンドウでテーブルを選択
    接続が成功すると、「ナビゲーター」ウィンドウが表示されます。このウィンドウには、Webページ上で検出されたテーブルやリンクの一覧が表示されます。
  6. 取得したいテーブルを選択
    「ナビゲーター」ウィンドウで、取得したいデータが含まれるテーブルを探します。テーブル名をクリックすると、右側のプレビュー画面でその内容を確認できます。取得したいテーブルが見つかったら、そのテーブルを選択した状態で「読み込み」ボタンをクリックします。
  7. Excelシートへのデータ読み込み
    選択したテーブルデータがExcelシートに読み込まれます。データはExcelのテーブル形式で表示され、必要に応じて書式設定や集計が可能です。

Power Query Editorでのデータ加工

Excelシートに読み込んだデータは、Power Query Editorでさらに加工・整形できます。

例えば、不要な列の削除、データ型の変更、フィルターの適用、計算列の追加などが可能です。

Webページから取得したデータがそのままでは分析しにくい場合、この機能が役立ちます。

ADVERTISEMENT

Power Query Editorでのデータ加工手順

ここでは、Power Query Editorでの基本的なデータ加工手順を説明します。

  1. Power Query Editorを開く
    Excelシートに読み込まれたテーブルを選択した状態で、「データ」タブの「クエリと接続」をクリックします。表示されるウィンドウで、対象のクエリ(Webから取得したデータ)をダブルクリックします。
  2. 不要な列を削除する
    削除したい列のヘッダーを選択し、右クリックメニューから「削除」を選びます。複数の列を削除したい場合は、Ctrlキーを押しながら列ヘッダーをクリックして複数選択してから削除します。
  3. データ型を変更する
    列ヘッダーの左側にあるアイコンでデータ型を確認・変更できます。例えば、「123」は数値、「ABC」はテキスト、「1/1」は日付を示します。アイコンをクリックし、適切なデータ型を選択して変更します。
  4. フィルターを適用する
    列ヘッダーの右側にあるフィルターボタン(▼)をクリックし、表示される条件でデータを絞り込みます。例えば、「テキストフィルター」や「数値フィルター」など、データ型に応じたフィルターが利用できます。
  5. 計算列を追加する
    「列の追加」タブをクリックし、「カスタム列」を選択します。表示されるダイアログボックスで、新しい列名と数式を入力して計算列を作成します。例えば、「単価」×「数量」で「売上金額」を計算するなどの処理が可能です。
  6. 加工内容の適用と保存
    データ加工が完了したら、「ホーム」タブの「閉じて読み込む」をクリックします。これにより、加工されたデータがExcelシートに反映されます。

Webページデータ取得時の注意点とトラブルシューティング

Power QueryでのWebデータ取得は非常に便利ですが、いくつかの注意点や、発生しうるトラブルがあります。

Webサイトの構造変更でデータが取得できなくなる

Webサイトのデザインや構造は頻繁に変更されることがあります。

サイトの構造が変わると、Power Queryが以前のようにテーブルを認識できなくなり、データが取得できなくなったり、意図しないデータが取得されたりします。

対処法:

  1. クエリの編集: 「データ」タブの「クエリと接続」から該当のクエリをダブルクリックし、Power Query Editorを開きます。
  2. ナビゲーターでの再確認: 「ソース」ステップでURLが正しいか確認し、必要であれば「ナビゲーター」ウィンドウでテーブルを再度選択し直します。
  3. ステップの修正: サイト構造の変更により、Power Query Editor内の「適用したステップ」がエラーになっている場合があります。エラーが発生しているステップを削除したり、新しいステップを追加したりして、データ取得プロセスを再構築する必要があります。

ログインが必要なページからデータを取得できない

会員制サイトなど、ログインが必要なページから直接データを取得しようとすると、認証エラーでうまくいかないことがあります。

対処法:

  1. Webサイトでのログイン: まず、ExcelではなくWebブラウザで対象のWebサイトにログインします。
  2. URLのコピー: ログイン後に表示されるページのURLをコピーします。
  3. Power QueryでのURL指定: ExcelのPower Queryで「Webから」を選択する際に、コピーしたログイン後のURLを入力します。
  4. 認証情報の提供: Power Queryの接続画面で、「認証の編集」または「アカウントの追加」を選択し、Webサイトで使用しているユーザー名とパスワード、またはCookie情報などを提供して接続を試みます。サイトによっては、この方法でも取得できない場合があります。

テーブルとして認識されないデータ

Webページ上のデータが、Power Queryの「ナビゲーター」ウィンドウでテーブルとして一覧表示されない場合があります。

これは、データがHTMLテーブルタグ(

)で正しくマークアップされていない、JavaScriptによって動的に生成されている、あるいは画像として表示されているなどが原因です。

対処法:

  1. 「Webページ」オプションの利用: 「Webから」を選択した際に、「詳細オプション」を展開し、「URL」の他に「階層」を選択してURLを入力すると、Webページ全体を読み込もうとします。
  2. HTMLテーブルの確認: 「ナビゲーター」ウィンドウで、テーブルとして認識されているもの以外に「ドキュメント」や「HTML」のような項目があれば、それを選択して内容を確認します。
  3. 手動でのテーブル抽出: Power Query Editorで、取得したHTMLコードから特定の要素(例:divタグや特定のクラス名を持つ要素)を指定してデータを抽出する高度なM言語クエリを作成する必要がある場合があります。これは専門知識を要します。
  4. 代替手段の検討: どうしてもPower Queryで取得できない場合は、Webスクレイピングツールや、Webサイトが提供するAPI(Application Programming Interface)の利用を検討します。

データ更新時のパフォーマンス問題

非常に大規模なWebページや、多数のテーブルが含まれるページからデータを取得・更新する場合、処理に時間がかかることがあります。

対処法:

  1. 必要なテーブルのみを選択: 「ナビゲーター」ウィンドウで、本当に必要なテーブルだけを選択して読み込みます。
  2. Power Query Editorでの最適化: 不要な列の削除、データ型の最適化、不要なステップの削除など、Power Query Editorでの処理を効率化します。
  3. 更新頻度の調整: Excelの「クエリと接続」ウィンドウで、各クエリの更新設定を調整します。必要に応じて手動更新にしたり、更新間隔を長めに設定したりします。
  4. バックグラウンド更新の利用: Excelのオプションで「バックグラウンドで更新する」を有効にすると、Excelを閉じている間にもデータの更新が行われるため、作業中のパフォーマンス低下を防げます。

Power QueryとVBAの比較

Webページからデータを取得する方法として、VBA(Visual Basic for Applications)マクロを使用することも考えられます。

しかし、Power QueryとVBAにはそれぞれ得意なこと、不得意なことがあります。

項目 Power Query VBA
操作の容易さ GUI操作が中心で、専門知識が少なくても利用可能 プログラミング知識が必要
Webデータ取得 Webページからのテーブル取得に特化しており、GUIで容易に設定可能 InternetExplorerオブジェクトなどを利用して実現可能だが、コード記述が必要
データ加工・整形 豊富なGUI操作とM言語による高度な加工が可能 コード記述により柔軟な加工が可能だが、複雑になりやすい
更新の自動化 「すべて更新」機能で容易に実行可能 マクロの実行と連動させる必要あり
柔軟性 GUIで対応できない複雑な処理はM言語や他のツールとの連携が必要 プログラミング次第で高度にカスタマイズ可能
学習コスト 比較的低い 高い

一般的に、Webページから表形式のデータを自動で取得・整形したい場合は、Power Queryの方が直感的で効率的です。

VBAは、Power Queryでは実現が難しい非常に特殊な処理や、Excel以外のアプリケーションとの連携が必要な場合に有効な手段となります。

Power Queryで実現できない複雑なWebスクレイピングが必要な場合は、VBAとHTML解析を組み合わせるか、Pythonのようなより強力なプログラミング言語を検討するのが一般的です。

まとめ

この記事では、ExcelのPower Query機能を使ってWebページからデータを取得し、Excelシートに読み込む手順を解説しました。

WebサイトのURLを指定するだけで、手作業では大変なデータ収集作業を自動化できます。

さらに、Power Query Editorを使えば、取得したデータの整形や加工もGUI操作で簡単に行えます。

今後は、Web上の最新情報を定期的にExcelに取り込み、分析に活用できるようになるでしょう。

まずは、よく参照するWebサイトのテーブルデータをPower Queryで取り込むことから始めてみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】