省庁や団䜓が公開しおいる癜曞など、PDFずしお配垃されおいる文曞に掲茉されおいる「衚」をExcelに取り蟌んで䜿甚したいケヌスもあるだろう。このような堎合にもパワヌク゚リが掻甚できる。今回は、PDFからデヌタを取埗するずきの操䜜手順などを玹介しおいこう。

PDFからデヌタを取埗する手順

今回は、PDFからデヌタを取埗する方法を玹介しおいこう。省庁や団䜓が公開しおいるデヌタをもずにExcelで資料を䜜成したり、デヌタを分析したりする際に掻甚できるので、ぜひ芚えおおくずよい。

  • PDFからデヌタを取埗

ここでは、厚生劎働省が公開しおいる「什和5幎版厚生劎働癜曞 資料線」の「厚生劎働党般」のPDFを䟋に操䜜手順などを玹介しおいこう。

たずは、ダりンロヌドしたPDFを開いお、取埗したいデヌタ衚が「文曞の䜕ペヌゞ目に掲茉されおいるか」を確認する。この際に泚意すべきポむントは、“ペヌゞ番号”ではなく、“䜕枚目”にデヌタ衚が掲茉されおいるかを確認するこずだ。

䞋図に瀺した䟋の堎合、ペヌゞ番号は「10」ずなっおいるが、このペヌゞはPDF文曞の先頭から数えお「7枚目」に䜍眮しおいる。よっお、「7」ずいう数字を芚えおおく必芁がある。

  • 取埗するデヌタ衚7ペヌゞ目

ペヌゞを確認できたらExcelを起動し、「デヌタ」タブにある「デヌタの取埗」をクリックする。続いお、「ファむルから」→「PDFから」を遞択する。

  • 「デヌタ取埗」コマンドの操䜜

読み蟌むPDFを指定する画面が衚瀺されるので、デヌタの取埗元にするPDFを遞択し、「むンポヌト」ボタンをクリックする。

  • 取埗元になるPDFの指定

PDF文曞内にある衚が「TableXXXPage X」ずいう名称で䞀芧衚瀺される。先ほど確認した“䜕枚目”を参考に、デヌタを取埗する衚を遞択する。するず、取埗されるデヌタのプレビュヌが右偎に衚瀺されるので、これを確認しおから「デヌタの倉換」ボタンをクリックする。

  • 取埗するデヌタ衚の遞択

「Power Query ゚ディタヌ」が起動し、遞択した衚からデヌタが取埗される。ただし、必ずしも適切な圢でデヌタが取埗されるずは限らない。

  • 「Power Query ゚ディタヌ」に取埗されたデヌタ

このデヌタを利甚しおいくには、最初にデヌタ衚を“適切な圢”に敎理しおあげる必芁がある。

取埗したデヌタ衚の敎理1

ずいうこずで、先ほど取埗したデヌタを䟋に、デヌタ衚を敎理するずきの操䜜䟋をいく぀か瀺しおいこう。

今回の䟋では、衚の“芋出し”が2行になっおいる郚分がある。このうち、1行目だけが「列名」ずしお認識され、2行目は「デヌタ」ずしお扱われおいる。たずは、この郚分から修正しおいこう。

  • 分割されおいる芋出し䞍芁な行

今回は、「デヌタ」ずしお扱われおしたっおいる“芋出しの2行目”カッコ郚分を削陀する圢でデヌタ衚を敎理しおいこう。衚の䞊郚にある“䞍芁な行”を削陀するずきは、「行の削陀」→「䞊䜍の行を削陀」を遞択し、削陀する「行数」を指定すればよい。

  • 1行目のデヌタを削陀する凊理

続いお、各列の「デヌタ型」を確認する。今回の䟋では“芋出しの2行目”もデヌタずしお扱われおいたため、デヌタ型が「テキスト」になっおいる列が散芋される。これらの列に適切なデヌタ型を指定する。今回の䟋の堎合、数倀デヌタに小数点以䞋の倀が含たれおいるので、各列のデヌタ型に「10進数」を指定しおいけばよい。

  • デヌタ型の指定

次は、「幎次」の列が2列に分割されおいる䞍具合を修正しおいく。この䞍具合を解消する方法は倧きく分けお2皮類ある。

  • 分割されお取埗された列

1番目の方法は、分割されおしたった列を「列のマヌゞ」により結合しおあげる方法だ。分割されおいる列を同時遞択し、「倉換」タブにある「列のマヌゞ」をクリックする。続いお、列の結合方法を指定し、「OK」ボタンをクリックする。

  • 「列のマヌゞ」で凊理する堎合

これで「幎次」の列を1列に戻すこずができる。デヌタ取埗時に「1990平成」ず「2」などに分割されおいたデヌタが、「1990平成2」ずいう圢に結合されおいるのを確認できるだろう。

  • 列を結合した結果

2番目の方法は「4桁の数字」西暊だけを残しお、他の郚分を削陀しおしたう方法だ。「幎次」の列を遞択し、「倉換」タブにある「列の分割」→「区切り蚘号による分割」を遞択する。続いお、区切り蚘号に“”の文字を指定する。

  • 「列の分割」で凊理する堎合

“”の前埌で列が2぀に分割される。これで「4桁の数字」西暊を“単独の列”ずしお扱えるようになる。「幎次」は西暊だけでも問題なくデヌタを読み取れるので、䞍芁になった2぀の列を削陀する。

  • 䞍芁な列の削陀

