00:06
お疲れ様です。経営企画のたばこ部屋、25回目の配信でございます。
パーソナリティのきりんです。よろしくお願いいたします。
みんな大好きExcelの話を今日はしたいと思いますけれども、
Excelですね、循環参照について、非常にマニアックな話をしたいと思っております。
財務参表の連動モデルって、皆さん組まれたことはありますでしょうか?
コンサル時代には事業計画を組むことはあったんですけれども、
あまりBSとかCF、キャッシュフローみたいなところまで求められることはなかったんですね。
なので、基本的にはPL、プロフィットロス、損益計算書まで作成する。
しかもそれも、当期準利益ではなくて、営業利益ぐらいまで作成していれば十分だったんで、
自分としては財務参表の連動モデルまでは組む必要がなかった環境でした。
一時期、ファンドを志したことがあります。
ファンドへの転職、キャリアアップみたいなものを、
よくあるポストコンサルキャリアとして目指したことはありまして、
そのときに、モデルを組む面接といいますか、
そういったスキルチェックがあるということを聞きまして、
30代前半だったかな、のときにそれを学んだ記憶があります。
それが初めての自分の財務参表モデリングともいいますけれども、
それとの出会いだったかなと思います。
当時はあんまり本とかもなくて、
どこかで教材のようなものを作られている元外輪の方がいて、
その有料の教材を買って、
自分も身を見真似で組んでみてということをしたのかなと思います。
やっぱり結構難しかったんですよね。
何が難しいかって、やっぱりボキは持っていたので、
何がどこにどう影響するのかみたいなことは何となく分かるわけですよ。
実際エクセルを見てそういうことかというのは分かるんですけれども、
どこに何が連携するのかっていうことが複雑に入り組むんですよ、財務参表って。
例えば、当期準利益であればこれはいわゆる営業キャッシュフローのところに連携しますし、
営業キャッシュフローとかいろいろ組み合わせた先に出てくる当期の現預金残高ですね。
その現預金残高というのがあれば、
それは受け取り利息としての計算に使われるわけですね。
現預金残高かける利率っていうので受け取り利息が出てくる。
受け取り利息というのはまたPLに戻って、そのPLの営業外収益のところに連動するわけですね。
するとPLの当期準利益のところにまた戻ってくるみたいな話があります。
こういういわゆる循環が起こるわけですけれども、
03:02
この循環が結構起こるのがこの厄介なところで、
いわゆるExcelでいう循環参照みたいなところが起こるんですよ。
Excelを開いた瞬間にエラーがいきなり出てくることはありませんかね。
ポーンって。それが循環参照しています、うんぬんとかっていうので、
どこかで壊れているとREFみたいなふうにエラーメッセージが出ていたりする、
非常にストレスのあれですけれども、
あえてそれを循環させるみたいな組み方をして、
この財務産票の連動を表現するというのがこのモデリングのミソだったりするんですね。
私は当時そういう組み方、一パターンしか知りませんでしたので、
それを身を見真似て自分も一応組めるようにはなったが、
なんかすごく汚いというか、どうしてこうやって連動するのは分かるが、
こんなエラーが吐くような状態のモデルにならなきゃいけないんだっけというのは、
疑問を持ちながらもそのままにしていたんですよね。
あるとき、また最近もいろんな方のモデルを勉強させていただくと、
ある方はそれを循環参照していなかったんですね。
循環しない財務産票連動モデルというものがあると。
具体的にそんなことがそもそも可能なのかというところでびっくりしたんですけれども、
これ非常にシンプルな話で理解すれば当然なんですけれども、
現余金を当期の現余金、当期あるいは当月の現余金というものをインプットとして、
受取利息や支払い利息を計算してしまうと、さっきのような循環が起こるんですけれど、
前月末とか前期末の現余金をインプットとすれば、
一方向に解きほぐされた形で循環していくんですよ。
ちょっと表現が難しいんですけれども、当月の中でループさせるから、
それが循環するのであって、前月から当月を参照する。
前月の現余金から当月の利息を参照する。
そして当月の現余金残高から翌月の受取利息や支払い利息みたいなところを計算していく。
正確には支払い利息は借入金の残高からですけれども、
要は前月から当月へ参照していくというふうにすれば、
前月、当月、当月、来月というふうにどんどん連なっていくのがわかると思います。
これを当期の中、当月の中で循環させるから壊れるのであって、
循環参照が起こるということに言いまされながら気づきましたという話でございます。
外人の方とかこれを聞いているプロの方であれば何を言いまさらという話かもしれませんけれども、
そういった循環をさせずにモデルを組むということも非常に簡単にできるということがわかりましたので、
06:00
そういった話をさせていただいている次第でございます。
循環参照が起きたからといって不都合があるわけではないんですね。
不都合があるとすると不都したときに急に壊れる。
何かの表紙に壊れて循環しているセルの全てがレフというふうになってしまって、
どこがエラーなんだということが突き止められないみたいなのが唯一あるデメリットですけれども、
それさえうまく処理できるのであれば別に循環していても構わない。
例えばそれをスプレッドシートで組もうとなった場合に、
何か重くてうまく表現できませんとかいうときもあったりします。
だからできるだけ循環参照というものはしないほうがいいというのが個人的な意見です。
スプレッドシートでも正しく反復計算をオンにすれば大丈夫なんですけれど、
非常に重いモデルを組んでいる場合はそれが処理しきれずということもあるので、
誤った値を出して完了みたいなふうにすることもあるんですよ。
だからできるだけ避ける方法がいいなと思います。
ですし、そうやって当月の値を使って当月の受け取り利息とかを計算するということについて、
循環参照を許容するほどのメリットがあるとも思えないんですよね。
あんまりそれに意味があるとは思えない。
金融事業とかそういった借り入れとか現預金の残高から得られる受け取り利息を
成り割としているとかであればまた別なんですけれども、
そういう場合ではない限り、あんまり全体に影響を与えるものでもないと思いますので、
そこにあんまり躍起になっても木を見て森を見ない状態になるんじゃないかと思いますので、
おすすめはしません。
一方で循環参照って絶対悪なのかというとそうでもないというのを少しもう一つ話をしたいのが、
いわゆる自己参照意不識というものですね。
事業計画とかを作る場合にいろんなケースを作ると思います。
いわゆるベースケース、コンサーバー、アグレッシブみたいな、
3パターンとか作って持っていくことも多いと思うんですけれども、
どのケースを選ぶのかというときに横並びで見たいときってあると思うんですよね。
ベース、コンサーバー、アグレッシブをそれぞれ3つ、
数字を並べるときにスイッチ関数とか使いながらケース別に1,2,3とか切り替えていくんですけれど、
それを切り替えるときに並べて表示させるためには、
切り替えたときにも切り替え前の数字を表示させ続けたいということがあるわけです。
その場合に、いわゆるベースケースが1に対応しているのであれば、
そのスイッチ関数の引数が1の場合はその通り計算する。
しかしそれ以外の場合は自分のセルを参照するというやり方があります。
09:04
いわゆる自己参照をする。
ifで場合分けをして自己参照をする。
これ口頭で説明するのは非常に難しいですね。
そういう形で望ましい値以外の場合は自分のセルを参照し、
それ以外のところは正しく通識通り計算するというやり方をして、
そのセルの中でループを起こして再計算をあえてさせずに、
ベースケース、アグレッシブ、コンサバ、それぞれの値を表示させることで
横で並べてみることができるみたいな形があります。
こういう場合であればやってみてもいいのかなというふうに
やる価値があるというのが循環参照ですけれども、
そうでもない場合はできるだけ避けたほうがいいと思ったりもします。
他の人が見たときにやっぱりファイルを開いたときに
エラーメッセージが出るって気持ちのいいものではありませんし、
急にExcelに対して信用性が下がってしまうものなので、
できれば避けましょうというそんな話です。
ちょっと終盤の自己参照意不識については口頭だけで説明するのは無理でしたね。
これは誰もわからない話になってしまったかもしれません。
申し訳ありません。
そういう形でExcelの循環参照というテーマで今日はお話をしました。
この流度で話していればネタは確かにつきなさそうだなというふうに思うんですけれども、
今日は以上にしたいかなと思います。
良ければいいねであったりフォローいただければ励みになりますのでどうぞよろしくお願いいたします。
それでは本日は以上となります。お疲れ様でした。