財務が見え~るデータ表示画面では、(5)の報告書選択画面で選択した報告書のBS・PLのhtmlを解析し、財務が見え~る用のデータに変換して表示、確認後 ファイルに出力する。
ここでは、財務諸表に水色のストライブが入っている企業(以下標準パターンと呼ぶ)について記述する。
標準パターンのhtmlの構造
スバル2016年3月末の有価証券報告書 BS から流動資産合計部分
のhtmlソースを抜粋すると、 下のようになっている。
<tr style="height:13.5pt"> <td valign="middle" style="vertical-align:middle;background-color:#ffffff;"> <p class="smt_tblL" style="padding-left:7.5pt;padding-right:3.7pt;margin-top:0pt;margin-bottom:0pt;font-family:'MS 明朝';"> </p> </td> <td valign="middle" style="vertical-align:middle;background-color:#ffffff;"> <p class="smt_tblL" style="padding-left:7.5pt;padding-right:3.7pt;margin-top:0pt;margin-bottom:0pt;font-family:'MS 明朝';"> </p> </td> <td valign="middle" colspan="8" style="vertical-align:middle;background-color:#ffffff;"> <p class="smt_tblL" style="padding-left:7.5pt;padding-right:3.7pt;margin-top:0pt;margin-bottom:0pt;font-family:'MS 明朝';">流動資産合計</p> </td> <td valign="middle" style="vertical-align:middle;border-top-style:solid;border-top-width:0.75pt;border-top-color:#000000;border-bottom-style:solid;border-bottom-width:0.75pt;border-bottom-color:#000000;background-color:#ffffff;"> <p class="smt_tblL" style="text-align:right;padding-left:1.5pt;padding-right:4.5pt;margin-top:0pt;margin-bottom:0pt;font-family:'MS 明朝';"> <ix:nonFraction contextRef="Prior1YearInstant" decimals="-6" scale="6" format="ixt:numdotdecimal" name="jppfs_cor:CurrentAssets" unitRef="JPY">1,473,268</ix:nonFraction> </p> </td> <td valign="middle" style="vertical-align:middle;border-top-style:solid;border-top-width:0.75pt;border-top-color:#000000;border-bottom-style:solid;border-bottom-width:0.75pt;border-bottom-color:#000000;background-color:#ffffff;"> <p class="smt_tblL" style="text-align:right;padding-left:1.5pt;padding-right:4.5pt;margin-top:0pt;margin-bottom:0pt;font-family:'MS 明朝';"> <ix:nonFraction contextRef="CurrentYearInstant" decimals="-6" scale="6" format="ixt:numdotdecimal" name="jppfs_cor:CurrentAssets" unitRef="JPY">1,784,093</ix:nonFraction> </p> </td> </tr>
ここで 、二つ目の<ix:nonFraction の tagでくくられた部分に注目すると、
<ix:nonFraction contextRef=”CurrentYearInstant” decimals=”-6″ scale=”6″ format=”ixt:numdotdecimal” name=”jppfs_cor:CurrentAssets” unitRef=”JPY”>
1,784,093
</ix:nonFraction>
となっている。
tagの ix: は inlineXBRL として規定した名前空間であることを示し、(スンマセン この辺はあまりわかってないです。)name=”jppfs_cor:CurrentAssets” は EDINETで規定した勘定科目コード表の要素名だ。
したがって、htmlから必要な要素名を検索し、金額部分を切り出せば、目的の金額を求めることができる。
<jppfs_cor:CurrentAssets contextRef=”CurrentYearInstant“ unitRef=”JPY“ decimals=”-6“>1784093000000</jppfs_cor:CurrentAssets>
変換に用いた要素名
科目名 | 要素名 | 科目名 | 要素名 | |
流動資産 | CurrentAssets | 短期借入金 | ShortTermLoansPayable | |
固定資産 | NoncurrentAssets | コマーシャルペーパー | CommercialPapers | |
その他資産 | DeferredAssets | 1年以内長期借入金 | CurrentPortionOf LongTermLoansPayable |
|
流動負債 | CurrentLiabilities | 1年以内社債 | CurrentPortionOfBonds | |
固定負債 | NoncurrentLiabilities | 1年以内 新株予約権付社債 |
CurrentPortionOfBonds WithSubscriptionRightsToShares |
|
純資産合計 | NetAssets | 1年以内リース債務 | LeaseObligationsCL | |
利益剰余金 | RetainedEarnings | |||
売上高 | NetSales | 長期借入金 | LongTermLoansPayable | |
売上総利益 | GrossProfit | 社債 | BondsPayable | |
営業利益 | OperatingIncome | 新株予約権付社債 | BondsWithSubscription RightsToSharesNCL |
|
当期純利益 | ProfitLoss | リース債務 | LeaseObligationsNCL |
正しくは、EDINETの勘定科目コードを詳しく検討し、複数の要素名の金額を合算するなどの対応が必要だが、今回はプロトタイプ的に上記の要素名で変換を行った。
なお画面の 横幅の制限から科目名・要素名ともに、2行に記載してある場合がある。
変換結果
スバル2016年3月末の有価証券報告書 BS・PL をもとに、財務が見え~る用のデータに変換して表示した例を下に示す。必要があれば、ここでデータの修正も可能。
今回は、稚拙とのそしり覚悟で htmlをindexOfを駆使し、ゴリゴリ データ変換を行ったが、
- XBRLを直接処理する方法
- htmlを HtmlAgilityPackを使って解析する方法
が考えられる。
現状では、100%自動的に変換可能なほど完成度が高くなく、BS・PLを見ながらデータを確認したいことから XBRL・html双方を読み込む必要がある。さらに 財務諸表に水色のストライブが入っていないパターン(特殊パターン)の企業の場合、XBRLに連結データが記載されていない。
このことから 技術的には興味はあるものの 今回は1.の方法は不適切と思う。
(もっとも 特殊パターンの企業をあきらめれば、話は違う)
2.の方法は、レスポンス的に問題がなければ ロジックもスッキリしてアリかも 後で実験してみよう。