対象:財務・資金調達
回答数: 1件
回答数: 1件
回答数: 1件
回答:1件
現状ではExcel等に取り込んで行うのが手軽です。
ポプラさん、こんにちは。XBRLデータを利用した財務分析に関するご質問ですね。
競合他社の情報をXBRLデータで入手して比較したり分析したりするためには、一般的には以下のような手順が考えられると思います。
1.対象各社のXBRLデータの入手
2.分析指標(ROEなど)の算出
3.各数値や指標値の比較
しかしXBRLは、プログラムで処理することを想定したフォーマットであるため、自力でパーサー(変換プログラム)を書いて任意に加工することができる方には便利ですが、大多数の財務担当者や投資家などのエンドユーザーにはそのままでは使えません。
従ってポプラさんのおっしゃるように、変換ツールを入手する必要があります。
最近では株式会社MetaMoji社の MashIQ XBRL Report のようにXMLデータを取り込んで分析・比較まで行ってくれるツールも登場していますが、まだ数が少なく、予算の制約内で目的に合った機能を提供するものを探すのは難しそうです。
そこで現状では上記の「1」の段階で、Excel等のデータ形式に変換したデータを入手し、表計算ソフト等に取り込んで使用するのが最も簡便で現実的な方法です。
幸いネット上にはExcel形式に変換するソフトや、Web上でExcel形式に変換して配布してるサービスが複数あり、無料で利用することができます。Excel形式のファイルにすることで使用方法の柔軟性は低下しますが、ほぼ統一書式のExcelファイルが手に入るだけでも従来よりも比較は容易になる筈です。
「2」と「3」の段階についてはExcelの集計関数を利用したり、マクロを書くなどして処理するとよいでしょう。(以下でマクロの例を作成してみました。)
ポプラさんのご成功を心よりお祈りいたします。
<参考情報>
1.EDINETなどで公開されているXBRLデータをExcelに取り込む機能のあるツール
・「TeCAX」:Windowsマシンにインストールして使用するツール。商用版もあります。
・「見えるXBRL」(http://disc.g2s.biz/)、「有報キャッチャー」(http://www.ufocatch.com/):
いずれも、Web上で閲覧し、Excel形式でダウンロードする機能があるサイトです。
2.MetaMoji社MashIQ XBRL Report ( http://www.mashiq.com/corp/product/mashiq-xbrl-report.html)
補足
<マクロの例>
以下のマクロは、「有報キャッチャー」で入手できる、XBRLデータを変換したExcelデータを利用するものです。
次のような手順で実行可能です。
--------------------------------------------------
1.「有報キャッチャー」(http://www.ufocatch.com/)から有価証券報告書のXBRLデータをExcelに変換したものをダウンロードする。
2.ダウンロードしたExcelファイルをCドライブ直下に置く。
3.createList()を実行
--------------------------------------------------
「2011-06-20_E04463.xls」の形式で書かれている部分が、実際にサイトからダウンロードしたファイル名です。E04463の部分がEDINETコードになります。
Sub createList()
Set sheet = Workbooks.Add.Sheets(1)
sheet.Range(Cells(1, 2), Cells(1, 3)).Value = Array("営業収益", "ROE")
Call importData("会社A", "C:\2011-06-20_E04463.xls", sheet, 2)
Call importData("会社B", "C:\2011-06-29_E04426.xls", sheet, 3)
Call importData("会社C", "C:\2011-06-17_E04425.xls", sheet, 4)
End Sub
Sub importData(company As String, file As String, sheet As Variant, row As Integer)
Set target = Workbooks.Open(file)
sheet.Cells(row, 1) = company
sheet.Cells(row, 2) = getValue(target.Sheets("損益計算書等"), "営業収益合計")
netIncome = getValue(target.Sheets("損益計算書等"), "当期純利益")
shareholdersEquity = getValue(target.Sheets("貸借対照表"), "株主資本合計")
sheet.Cells(row, 3) = netIncome / shareholdersEquity
End Sub
Function getValue(s As Variant, k As String) As Variant
Set cap = s.Cells.Find(What:=k, LookAt:=xlWhole)
For i = 1 To 20
newVal = s.Cells(cap.row, cap.Column + i)
If newVal = "" And old <> "" And IsNumeric(old) Then
getValue = old
Exit Function
End If
old = newVal
Next
End Function
回答専門家

- 小松 和弘
- (東京都 / 経営コンサルタント)
- ホットネット株式会社 代表取締役
中小企業のITで困ったを解決します!
ITまわりで、中小企業の困ったは様々です。どこに連絡すれば良いのか判らず、色々な窓口に電話をかけても解決できない事が多くあります。そんな「困った」の解決窓口の一本化と、中小企業の健全なIT化を推進しています。
(現在のポイント:1pt)
このQ&Aに類似したQ&A