社長ブログ社長ブログ

EXCELで親指よりも長い数式を書く人はアマチュア

オントラックの社内ルールに「親指ルール」というものがあります。財務モデリングにおいて、親指の長さよりも長い数式を記述する人間はプロではありません。アマチュアです。財務モデリングを仕事にしているのであれば、第三者にとって分かりやすいモデルを作るべきです。そのためには、他の人が容易に読み解くことのできない長い数式ではダメなのです。

たとえば、IF関数などを使えば、簡単に親指の長さを越えてしまうでしょう。中にはIF関数の中にさらにIF関数を入れる人もいます。極端に第三者には理解することが困難になります。何も考えずにIF関数を使いたがるのも考えものです。

ですから、IF関数は使わないと心に決めるのです。IF関数を使わなければいけない場合が二つあります。一つは、文字列を持ってくる場合、それとエラー対応です。エラー対応ですら、エクセル2007からは、IFERROR関数が登場し、IF関数を使う必要はなくなりました。

財務モデリング、特にコーポレートファイナンスにおける条件分岐のほとんどは、ゼロ分岐です。この場合は、わざわざIF関数など使う必要はありません。

具体的に説明しましょう。たとえば、税金計算(黒字の場合は税金をとる、赤字の場合は税金はゼロ)のモデルをつくる場合、およそ90%の方が下図のようにIF関数を使用します。ここでもうひと工夫して欲しいのです。

IF関数A

IF関数をどうしても使うのであれば、私たちは、パターンB(下図)のように記述するでしょう。税率をIF関数の外側から掛けるのです。こちらの方が、「税金=税引前利益×税率」という構造が数式上にあることが容易に理解できるからです。このように数式に意味を持たせることが大切です。これで、より第三者に優しい記述になったのではないでしょうか。

IF関数B

さらにIF関数を使うのであれば、比較演算子(論理式)も使えるはずです。IF関数を使っていて、比較演算子(論理式)を知らないとしたら、それは問題です。

比較演算子(論理式)とは、2つの値を比較して、TRUE(真)あるは、FALSE(偽)の論理値を返すものです。IF関数の引数の一番最初にあるものが比較演算子(論理式)です。

パターンC(下図)では、「=-(C9>0)*C9*C4」と記述しています。この数式は、=-判定(True or False)*税引前利益*税率という構造になっています。エクセルはTrueの場合は1をFalseの場合は、0を返してくれますので、赤字の場合は、=-判定(False=0)*税引前利益*税率=0 となるわけです。

IF関数C

さらに下図のように、最大値を引っ張ってくるMAX関数を活用することができます。MAX関数で、0と税引前利益を比較して大きい方を引っ張ってこさせるわけです。当然、税引前利益が赤字(マイナス)の時は、0を引っ張ってくるので、税金はゼロとなります。ゼロ分岐の場合は、MAX(0,     )を使うことをお薦めします。

IF関数D

いかがでしょうか。このように単純な税金計算のモデルを一つとってみても、いろいろな記述の方法があるのです。様々な選択肢の中から、ベストなものを選択できるということが大事です。そのときに忘れてはいけないことは、第三者にとって読解性の高いモデルをつくるという姿勢です。

ファイナンスの知識も大切です。ただ、それを支える財務モデリングの考え方、スキルも大事です。言ってみれば、車の両輪と言える関係だと思います。

本邦初と言える「Macユーザーのための財務モデリング基礎講座」を4月29日(金)に開催します。たった一日で、あなたは周りの同僚から一目置かれる存在になれます。あなたも一生ものスキルを身につけませんか。ぜひ、ご参加を検討ください。

動画配信開始