標籤:

一級市場搬磚工的福音-使用Excel VBA增強識別掃描版財務報表

關於搬磚時的財務分析這事,一級市場黑工們的困境和二級市場黑工們的困境還不太一樣,二級市場的黑工們還有Wind、Bloomberg,再不濟也有免費的雪球、Yahoo! Finance或者TuShare可以用。而一級市場的黑工們往往就只能拿到掃描版本的,或者紙質版本的財務報表了(誰讓現在資產荒呢,資金方全成乙方了)。

而自從有了ABBYY這等毛熊開發的變態軟體,一級市場的黑工們就再也不甘於一個個敲數字,敲到深更半夜了。(提示:ABBYY中把財報區域選中為表格,識別效率更高)

不過搬磚狗們能拿到手的掃描版本的財報,也就是100ppi以下的了。也是,300ppi以上的幾十上百頁的掃描版pdf,以金融企業的普遍網速,和公司郵箱十幾兆的附件限制,還是有點不現實呢。

這種100ppi的圖像,掃描出來的效果估計也就是上圖所示了。這是什麼鬼,完全沒有減輕民工們的工作量啊!

那麼,有沒有一種辦法,讓這個財報自動變成下圖這樣呢?

(none是幾個應收長得太像了,ABBYY識別的時候都只識別出了應收二字,所以很難區分...)

於是開始想辦法,經過了整整一個月,終於從搬磚空隙中抽出了幾個小時,發現了一種多次匹配的識別方法:

說起來想法也挺簡單的。大概分以下的幾步:

一、把要識別的字元拆開,拆成一個個的字元串。(只保留漢字)

二、把資料庫中的字元拆開,拆成一個個的字元串。

三、把1中的字元串一個個與資料庫中的字元匹配,如果有一個字元串的匹配概率是最高並且是唯一,記下該字元串。

四、繼續匹配剩下的要匹配字元串和資料庫字元串。

五、重複3-4

根據我的經驗,這種簡單的匹配函數,一輪識別能識別出60-70%,二次的識別能達到75-85%的識別精度,三輪識別能達到85-95%的識別精度。

什麼叫簡單的識別函數呢,就是用要匹配的字元和資料庫字元相匹配,用含有的字元的個數除以總計的字元的個數。

當然還有更精確的匹配演算法,比如可以加上兩個因素的權重:

1.是否連續

2.這些字元出現的位置和應當出現的位置是否匹配

不過確實沒啥必要啊。

然後辛苦的寫啊寫啊寫。終於寫完了,具體過程可以參考:

tsauliu.com/finreport-e

tsauliu.com/finreport-e

可以在這下載試用:ABBYY增強識別.xlsm

使用流程大致如下:

一、輸入Entry Match 函數

二、輸入第一個參數(要匹配的財務報表區域)

三、輸入第二個參數(該區域屬於什麼類型)

具體類型和區域的匹配參見worksheet!dicts,這個詞典可以自己修改,增加準確度

然後按一下Enter,它就會自動把該區域匹配完成並且填充好:

清潔數字的函數是Cnum,這個比較簡單,直接Cnum(A1)這種,引用好要清潔的數字就好,ABBYY很不好的一點就是經常把 「,」 識別成 「 . 」,這個函數可以很好的修正這種情況。

不過我也在進一步修正這個函數。

下一步大概是做到三張表可以自動檢查是否配平,不過這個只能之後寫了。

知友們也可以給我留言或者發郵件至mail@tsauliu.com,提提修改意見啥的。

熟悉的知友可以私信我要便攜版的ABBYY。

估計下一個版本一個月之後release吧。

推薦閱讀:

吳英最後被判處死刑緩期2年執行,對於這個判決結果,對中國民間金融有什麼象徵意義?
莫尼塔宏觀: 「金融去槓桿」向何處去?
怎樣理解資產證券化中的「真實出售」(True sale)?
p2p行業發展到現在,都有那些奇葩公告?

TAG:金融 | VBA |