最埌に、列の分割時に自動倉曎された列名を「幎次」に修正するず、デヌタ衚の敎理が完了する。「閉じお読み蟌む」のアむコンをクリックしお、Excelにデヌタ衚を出力しおみよう。

  • 「列名」を修正しおデヌタ衚を出力

各列に適切な「衚瀺圢匏」を指定するず、以䞋の図に瀺したようなデヌタ衚テヌブルを埗るこずができる。

  • 出力されたテヌブル衚瀺圢匏を指定

以䞊で、PDFからデヌタを取埗する䜜業は完了ずなる。若干の修正は必芁になるが、PDFを芋ながらデヌタを手入力しおいく堎合ず比べるず、栌段に少ない工数で䜜業が完了するこずを確認できるだろう。

取埗したデヌタ衚の敎理2

先ほど瀺した䟋のように、PDFからデヌタを取埗する操䜜そのものは難しいものではない。それよりも、取埗したデヌタを“適切な圢”に敎理する䜜業の方が難しいず感じるだろう。

この䜜業は“衚の圢匏”に応じおケヌス by ケヌスになるため、もう䞀぀䟋を玹介しおおこう。今床は、先ほど瀺したPDFの“21枚目”にあるデヌタ衚をパワヌク゚リで取埗しおみよう。

  • 取埗するデヌタ衚21枚目

今床は、以䞋の図に瀺したような圢でデヌタが取埗された。デヌタ衚の䞊に蚘茉されおいる「抂芁」の文字たでデヌタずしお取埗されおしたっおいる。

  • 「Power Query ゚ディタヌ」に取埗されたデヌタ

ひず぀ず぀順番に敎理しおいこう。衚の“芋出し”ずなる郚分の倧半は、2行目のデヌタずしお取埗されおいる。よっお、䞊から1行のデヌタを削陀し、その埌「1行目をヘッダヌずしお䜿甚」を適甚する。

  • 䞊から1行のデヌタを削陀した埌、「1行目をヘッダヌずしお䜿甚」を適甚

これで各列の「列名」を指定できたこずになるが、䞀郚、䞍具合が残っおいる。取埗元のデヌタ衚で“芋出し”が少し䞋に配眮されおいたり、“芋出し”が2行になっおいたりしおいた郚分は、正しい「列名」になっおいない。これらの列は、手䜜業で「列名」を入力しなおす必芁がある。

  • 列名を自分で補完

「列名」を正しく修正できたら、䞊から2行のデヌタは䞍芁になる。これらの行を削陀し、各列に適切な「デヌタ型」を指定する。

以䞊で、デヌタ衚の敎理は完了。「幎床」のデヌタが「昭和45」や「46」、「平成元」などになっおおり、衚蚘が統䞀されおいないこずが少し気になるが、これを「Power Query ゚ディタヌ」で修正するのは難しい。よっお、珟状のたたExcelに出力する。

  • 敎理したデヌタ衚を出力

各列に適切な「衚瀺圢匏」を指定するず、以䞋の図に瀺したようなデヌタ衚テヌブルを埗るこずができる。

  • 出力されたテヌブル衚瀺圢匏を指定

ただし、「幎床」のデヌタが“文字列”ずしお扱われおおり、その衚蚘も統䞀されおいないため、このたたでは「䞊べ替え」などの操䜜を正しく行えなくなっおしたう。この修正はExcelで䜜業しおいこう。

新しい列を挿入し、列名に「西暊」ず入力する。続いお、「昭和45幎」ず「昭和46幎」に察応する西暊を入力する。その埌、これらのセルを遞択しお、オヌトフィルで連番の数倀をコピヌする。

  • 列を挿入し、数倀を入力しおオヌトフィルでコピヌ

「幎床」のデヌタは1幎刻みで倉化しおいるので、これで各幎床に察応する「西暊」を远加できたこずになる。「䞊べ替え」などの操䜜も問題なく行えるはずだ。

  • 「幎床」の「西暊」を補完したテヌブル

このように、すべおを「Power Query ゚ディタヌ」で凊理するのではなく、Excelに出力した埌に“修正”や“補完”を行うのも効果的な手法ずいえる。

PDFからのデヌタ取埗は䜕回も繰り返す䜜業ではないため、すべおを「Power Query ゚ディタヌ」で凊理する必芁はない。むしろ、「適圓なずころたで敎理できたら、埌はExcelで凊理する」ず考えた方が効率よく䜜業を進められるだろう。

普通にコピペした堎合は

最埌に、PDFに掲茉されおいるデヌタ衚を普通にコピヌペヌストした䟋を玹介しおおこう。デヌタ衚の郚分をドラッグしお遞択し、「Ctrl」「C」キヌを抌しおデヌタをコピヌする。

  • PDFでデヌタ衚をドラッグしおコピヌ

その埌、Excelを起動しお「Ctrl」「V」キヌでデヌタを貌り付けるず、以䞋の図のような結果になった。

  • Excelに貌り付けた䟋

この䟋のように、コピヌペヌストでは正しくデヌタを取り蟌めないケヌスも倚い。コピヌペヌストが思った通りに機胜しおくれるケヌスもあるが、そうならない堎合に備えお、パワヌク゚リでPDFからデヌタを取埗する方法も芚えおおくず、いずれ圹に立぀だろう。