サッカーを通じて観戦力と分析力を上げていくブログ

基本的にはサッカー×データに関して試してみたことをまとめています。最近はもっぱらPythonを使った可視化中心。時々自分の好きなガジェットも。

【Power BI】PDF形式のJクラブ個別経営情報開示資料を取り込んでみる

個人的に毎年楽しみにしている「Jクラブ個別経営情報開示資料」。各クラブのPLとBSをまとめられているので、財務状況を比較して見ることが出来ます。しかしこの資料、PDF形式になっていて可視化や分析するには少々手間がかかるのです。そこで今回はPower BIのPDFをデータソースに出来る機能を使って、比較的簡単にデータ化する(整形してcsv化するまで)方法をまとめました。

Power BIとは

Power BIはMicrosoft社製のBIツール。データベースやExcelなどをソースにして簡単に可視化・分析を行うことが出来ます。最近ではAIを使った機能が増えてきており、下記のようなことも手軽に行えるようになっています。

96lovefootball.hatenablog.com

今回利用するpdfの表をソースにする機能も、AIを使っているはずです。

PDFを読み込む

それでは早速やって行きます。まずはPower BI Desktopを準備します。ここから無料でダウンロード出来ますが、現状はWindows端末のみしか利用できません。細かいセットアップ方法は他に詳しくまとめられているので割愛します。

続いてソースとなるJクラブ個別経営情報開示資料の最新版(2018年度)を下記ページからダウンロードします。

www.jleague.jp

今回のデータは12月決算クラブのみが対象となっているので、3月決算の4クラブの列は塗りつぶされていることに注意が必要です。

f:id:virgilvd:20190611011045p:plain

ここから実際に取り込んで行きます。まずはPower BI Desktopを起動して、画面上部の「データの取得」を選択。

f:id:virgilvd:20190611013249p:plain

データソースの一覧からPDFを選択して「接続」

f:id:virgilvd:20190611013403p:plain

しばらくすると下記のようなチェックボックスが出現するので、上3つにチェックを押して「編集」。ちなみにこのTableから始まっているのが、Power BIがPDFから自動で抜き出した表部分になります。

f:id:virgilvd:20190611013854p:plain

自動で抜き出したものはこんな感じに。PLとBSがくっ付いたままだったり、流石にこれだけでは使えるデータになっていません。

f:id:virgilvd:20190611014050p:plain

データの整形

ここからはデータの整形です。デフォルトではPLとBSが一緒に取り込まれているので、2回に分けてそれぞれのデータを作って行きます。基本的には同じ操作なので、今回はPL部分を題材にします。

まずは「行の保持」を使ってPL部分のみを残します。

f:id:virgilvd:20190611221029p:plain

この状態だと1行目に2019年1月期等の余計な列が入っているので、今度は「先頭行を削除」を使って整形して行きます。

f:id:virgilvd:20190611221557p:plain

ここまでの作業でだいぶ綺麗になった感じがありますが、よく見ると長崎が2列に分解されています。

f:id:virgilvd:20190611221734p:plain

分解されてしまっている2列を1つにするのですが、nullが入っていると上手く結合してくれないので、まずはnullをブランクへ置換します。「値の置換」は対象の列を選択した状態で右クリックして選択。

f:id:virgilvd:20190611221958p:plain

画面上部「カスタム列の追加」から、分解された2列を結合。同名の列は作れないので、列名は後の作業を考えて「長崎*」としておきます。

f:id:virgilvd:20190611222144p:plain

f:id:virgilvd:20190611222201p:plain

3月決算のクラブ列に関しても、「カスタム列の追加」から値に全て0が入った「クラブ名*」列を作っておきます。

次に余計な列を削除します。最初の2列や長崎列、3月決算クラブ列は不要なので、列を選択した状態で画面上部「列の削除」をクリック。

f:id:virgilvd:20190611223335p:plain

ここまでくると下記の状態になっているはずです。ここからは完全なる縦持ち(PL項目、クラブ名、金額の3列)にするか、PL項目だけ横に持つかは表現or分析したい内容
次第となります。これは個人の経験則ですが、項目同士の計算が発生する財務諸表分析などを行いたい場合は PL項目の横持ち、営業収益の内訳を手軽にビジュアライズする場合なんかは縦持ちが良いです。

f:id:virgilvd:20190611223807p:plain

今回はデータを縦持ちにするところまでやってみます。(横持ちにする場合は1行目をヘッダーから解除して、行と列の入れ替えを選択することで出来るはずです)まずは準備として、追加したカスタム列のデータ型を他と揃えておきます。対象列を選択して「データ型」から「テキスト」を選びます。

f:id:virgilvd:20190611225425p:plain

PL項目の列(Column3)を選択した状態で、「その他の列のピボット解除」をクリックすることでデータを縦持ちに変換することが出来ます。

f:id:virgilvd:20190611225727p:plain

f:id:virgilvd:20190611230051p:plain

後は値内にある「▲」をマイナスに置換し、データ型や列名を変えたら完成となります。

csvでエクスポート

これで後は普段通りに可視化していくのですが、最後に今回作ったデータをcsv形式でエクスポートする方法も紹介しておきます。この形式で保存しておけば他のツール(例えばPython)でも使うことが出来たり、蓄積がしやすくなるので。

データをエクスポートするには、ビジュアルで対象となるデータを表示し、右上のメニューから「エクスポート」を選択。

f:id:virgilvd:20190611231348p:plain

これで無事csv形式で保存することが出来ました。

f:id:virgilvd:20190611231418p:plain

Power BIを始めとするBIツールが、AIの活用によってどんどん便利になってきています。まだいくつかの作業が発生するとは言えども、PDF形式でもここまで簡単にデータ化出来てしまうので、ぜひ試してみてください。次回以降は整形したデータを使って、可視化や簡単な財務諸表分析をやってみたいと思います。

戦術や分析に関して、こういう見方もあるよ、こうして見た方がいいよ、などご意見等ありましたら、コメントで教えていただけると幸いです。ぜひよろしくお願いいたします!