見出し画像

財務モデリング講座 第22回:デイジーチェーンとは

本場イギリスの財務モデリングファーム(Gridlines)がオンライン講座を無料で提供してくれています。本稿はその字幕と解説記事です。ぜひ無料登録して、このNoteを参考に勉強していただけたら嬉しいです。

動画:2.11 Links Part III: Why to avoid linking to a link

Hey welcome back. We have talked a lot about links. I’m going to talk in this session about why to avoid linking to a link, which is something that we are tempted to do but I'm going to show you why it's a bad idea and how to easily avoid it.

お帰りなさい。これまでリンクについてたくさんお話してきました。今回は、どうしてもやりたくなってしまう「リンクにリンクしていく(デイジーチェーン)」のを回避する理由と、簡単に回避する方法をお話しします。

Let’s look at the issue first, why this is a problem. Let’s say I am starting my model and I’m at point A, for some item. A bunch of ingredients that it needs for its calculation and I start following back where all the stuff is coming from and calculation A is referred to calculation B which is then referring to calculation C and so on and so forth.

まず、なぜこれが問題なのかを見てみましょう。私がモデル構築を開始したとして、ある項目のA地点にいるとしましょう。複数の計算要素があり、私はその要素がどこから来ているのか追跡することになりました。計算Aは計算Bに参照され、計算Cなどに参照されています。

We’ve got a chain of links to links to links as you progress through the model. That’s really, really common. We see that all the time in models. And the model works fine until you want to delete something from that model. And let’s say we no longer need point B. We don’t need calculation B and we want to remove it. So we delete it. The problem is that point B is part of Daisy chains of links that we've got no visibility over and so we delete point B and the rest of the model blows up because everything is linked to everything.

モデルを進めていくとリンクの数珠(デイジーチェーン)が出来てしまいました。これは本当によくあることです。私たちはモデルの中でいつもこれを見ています。そして、そのモデルから何かを削除したいと思うまではモデルは正常に動作します。そして、B点が不要になったとします。 B点の計算が不要になったので、削除したいとします。削除します。問題は、点Bがデイジーチェーンのリンクの一部になっていて、私たちには見えないので、点Bを削除すると、すべてがリンクしているので、モデルの残りの部分が吹き飛んでしまうのです。

So it becomes really difficult to delete anything from that model. We take a really disciplined approach to these links by making sure we never link to a link. Instead, if we have point A, all of the other calculations that need A as an ingredient to their calculation, refer to it directly and don’t Daisy chain links to it. That way let’s say we need to delete B, we can delete B. C, D, and E are completely intact because there are no interdependent chains.

こうなってしまうと、このモデルから何かを削除するのは本当に難しくなります。私たちは、これらのリンクには絶対にリンクを張らないようにするアプローチをとっています。その代わりに、点Aがある場合、計算の要素としてAを必要とする他のすべての計算は、それを直接参照し、それにデイジーチェーンリンクを張らないようにします。このようにして、Bを削除する必要があるとしたら、Bを削除、CならばC、DならばD、EならばEを削除することができます。

So let’s see how this looks like in our model. I’m here in my revenue calculation. And I’m looking at operating period flag. What’s happening here is that as we are building up this calculation, we just linked it to the operation period flag that is the closest as we are building the calculation. And similarly here, we linked to this one. So now these are forming a daisy chain of links and then this one links back to the time sheet. This is the original calculation. This is point A in our analogy. And this is point B and this is point C. And we’ve daisy chained these links.

ではモデルではどのようになっているか見てみましょう 私はここで収益計算をしています そして、オペレーティングフラグを見ています。ここで何が起こっているかというと、私たちがこの計算を構築しているときに、モデルから最も近いオペレーティングフラグにリンクしているだけです。ここでも同様に、このフラグにリンクしています。このように、これらはデイジーチェーンのようなリンクを形成しており、これはタイムシートにリンクしています。これが元の計算です。これが先ほどの例のポイントAです これがB点で、これがC点です。これらのリンクがデイジーチェーンになっています。

So let’s say we no longer need “degradation.” So we are now going to get, as often happens actually, we are going to get yield data directly from yield advisor that’s got the degradation data built in. So let’s say we're just going to get a yearly yield data and we no longer have to calculate degradation.
では、「減価率」はもう必要ないとしましょう。これで、実際にはよくあることですが、減価データを持っているイールドアドバイザーから直接収量データを取得することになります。つまり、年間の収量データを取得するだけで、減価を計算する必要がなくなったとしましょう。

