講座目次
財務モデルにおけるフォーマットルールの種類
Header Format - ヘッダーフォーマット
- Header 0 (Project Header) - プロジェクトヘッダー
- Header 1 (Sheet Header) - シートヘッダー
- Header 2 (Module Header) - モジュールヘッダー
- Header 3 (Sub-module Header) - サブモジュールヘッダー
- サンプル
Body Format - 計算フォーマット
- Label - ラベル
- Unit - 単位
- Row Total - 行合計
- Range Name - 名前の定義
- Number - 数値
- Percentage - パーセント
- Date - 日付
- TRUE / FALSE - フラグ
- Calculation Result - 計算結果
- Sub Total - 小計
- サンプル
Input Format - 入力フォーマット
- User Input - ユーザー入力欄
- Calculated Input - 計算入力欄
- Modeller's Input - モデル作成者入力欄
- Macro Input - マクロ入力欄
- サンプル
Supplemental Format - 補助フォーマット
- WIP Highlight - 作業中ハイライト
- Unique Formula - 注意すべき数式
- OK/Error Alert - エラーチェック
- Comment - コメント
- Reference Highlight - 入力補助計算
- サンプル
財務モデルにおけるフォーマットの種類
財務モデルは、残念ながら世界的に統一されたフォーマットというものがまだない。通常会社ごとになんとなくフォーマットが決まっているものだが、モデル担当者ごとにその場の気分や状況に応じて微妙にフォーマットを変えたりするため、財務モデル1つ1つでフォーマットに意味が変わってくることもしばしばある。しかし、投資銀行を始めとして金融業界内では財務モデルのフォーマットを業界として統一しようという動きがあり、若干異なるものの暗黙の了解でよく用いられているフォーマットがある。
財務モデリング講座では、もともとプロジェクトファイナンスを専門としたモデリングを中心としていたため、Wall Street の投資銀行よりも厳格で分かりやすいフォーマットを独自に定義して使っている。この記事では、財務モデリング講座で用いている厳格なフォーマットを紹介し、参考として投資銀行などで一般的に用いられているフォーマットを最後に紹介する。
Header Format - ヘッダーフォーマット
Header 0 (Project Header - プロジェクトヘッダー)
Header 0 は、複数のシートにまたがって統一的な情報を管理するためのヘッダーで、主にプロジェクト名を表記する。1つのシートで使えるのは基本的に 1 回のみであるが、例外的に 2 回以上使うこともある。
Applied To: Row
Row Height: 18pt
Fill Color: RGB (0, 32, 96) HEX #002060
Font: Arial
Font Size: 14pt
Font Style: Bold
Font Color: RGB (255, 255, 255) HEX #FFFFFF
Number Format: General
Border Style: Bottom Double Border
Border Color: RGB (255, 255, 255) HEX #FFFFFF
1行全て選択した状態でのフォーマットであるが、Name Column については空欄である点に注意する必要がある。
Header 1 (Sheet Header - シートヘッダー)
Header 1 は、シート内において複数のモジュールをまとめて管理するためのヘッダーで、主に PL・BS・CF といった財務諸表の分類や、店舗や会社といった Entity 単位での分類を表記する。1つのシートで必ず 1回以上使用し、モジュールヘッダとの行間は必ず 2 行空ける点に注意。
Applied To: Row
Row Height: 18pt
Fill Color: No Fill
Font: Arial
Font Size: 14pt
Font Style: Bold
Font Color: RGB (255, 255, 255) HEX #FFFFFF
Number Format: General
Border Style: Bottom Double Border
Border Color: RGB (0, 112, 192) HEX #0070C0
Header 0 と同じく、1行全て選択した状態でのフォーマットであるが、Name Column については空欄である点に注意する必要がある。
Header 2 (Module Header - モジュールヘッダー)
Header 2 は、財務モデル内のモジュール単位を管理するため最も重要なヘッダーだ。モジュールにはメインジュールとクラスモジュールの 2 種類があるが、どちらも同じモジュールヘッダーを使う。1つのアウトプット項目ごとに 1 つのモジュールが基本形となるため、勘定科目の名前になることが多い。シートヘッダーからは2行空けてから使用する必要があるが、モジュール内の項目と行間を空ける必要はない。
Applied to: B Column
Row Height: 15pt
Fill Color: No Fill
Font: Arial
Font Size: 12pt
Font Style: Bold
Font Color: RGB (112, 173, 71) HEX #70AD47
Number Format: General
かならず B 列に記載する。行幅は通常項目の 12pt ではなく、15pt となっている点に注意。
Header 3 (Sub-module Header - サブモジュールヘッダー)
Header 3 は、モジュール内で段階的な計算を行う際に、途中の計算過程を管理するためのヘッダーだ。モジュール内の計算がシンプルな時は、Header 3 は特に使う必要はない。計算過程の管理に用いるため、例えば売上高のモジュールであれば、単価や数量といった計算の概念的な分解表記になることが多い。サブモジュールヘッダーそれ自体は上下ともに行間を空ける必要はないが、サブモジュール間では 1 行行間を空ける必要がある点に注意。
Applied to: C Column
Row Height: 12pt
Fill Color: No Fill
Font: Arial
Font Size: 9pt
Font Style: Bold
Font Color: RGB (0, 0, 255) HEX #0000FF
Number Format: General
かならず C 列に記載する。行幅は通常項目の 12pt となる。繰り返すが、Header 3 を使う時はモジュール内の計算を複数のサブモジュールとして分解したい場合であり、モジュール内の計算がシンプルであり、複数のサブモジュールを用いて計算していない場合は、Header 3 は使う必要がない点に注意。
サンプル
Body Format - 計算フォーマット
Default Format - 標準フォーマット
何も指定がない場合、空欄も含めて以下のフォーマットとなる。
Row Height: 12pt
Fill Color: No Fill
Font: Arial
Font Size: 9pt
Font Style: Regular
Font Color: RGB (0, 0, 0) HEX #000000
Number Format: General
財務モデリング講座のフォントは、業界でよく用いられている Arial を採用している。
Label - ラベル
ラベルは、1行ごとの計算項目を記載するための、モジュールと並んで最も重要なフォーマットだ。ラベリングがシンプルかつ正確になされているか否かで、モデルの品質を大きく左右する。
Applied to: D Column
かならず D 列に記載する。また、モジュールの最後の項目では、可能な限りモジュールヘッダーと同じラベルにすることが望ましい。例えば、Sales モジュールを計算しているのであれば、モジュールとしての最終的な計算結果は Sales であり、ラベルも Sales になるはずだ。モジュールヘッダーが Store A となっており、最後のラベルが Sales となっていると、レビュー時に混乱を招く。いかにシンプルなラベルを記述するかというテクニックを、後に他の記事で紹介するのでそちらを参考にして欲しい。
Unit - 単位
単位は、1行ごとの計算項目の単位を記載する。こちらも計算ごとに単位の正確性が担保されているか否かで、モデルの品質を大きく左右する。
Applied to: J Column
Font Color: RGB (128, 128, 128) HEX #808080
かならず J 列に記載する。また、Calculation Result や Sub Total についてはラベルや数値、Row Total などが Bold となるが、Unit については Bold とならない点に注意する必要がある。単位については財務モデル単位で統一されていれば基本的には問題ないと考えるものの、財務モデリング講座においては以下のような単位をよく用いている。
円 ... JPY
千円 ... JPY'000
百万円 ... JPY'm
個数 ... #
千個 ... #'000
百万個 ... #'m
パーセント ... %
日付 ... Date
フラグ ... T/F (True/False)
エラーチェック ... OK/Error
期間 ... 年/半期/四半期/月
スイッチ ... ON/OFF
リスト選択 ... Type
ラベル入力項目 ... Text
複数単位 ... Multi-type
Row Total - 行合計
行合計は、その名の通り行の合計欄だ。N列より右の総和を SUM 関数で計算する。行合計を計算しておくことで、それぞれの項目をプロジェクト全体の単位でイメージすることができる。例えば、プロジェクト全体期間を通しての売上高やコスト、税金の支払額などを容易に把握することができるし、行合計を計算することで簡単な確認作業にもなる。例えば、プロジェクト全体期間を通して設備投資額と減価償却費が一致していなければ、償却過剰を起こしていない限り、非償却性資産が残っているか、償却が完了していないはずであるし、プロジェクト全体期間を通して法人税等調整額が 0 になっていなければ、それは繰延税金資産・負債の残高がプロジェクト終了時点で残っていることを意味する。モデル内の計算には影響しないため軽視されがちであるが、1つ1つ丁寧に行合計を計算することによって、モデルの品質が格段に上昇することを覚えておこう。
Applied to: K Column
Font Style: Regular/Bold
Number Format: Number/Percentage
かならず K 列に記載する。フォントのスタイルは標準だが、Calculation Result や Sub Total については Bold となる点に注意。また、Row Total については、非常に重要なルールが 2 つある。
- 行合計が意味をなさない数値については、計算しない
- フラグについては、SUM ではなく COUNTIF を用いて、TRUE の個数を計算する
ルール1 の最も代表的は、1個当たりの単価など、ある単位あたりの数量や金額が計算される時だ。例えば、製品1個当たり単価が 1 年目に 200 円、2年目に 300 円、 3年目に 400 円の際に、これらの行合計を計算すると 900 円となるが、この数値自体は直感的に意味をなさないため、表記してるとかえってレビュー時に混乱を招く。そのため、このような数値については Row Total を計算せず、セルを敢えて空白にしておく。データが日付の場合なども、足して特に意味があるデータではないため、行合計は空欄となる。
ルール2 については、フラグの行合計を計算する際に用いられる。プロジェクト期間全体を通して、フラグの TRUE がいくつあるかというのは非常に重要な意味を持つ。例えば、年次モデルにおいて運転期間が 10年の場合、当然ながら運転期間フラグの TRUE の数は 10 個であるため、行合計欄を用いてフラグの数を計算しておくことで、確認な確認作業となる。ただし、 SUM 関数を用いて TRUE の数を数えることはできないため、COUNTIF 関数を用いて TRUE の数を計算する必要がある。基本的に行合計は SUM の関数を使いまわすことになるが、フラグの計算のみ COUNTIF 関数となる点に注意しよう。
=COUNTIF(フラグの範囲, TRUE)
Range Name - 名前の定義
名前の定義そのものについての説明や詳細なルールは、下記の記事を参照して欲しい。
財務モデリングにおける名前の定義 (Range Name) の活用 - 後日執筆予定
名前の定義は、定義されている名前範囲の右、下、または右下に、名前を直接テキストで表記する。記載する場所はデータ形式によって異なり、Array や Constant データの場合は右、List データの場合は下、Table データの場合は右下に記載する。名前を定義範囲の決められた場所につけることで、どの範囲にどのような名前が定義されているか一目で判別することができる。また、名前をつけたり、消したり、検索したりなど、名前そのものを管理する上でも非常に役に立つ。
Applied to: Specific Cell (Adjacent Cell to Named Range)
Font Style: Italic
Font Color: RGB (0, 112, 192) HEX #0070C0
名前の付け方のルールについても、上記の記事で詳細を説明するが、下記のようなフォーマットで定義される。
ProjectName.[EntityName].ItemName.PeriodGranuarity.DataType
(Sample) CF.StoreA.Costs.A.Ca
Number - 数値
構築が完了した計算数値については、以下のようなフォーマットとなる。入力数値や、構築途中の箇所についてはフォーマットが異なるため注意。
Applied to: Any Cell
Number Format: _(* #,##0_);_(* (#,##0);_(* "-"_);_(@
Number Format が、Excel 標準で使用される "Number" ではないことに注意。通常の "Number" と異なる点は、0 の場合にハイフンになる点の 1 点のみであるが、これはモデルレビューの観点から極めて重要であるため、是非上記の数値フォーマットを使用して欲しい。財務モデルにおいて、数値がピッタリ 0 かどうかというのは非常に大きな意味を持つ。例えば、工場の稼働が開始するまで製品の売上は発生してはいけないし、借入金を行う前から支払金利が発生していてはいけない。事業活動の損益やキャッシュフローは、適切なタイミングでモデル上発生されているはずであり、0 であるべきところと 0 でない箇所が一目でわかるよう区別されなければならない。しかし、Excel のデフォルトフォーマットである "Number" を用いると、ピッタリ 0 であっても 0.1 ~ 0.4 の四捨五入で 0 となってしまう数値についても、両者 0 と表示されてしまい、ピッタリ 0 なのかどうか一目見ただけ判別ができず、レビューの観点から確認がしづらい。財務モデリング講座のフォーマットを用いることによって、計算上の 0 を - (ハイフン) と表示することができ、0.1 ~ 0.4 の数値と厳密な 0 を容易に判別することができる。
Percentage - パーセント
Number Format を除いて、数値と同じフォーマットとなる。数値と同様、入力項目や、構築途中の箇所についてはフォーマットが異なるため注意。
Applied to: Any Cell
Number Format: 0.0%_);-0.0%_);"- "
数値フォーマットと同じく、0 付近の数値と、厳密な 0 を区別すべく、厳密な 0 を - (ハイフン) で表示をするようにしてある。また、Excel 標準の "Percentage" と異なり、% 記号の右側の半角のスペースが入る表記となっている。
Date - 日付
日付は以下のフォーマットとなる。数値と同様、入力項目や、構築途中の箇所についてはフォーマットが異なるため注意。Number Format については、組織内で統一がなされていれば何でも問題がないが、国や地域によって、YY/MM/DD と表記する場合もあれば、DD/MM/YYと表記することもあり、日付の区別がつかないことがある。例えば、03/01/06 とあった場合、これが2006年3月1日なのか、2003年1月6日なのか、これだけでは分からない。したがってMM ではなく、MMM を用いて、月の表示をアルファベットにし、更に日付と月をハイフンなどで繋ぐことによって X 月 Y 日を分かりやすく表現することオススメする。財務モデリング講座で用いている表記は、 DD-MMM YY で、01-Mar-06 と表記され、この日付は 2006 年 3 月 1 日であることを明確に示している。
Applied to: Any Cell
Number Format: dd-mmm yy
TRUE / FALSE - フラグ
フラグは、条件付き書式を用いて TRUE の場合と FALSE の場合で別のフォーマットを用いる。
TRUE Format
Applied to: Any Cell
Fill Color: RGB (0, 112, 192) HEX #0070C0
Font Size: 8pt
Font Color: RGB (255, 255, 255) HEX #FFFFFF
Border Style: Outside Borders
Border Color: RGB (0, 112, 192) HEX #0070C0
FALSE Format
Applied to: Any Cell
Fill Color: RGB (255, 255, 255) HEX #0070C0
Font Size: 8pt
Font Color: RGB (0, 0, 0) HEX #000000
Border Style: Outside Borders
Border Color: RGB (128, 128, 128) HEX ##808080
フォントサイズがデフォルトの 9pt ではなく、8pt になっている点に注意。また、TRUE、FALSE の条件式については以下。
TRUE: =対象セル
FALSE: =NOT(対象セル)
Calculation Result - 計算結果
モジュールやサブモジュールの最終行や、段階的な計算結果は以下のフォーマットを用いてハイライトされる。
Applied to: D Column ~ Last Data Column
Font Style: Bold
Border Style: Top Border
Border Color: RGB (0, 0, 255) HEX ##0000FF
基本的に、青の罫線を表示して、表記を太字にするだけだが、単位についてのみ太字にならない点に注意する。また、モジュールやサブモジュールの最終行はヘッダーのラベルと一致していることが望ましい。また、データが Constant である場合は、L 列が最終データ列となるため、罫線の範囲も D列 ~ L列となる点に注意する。最終行や段階的な計算結果がフラグとなる場合は、フラグ自体に条件付書式が用いられており、表記上見にくいことから Calculation Result のハイライトを使用しない点に注意。
Sub Total - 小計
SUM 関数を用いた小計は、Calculation Result と同じフォーマットを用いてハイライトされる。
Applied to: D Column ~ Last Data Column
Font Style: Bold
Border Style: Top Border
Border Color: RGB (0, 0, 255) HEX ##0000FF
基本的には Calculation Result と同じ。ただし、計算結果が SUM 関数を用いた合計となっている場合、モジュールやサブモジュールのヘッダーラベルではなく、Total と表記することが望ましい。
サンプル
Input Format - 入力フォーマット
User Input (ユーザー入力欄)
ユーザー入力欄は、以下のフォーマットを用いてハイライトされる。Number Format については、入力される値の形式、数値や日付、パーセント表記などを適用する。
Fill Color: RGB (255, 255, 0) HEX #FFFF00
Font Color: RGB (0, 0, 255) HEX #0000FF
Border Style: Outside Borders
Border Color: RGB (128, 128, 128) HEX ##808080
ユーザー入力欄とは、一般的なモデル使用者が前提値を入力するセルのことだ。ただし、モデル使用者とは、当然ながらモデル作成者以外の人間も含まれる。同じ案件の担当者であることもあるし、他部署、例えば財務部がレビューのために前提値を変えることもある。他社と共同で案件を進めている場合は、他社の担当者も当然ながら前提値を変更しながらモデルを使用する。つまり、ユーザー入力欄はどんな値も入力することができる欄だ。モデル構築の観点から逆の言い方をすれば、ユーザー入力欄には、どんな極端な数値を入力されても正しく計算されるようにモデルを構築しなければならない。ユーザー入力欄に入力して良いのは、ハードコードの値や文字列のみで計算式が入っていることは許されない。逆に、ハードコードの値であれば、Data Validation 等を用いて入力を制限することはしばしばある。例えば、スイッチを作成する際に、TRUE、FALSE をユーザー入力欄として設定する場合、それ以外の値を入力されてはモデルの計算が壊れてしまうため、Data Validation を用いて TRUE か FALSE のどちらか一方しか入力できないように制限をかけることは良くある。
Calculated Input (計算入力欄)
計算入力欄は、以下のフォーマットを用いてハイライトされる。Number Format については、入力される値の形式、数値や日付、パーセント表記などを適用する。
Fill Color: RGB (255, 255, 255) HEX #FFFFFF
Font Color: RGB (0, 0, 255) HEX #0000FF
Border Style: Outside Borders
Border Color: RGB (128, 128, 128) HEX ##808080
フォーマットとしては、ユーザー入力欄が白抜きとなっただけだ。ユーザー入力欄との違いは、入力欄なのにも係わらず、ハードコードの値ではなく、数式によって計算されている点だ。
Modeller's Input (モデル作成者入力欄)
Macro Input (マクロ入力欄)
サンプル
関連記事一覧
- 財務モデルにおけるアウトプット項目の決め方
- 時系列粒度の決め方 - 年次・半期・四半期・月次の判断ケーススタディ
- 財務モデルにおけるセットアップテンプレートの使い方
- ダッシュボード (Dashboard / Executive Summary) の作り方