

以前、「スマホ+Excelの組み合わせ」で紙レシートを電子保存する方法について解説しました。
その際に「PDFは画像じゃないから、同じ方法は使えませんよ!」と注釈しましたが、PDFだってExcelデータ化したいですよね。
電子メールやFTPサーバ経由などで、大量に受け取る請求書や領収書、納品書などは、
送信元でPDFファイルに変換されていませんか?
(請求書などを.xlsxファイルで送ることは、ほとんどなくなりましたよね。)
請求書も従来型から適格請求書にかわり、事業者番号を正確にExcelへ転記したり、標準税率/軽減税率ごとに税額検算したり、帳票チェックがさらに複雑になってきました。
できれば、目視で手入力するのは、さけたいところ。
やはり、PDFを他のファイル形式へ変換する専用有料ソフトを導入しないと、ダメですかねぇ…。
そんなことはありません。
Microsoft365など一部バージョンのExcelでは、パワークエリで、「PDFからデータ取得」する機能が搭載されています。 この機会に、ぜひパワークエリの操作性を、ちょっぴり体験してみませんか?
初心者にはとっつきにくいけれど、とても多機能で強力なパワークエリ
パワークエリ(Power Query)は、Excel2016以降へ標準搭載されるようになったツールです。
Excelリボンでは、[データ]→[データの取得と変換]という表記で、ソースデータの種類がアイコン化されています。


その名(Power Query;強力な問い合わせ(機能))のとおり、.xlsxや.csv以外にも、さまざまなデータをExcelへ取得し、変換できる便利なツールです。
しかしこのツールは、もともとExcel専用に開発されたものではありません。
AzureやPower BIといったシステムインテグレーター向け開発ツールとも連携できるように設計されているため、一般のMicrosoft Officeユーザーには、少々とっつきにくいデータベース用語も出現します。
とくに、パワークエリエディタは、操作になれるまでは、なかなか思いどおりにデータを取得できないもどかしさを感じるかもしれません。 Power Query全容を理解するためには、ブ厚い参考書を読みこむ必要がありますが、この記事では、ほんの入口部分
[データの取得]→[ファイルから(F)]→[PDFから(P)] を使って、PDFの表データをExcelへ取得するところだけを、実際に操作してみましょう。


まず、Excelデータ・タブのリボンで、標準では一番左に配置されている[データの取得]アイコンをクリックします。
すると、「どこから(ソースデータを)取得するか?」に関して、
・ファイルから(F)
・データベースから(D)
・Azureから(A)
・Power Platformから(W)
・その他のデータソースから(O)
を選ぶことができます。
「ファイルから(F)」をクリックすると、さらに取得するファイル種類を選択できます。
・Excelブックから(W)
・テキストまたはCSVから(T)
・XMLから(X)
・JSONから(J)
・PDFから(P)
・フォルダーから(F)
とありますが、今回は[PDFから(P)]だけを取り上げます。
ためしに、PDFでメール受信した、以下のようなサンプル帳票をExcelへ取り込んでみましょう。


どこにでもありそうなビジネス帳票ですが、このようなPDFの表(文字)をコピーして、Excelワークシートにペーストしたら、くずれてしまった経験はありませんか?
たとえば左下の部分。


セル結合されていたような表を、単純にPDFコピー→Excelペーストすると、


ヘッダとデータがズレてしまうため、正確に再現させるためには、目視で手入力してしまった方が早いくらいです。
そこをうまくExcelで再現できるのが、パワークエリの強みです。
[データの取得]→[ファイルから(F)]→[PDFから(P)]
で、パワークエリエディタを起動しましょう。


Excelデータ化したいファイルを選択すると、ナビゲーターが立ち上がります。


表示オプションとして、PageとTableを選択することができます。
今回のサンプルPDFについては、ナビゲーターが、1ページを自動的に5つのテーブル(Table)に分割して、認識しています。


そこで、空白表は無視して、Excelデータ化の必要な3テーブルのみを選択し[データの変換]ボタンをクリックします。


パワークエリエディタに自動読み込みされた表を、エディタ上で整形(不要行削除、数値の表示形式変換)し、最後に左上の[閉じて読み込む]ボタンをクリックします。 ※じつは、このプロセスがパワークエリの一番重要、かつ初心者にとってむずかしい編集作業なのですが、エディタ操作方法については、機会を改めて、別の事例も参照しながらご説明します。


帳票全体のうち、Excelデータ化を必要とする3つのテーブルが、表くずれすることなく、Excelワークシート上に再現されました。
まとめ
パワークエリに[PDFから(P)]の選択肢があれば有料PDFデータ変換ソフトは必要ありません!パワークエリエディタも、ちょっとさわってみましょう
今回ご紹介した機能は、パワークエリでできることの全体からみたら、ごく初歩的な一部分でしかありません。このツールでは、調査したいこと、記録したいことの内容に応じて、いろいろなクエリ(問い合わせ)機能を設計することができます。
パワークエリ自体は、Excel専用ツールではないので、データベース初心者には難解な用語や操作方法も出てきます。しかし、最初から難しいことをしようと意気込むのではなく、単純に「PDFをExcelへきれいに読み込む」くらいの簡単なところから試して、独特の操作性になれていく方がよいのではないでしょうか?



何より、PDFの読み込みがExcelだけで完結すれば、
PDFデータ変換専用の、
数千円(あるいはプロ・ユースの数万円もする)専用ソフトウエアを、わざわざ導入する必要がありませんからね。
Excelの奥深さを、ぜひ自分で手を動かして実感してみてください。