Ok so I'm thinking that compound degradation is no longer going to be part of this calculation. so I'm going to deal with that. I know that compound degradation is flowing into this calculation. So I’m just going to remove it from here. I can now remove this from this calculation block. because it's no longer being used. Shift+F9 to refresh the sheet and everything still works. Ok so now I check here, compound degradation, it’s not going anywhere so I’m really safe to delete this block. Shift+F9, blows up. Because these links were in the daisy chain.

複利減価率はこの計算には流れていないはずです。これを削除してみます。複利減価率がこの計算に流れているのはわかっています。なので、ここから削除することにします。これでこの計算ブロックから削除できるようになりました。 もう使われていないからです。Shift+F9でシートを更新しても、すべてが動作します。ここを確認すると、複利減価率はどこにも行かないので、このブロックを削除して本当に安全です。Shift+F9で吹っ飛びます。これらのリンクがデイジーチェーンの中にあったからです。

So what do we do instead of that? Instead of linking to this link if we just when we need it again we just copy it to Shift+Space Bar, Ctrl+c, Shift+Space Bar, Enter. Shift+Space Bar, Ctrl+c, Shift+Space Bar, Enter. Now each of these is a link back to the timesheet back. So everything is pointing at the original calculation which means now I delete degradation, and recalculate nothing blows up. Because we don’t have this daisy chain of links.

では、その代わりに何をすればいいのでしょうか?このリンクにリンクする代わりに、また必要になったときに、「Shift+Space」、「Ctrl+C」、「Shift+Space」、Enterでコピーするだけです。「Shift+Space」、「Ctrl+C」、「Shift+Space」、Enterで、これらのそれぞれがタイムシートへのリンクになります。つまり、すべてが元の計算を指しているということは、減価率を削除して再計算しても何も起こらないということです。このようなデイジーチェーンのリンクがないからです。

Ok, the paste link macros “Ctrl+Shift+Q” will warn you if you are daisy chaining. Let’s say if I were to take this, and if I were to overwrite this. It’s going to tell me possible daisy chain detected.

貼り付けリンクのマクロ「Ctrl+Shift+Q」を使うと、デイジーチェーンしていると警告してくれます。これをコピーして、上書きしてみましょう。デイジーチェーンが検出された可能性を教えてくれます。

If you click “yes” here, it will link you to the source. It will automatically prevent the daisy chain for you. So I click yes now, instead of linking up to here, looking through that to the time sheet, that’s what should be coming from and it will paste that for you and you can copy across.

ここで「Yes」をクリックすると、ソースにリンクします。自動的にデイジーチェーンを防止してくれます。ここで「Yes」をクリックすると、ここにリンクするのではなく、タイムシートを見て、そこから出てくるはずのものを貼り付けて、コピーすることができます。

If you click “no” it will do the daisy chain for you. Sometimes that’s necessary. But at least you're doing it deliberately and mindfully. Okay that's it for now. Avoid linking to links, that really makes your model difficult to change.

「No」をクリックするとデイジーチェーンをしてくれます。それが必要な時もあります。しかし、少なくとも、あなたはそれを意図的に、心に留めてやっています。さて、今のところはここまでです。リンクを貼らないようにしましょう、それは本当にあなたのモデルに変更を加えるのが難しくなります。

まとめ

デイジーチェーンは、セル同士に「A -> B -> C -> D -> E」といったリンク先がまたリンクとなっている状況を言います。BやCやDのどこかのリンクを一つ切ってしまうと、切った先以降の計算がエラーになってしまうような危険な状態であるため、財務モデルでは原則として使用が禁じられています。

確かにもしモデルを変更することがなければ、このような状態でもモデルは正常に動作しているので問題はないのですが、ひとたび変更が必要となり、どこかのセルを削除しなければならないような場合、エラーになる可能性があるため使用が控えられているのです。

こうなることを回避するには、リンクは必ず大本でつなぐようにしておくというルール・規律を設けておくことです。AをBでリンクする(AとBは同じ値)ような場合は、Bを参照するようなことはせず、直接大本のAをリンクさせるようにして、不用意に中間生成物でつないでいくことは避けましょう。

この記事が気に入ったらサポートをしてみませんか?