ExcelでPDFファイルの表を取得する

Power Query

PDFで表形式のデータをExcelで活用したいとき、皆さんどうやってExcelに貼り付けますか?

単純にPDFの表をコピーしても、表形式でうまく貼り付かない場合が多いです。

そんなときは、Power Queryを使ってPDFファイルの表を取得しましょう。

Power QueryでPDFファイルを1ページ取得する

データを取得する

「データ」タブを開き、「データの取得」ー「ファイルから」ー「PDFから」をクリックし、PDFからデータを取得します。

取得するPDFファイルを選択し、「インポート」をクリックします。

PDFの表が自動的にテーブルデータ型として認識してくれます。テーブルをクリックし、「データの変換」をクリックします。

Power QueryエディターからPDFファイルを取得するには?

「ホーム」タブから、「新しいソース」ー「ファイル」ー「PDF」をクリックし、PDFからデータを取得します。

データを出力する

必要に応じてデータの加工を行います。データの加工が終われば、「閉じて読み込む」をクリックします。

PDFファイルの表がExcelで取得することが出来ました。

ただし、この方法では複数ページのPDFだった場合、Power Queryではページごとにテーブルが分かれるため、ページごとに取得する必要があります。

Power QueryでPDFファイルを複数ページ取得する

Power QueryでPDFファイルを取得すると、以下のようにページごとにテーブルが分かれます。

Tabale001を選んでも1ページ目しかデータを取得できません。別のクエリでTable002を選べば2ページを取得することは可能ですが、ページ数だけ繰り返し取得すると大変ですよね。

2ページ以降もあるPDFファイルの場合はどうすればいいでしょうか?

データを取得する

テーブルではなく、フォルダをクリックし、「データ変換」をクリックします。

テーブルを選んだ場合とは違う形式の表になりました。

データを加工する

テーブルデータのみ欲しいため、「Kind」列の▼をクリックし、「Page」のチェックを外してOKをクリックします。「Table」のみにするとで、テーブルデータのみに絞られます。

この状態だと、ページごとのテーブルが展開されていませんので、展開していきます。

「Data」列の↔️をクリックし、OKをクリックします。

テーブルの中身が展開されました。

「Id」列、「Name」列、「Kind」列は分析に不要なため、列を選択した状態で右クリックし「列の削除」をクリックします。

テーブルの中身を展開してできた列の列名がColumn1などになっており、データの1行目がヘッダーになっています。このままだと列名が分かりにくいため、「1行目をヘッダーとして使用」をクリックします。

1行目が列名になりました。

データを出力する

これで一通りのデータ加工は終わりました。「閉じて読み込む」ボタンをクリックします。

複数ページのPDFを取得できました。

Power Queryで「複数」のPDFファイルを取得する

先程は1ファイルのPDFで複数ページのデータ取得について解説しました。

同じフォルダに同じレイアウトのPDFファイルを置いておけば、複数ファイルを取得することが出来ます。フォルダにファイルを追加したら、クエリの更新ボタンをクリックするだけで新たなファイルも含めてデータを取得できます。

データを取得する

「データ」タブを開き、「データの取得」ー「ファイルから」ー「フォルダーから」をクリックします。

PDFファイルが置いてあるフォルダを指定し、「開く」をクリックします。

今回は複数ファイルを読み込んで結合するため、「結合」の▼ボタンをクリックします。プルダウンで表示された選択肢の中から、「データの結合と変換」をクリックします。

「Tabale001」ではなく、「パラメーター1」と書かれたフォルダを選択し、OKをクリックします。

複数ファイルのPDFを取得することが出来ました。

データを加工する

このままだと分析できるデータではないため、データを加工していきます。

テーブルデータのみ欲しいため、「Kind」列の▼をクリックし、「Page」のチェックを外してOKをクリックします。

「Id」列、「Name」列、「Kind」列は分析に不要なため、列を選択して「ホーム」タブの「列の削除」をクリックします。

「Data」列の↔️をクリックし、OKをクリックします。テーブルの中身が展開されます。

Data.Column1、Data.Column2といった列名では意味が分からないため、列名を設定します。サンプルの1行目はヘッダー行になっているため、「ホーム」タブの「1行目をヘッダーとして使用」をクリックします。

ファイルごとのヘッダー行も含めて取得されているため、売上日などの行がファイルの数だけあります。不要のため「売上日」列の▼をクリックし、「売上日」のチェックを外してOKをクリックします。

1列目を分かりやすいように列名を変更します。列をダブルクリックすると列名が修正できます。「ファイル名」と入力します。

データを出力する

これで一通りのデータ加工は終わりました。「閉じて読み込む」ボタンをクリックします。

複数のPDFファイルを取得することが出来ました。

プロフィール
たがみ

IT業界20年程度のシステムエンジニアです。
構築したシステムのデータ検証をExcelで実施することが多く、検証作業の効率化を模索しているときにPower Queryと出会いました。
Excel業務効率化の手助けになればと当ブログを解説しました。
今ではデータ分析でPower BIを活用しており、Power BI、Excelの両方でPower Queryを活用しています。

たがみをフォローする
Power Query
たがみをフォローする
タイトルとURLをコピーしました