固定資産台帳で「第1期から第3期の累計償却費をまとめて出したい」と思うことはありませんか。DDB関数だと1期ずつしか計算できず、少し不便ですよね。スプレッドシートのVDB関数を使えば、開始期から終了期までの減価償却費を一発で合計できます。この記事では、VDB関数の構文から実務での使いどころまで、同僚に教える感覚で丁寧に解説していきます。
スプレッドシートのVDB関数とは?
スプレッドシートのVDB関数は、倍額定率法(ダブル・デクライニング・バランス法)をベースにした財務関数です。指定した期間範囲の減価償却費を合計して返すのが最大の特徴です。VDB は Variable Declining Balance(可変率定率法)の略で、「ブイディービー」と読みます。デフォルトでは定率法で計算しつつ、途中から定額法へ自動切り替えする挙動を持っています。
DDB関数が「1期分だけ」を計算するのに対し、VDB関数は複数期間をまとめて算出できます。「第1期から第3期までの合計」のような累計計算が1つの式で完結しますよ。
累計償却費の把握や、会計年度の区切りが整数期と一致しないケースで特に役立ちます。
関連記事として、DDB関数・SLN関数・SYD関数も合わせて読むと、減価償却シリーズの全体像がつかめます。
VDB関数の構文と引数
VDB関数の構文は次のとおりです。
=VDB(費用, 残存価額, 耐用期数, 開始期, 終了期, [逓減率], [切り替えなし])
英語表記だと =VDB(cost, salvage, life, start_period, end_period, [factor], [no_switch]) となります。スプレッドシート上では日本語の引数名が表示されるので、両方覚えておくと検索や他記事の参照がスムーズです。
| 引数 | 省略 | 説明 |
|---|---|---|
| 費用(cost) | 必須 | 資産の取得価額(購入時の価格) |
| 残存価額(salvage) | 必須 | 耐用期数終了時の資産価値。0円でも指定可能 |
| 耐用期数(life) | 必須 | 減価償却を行う期数(一般的には耐用年数) |
| 開始期(start_period) | 必須 | 計算を開始する期。0始まりで指定する |
| 終了期(end_period) | 必須 | 計算を終了する期。耐用期数と同じ単位で指定 |
| 逓減率(factor) | 省略可 | 残高の減少率。省略時は2(倍額定率法) |
| 切り替えなし(no_switch) | 省略可 | TRUEで定額法への自動切り替えを無効化 |
特に押さえておきたいのは 開始期が0始まり である点です。第1期分の償却費を出したいときは、開始期=0・終了期=1と指定します。1と書きたくなりますが、ここを間違えると第2期分が返ってきてしまうので注意してください。
また、開始期と終了期には小数も指定できます。半年分だけ計算したい場合は終了期=0.5、会計年度が10.5ヶ月など端数があるケースでも柔軟に対応できます。
VDB関数の基本的な使い方
ここでは、取得価額100万円・残存価額0円・耐用年数5年の資産を例に、VDB関数の動きを段階的に見ていきます。減価償却(資産の価値を耐用年数にわたって費用計上する会計処理)の流れをイメージしながら読み進めてください。
第1期の減価償却費を求める
まずは1期分だけ計算してみます。セルに次の式を入力します。
=VDB(1000000, 0, 5, 0, 1)
結果は 400,000 です。倍額定率法の減価率は factor÷耐用期数で求めるので、2÷5=0.4(40%)。初年度は 1,000,000×0.4=400,000円 が償却費となります。
第1〜3期の合計を一発で出す
VDB関数の真骨頂は、ここからです。開始期=0・終了期=3 と指定すれば、第1期から第3期までの累計償却費をまとめて取得できます。
=VDB(1000000, 0, 5, 0, 3)
結果は 784,000 です。内訳は第1期400,000円、第2期240,000円、第3期144,000円で、合計784,000円と一致しますよ。
各期を個別に並べて償却スケジュールを作る
年次ごとの償却費を一覧化したい場合は、開始期と終了期を1ずつずらして並べます。
| 期 | 数式 | 償却費 |
|---|---|---|
| 第1期 | =VDB(1000000,0,5,0,1) | 400,000円 |
| 第2期 | =VDB(1000000,0,5,1,2) | 240,000円 |
| 第3期 | =VDB(1000000,0,5,2,3) | 144,000円 |
| 第4期 | =VDB(1000000,0,5,3,4) | 108,000円 |
| 第5期 | =VDB(1000000,0,5,4,5) | 108,000円 |
第4期と第5期が同額(108,000円)になっているのがポイントです。これは定率法の償却額が定額法を下回ったタイミングで、自動的に定額法へ切り替わった結果ですね。
DDB関数とVDB関数の使い分け
同じ倍額定率法をベースにする DDB関数と VDB関数は、使える場面が明確に分かれます。
| 比較軸 | DDB関数 | VDB関数 |
|---|---|---|
| 計算対象 | 1期間のみ | 開始期〜終了期の合計 |
| 切り替えなし引数 | なし | あり(デフォルトFALSE) |
| 逓減率引数 | あり(デフォルト2) | あり(デフォルト2) |
| 小数期間の指定 | 不可 | 可能 |
| 戻り値の符号 | 正の値 | 正の値 |
単年度の償却費だけ欲しいなら DDB関数が手軽です。累計を出したい・部分期間を計算したい場合は VDB関数の出番です。VDB関数1本にまとめるとシート全体がシンプルになりますよ。
DDB関数の詳しい使い方はスプレッドシートのDDB関数の使い方を参照してください。
no_switch引数のTRUE/FALSEの使い分け
VDB関数の特徴である「切り替えなし」引数は、実務判断を左右する重要なスイッチです。
| 値 | 挙動 | 想定シナリオ |
|---|---|---|
| FALSE(省略時) | 定率法の償却額が定額法を下回ったら、自動で定額法に切り替える | 残存価額まで確実に償却し切りたい一般的な経理処理 |
| TRUE | 最後まで倍額定率法のまま計算し、切り替えない | 早期に損益を確定させたい・切り替えが認められないルール下での試算 |
先ほどの例で第4期以降が 108,000円で均等化したのは、no_switch=FALSE(省略)だったためです。TRUE にした場合、第4期は86,400円、第5期は51,840円と定率法のまま小さくなっていきます。
残存価額まできちんと費用化したいなら FALSE を選びましょう。損益インパクトを早めに出したいなら TRUE が向いています。
なお、内部で参照される定額法の計算式はSLN関数の使い方で解説しています。切り替え後の挙動まで理解したい方はあわせてチェックしてみてください。
実務で役立つVDB関数の活用例
期間範囲の累計償却費をまとめて集計する
資産管理シートで「導入から3年間でいくら費用化したか」を出す場面は頻繁にあります。VDB関数なら、DDB関数を3つ足し算する必要はありません。
=VDB(B2, C2, D2, 0, 3)
B2に取得価額、C2に残存価額、D2に耐用年数を入れておけば、複数資産に数式をコピーするだけで一括集計できます。
完全償却スケジュール表を自動生成する
A列に期番号(0〜5)を並べて、B列に次の数式を置くと、償却スケジュール表がすぐに完成します。
=VDB($B$1, $C$1, $D$1, A2, A2+1)
B1に取得価額、C1に残存価額、D1に耐用年数を入れておくイメージです。開始期を行ごとに参照することで、各期の償却費が自動的に計算されますよ。
会計年度の端数に対応する
期首が7月始まりの会社で、初年度だけ半年分しか費用化しないケースでは、終了期に小数を指定します。
=VDB(1000000, 0, 5, 0, 0.5)
これで「第1期のうち前半半年分」の償却費が取得できます。Microsoft公式でも10年×12ヶ月の月単位指定が紹介されており、部分期間の計算はVDB関数ならではの強みです。
Excelとの互換性
VDB関数はExcelとGoogle スプレッドシートで基本的な動作が同等です。Excelファイル(.xlsx)をスプレッドシートで開いても、VDB関数はそのまま機能します。
DB関数など他の減価償却関数ではExcelとの挙動差が報告されることがありますが、VDB関数については主要な差異は確認されていません。ExcelファイルをGoogle スプレッドシートに移行する場合も、VDB関数の計算結果はそのまま引き継げます。
なお、Google スプレッドシートでは引数名が日本語(費用・残存価額・耐用期数など)で表示されます。Excelとは見た目が異なりますが、関数の動作には影響ありません。
よくあるエラーと対処法
| エラー | 発生条件 | 対処法 |
|---|---|---|
| #NUM! | 費用・残存価額・耐用期数・開始期・終了期・逓減率のいずれかが負の値/開始期>終了期/開始期や終了期が耐用期数を超える | 引数がすべて0以上であること、開始期≦終了期であること、耐用期数の範囲内に収まっていることを確認する |
| #VALUE! | 切り替えなし以外の引数に数値以外(文字列など)が入っている | セル参照先に文字列が混じっていないかチェックする。残存価額の「0円」を文字列で入れていないかも見直す |
特に多いのが、第1期を計算するつもりで開始期=1・終了期=1 と書いてしまい、結果が0になるパターンです。0始まりのルールを思い出して、開始期=0・終了期=1 に直せば解決しますよ。
日本の税法を扱うときの注意点
VDB関数の計算結果は国際会計(GAAP)ベースの倍額定率法です。日本の法人税法で定められた定率法・定額法とは計算ロジックが異なるため、税務申告書への転記には使えません。社内の管理会計・投資判断・シミュレーション用途にとどめ、税務計算は会計ソフトや税理士と連携した別管理にするのが安全です。
まとめ
スプレッドシートのVDB関数は、倍額定率法をベースに期間範囲の減価償却費を合計して返せる、柔軟性の高い財務関数です。ポイントを振り返っておきましょう。
- 開始期は0始まり。第1期は開始期=0・終了期=1で指定する
- 開始期・終了期は小数指定が可能で、部分期間計算にも使える
- no_switch=FALSE(省略時) で定額法への自動切り替えが働き、残存価額まで確実に償却できる
- DDB関数が1期専用なのに対し、VDB関数は複数期間の合計を1式で出せる
- 日本の税務申告には使わず、管理会計・シミュレーション用途で活用する
減価償却シリーズとして、DDB関数・SLN関数・SYD関数の記事も用意しています。自社の資産管理ルールに合わせて、4つの関数を使い分けてみてくださいね。
