「米国本社のレポートで、第1期から第3期までの累計償却費をまとめて出したい」。そんな経理担当者は多いですよね。DDB関数だと1期ずつしか計算できず、足し算が面倒になりがちです。
ExcelのVDB関数を使えば、開始期から終了期までの減価償却費を1つの式で合計できます。期中取得や半年分など部分期間にも対応できる柔軟性が魅力ですよ。この記事では、VDB関数の構文から実務シナリオまで、同僚に教える感覚で解説していきます。
ExcelのVDB関数とは?可変率法で期間範囲の減価償却費を求める財務関数
ExcelのVDB関数は、可変率法(Variable Declining Balance)で減価償却費を計算する財務関数です。指定した期間範囲(開始期〜終了期)の償却費を合計して返すのが最大の特徴ですよ。
VDB は Variable Declining Balance の頭文字で、「ブイディービー」と読みます。デフォルトでは倍額定率法(償却率を定額法の2倍にする方法)で計算するのが基本です。さらに、定率法の償却額が定額法を下回るタイミングで自動的に定額法へ切り替わります。この「ハイブリッド償却」の挙動が VDB関数を特別にしているポイントです。
対応バージョンは Excel 2003以降・Microsoft 365です。Mac版・Web版・Googleスプレッドシートでも同じ構文で使えますよ。
DDB関数との大きな違い
DDB関数は1期分の償却費しか返せません。一方で VDB関数は、「第1期から第3期までの合計」のような累計計算が1式で完結します。さらに、開始期と終了期に小数を指定できるため、半年分や四半期ごとの按分にも使えますよ。
こんな場面で活躍する
- 米国本社・IFRS連結向けのレポート用に、倍額定率法ベースの累計償却費を出したい
- 期中取得した資産の初年度按分(半年分・3ヶ月分など)を計算したい
- 固定資産台帳で「導入から N年経過時点の累計償却費」を一括集計したい
- 月単位での償却スケジュール表を作りたい
減価償却関数シリーズとして、DDB関数・SYD関数・AMORLINC関数の記事も用意しています。あわせて読むと、減価償却関数の全体像がつかめますよ。
VDB関数の構文と引数の意味
基本構文
=VDB(取得価額, 残存価額, 耐用年数, 開始期, 終了期, [率], [切り替えなし])
英語表記だと次のとおりです。
=VDB(cost, salvage, life, start_period, end_period, [factor], [no_switch])
引数は最大7つで、最後の2つ(率・切り替えなし)は省略できます。
各引数の解説
引数を表にまとめました。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 取得価額(cost) | 必須 | 資産の購入金額(0以上の数値) |
| 残存価額(salvage) | 必須 | 耐用年数終了時の資産価値。0でも可 |
| 耐用年数(life) | 必須 | 資産を償却する総期間 |
| 開始期(start_period) | 必須 | 計算を開始する期。0始まりで指定 |
| 終了期(end_period) | 必須 | 計算を終了する期。耐用年数以下で指定 |
| 率(factor) | 省略可 | 償却率の倍率。省略時は2(倍額定率法) |
| 切り替えなし(no_switch) | 省略可 | TRUEで定額法への自動切り替えを無効化 |
特に押さえてほしいのは、開始期が0始まりという点です。第1期分だけを計算したいときは、開始期=0・終了期=1と指定します。
「1始まりのほうが直感的では?」と思うかもしれません。ですが、ここを間違えると第2期分の償却費が返ってきます。VDB関数最大の落とし穴ですので、絶対に覚えておきましょうね。
開始期と終了期に小数を指定できる
VDB関数のもう一つの強みは、開始期と終了期に小数も指定できることです。
end_period=0.5→ 第1期の前半半年分end_period=0.25→ 第1期の最初の3ヶ月分- 月単位で計算する場合は、耐用年数を月数(10年なら120ヶ月)に置き換える
期中取得の按分計算や、決算月のずれに柔軟に対応できますよ。これは DDB関数にはない VDB関数固有のメリットです。
VDB関数の基本的な使い方
ここからは、取得価額1,000,000円・残存価額0円・耐用年数5年の資産を例に、段階的に使い方を見ていきます。
第1期の減価償却費を求める
まずは1期分だけ計算してみます。セルに次の式を入力してください。
=VDB(1000000, 0, 5, 0, 1)
結果は 400,000円 になります。
倍額定率法の償却率は「率÷耐用年数」で求めます。今回は2÷5=0.4(40%)。第1期は1,000,000×0.4=400,000円が償却費です。
第1〜3期の累計を一発で出す
VDB関数の真骨頂はここからです。開始期=0・終了期=3 と指定すれば、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円になっていますね。これは定率法の償却額が定額法を下回ったタイミングで、自動的に定額法へ切り替わった結果です。no_switch 引数を省略している(=FALSE)ためですよ。
5年合計は400,000+240,000+144,000+108,000+108,000=1,000,000円。残存価額0円にぴたりと到達します。
DDB関数とVDB関数の使い分け
倍額定率法をベースにする DDB関数と VDB関数は、使える場面が明確に分かれます。一覧で整理しました。
| 比較軸 | DDB関数 | VDB関数 |
|---|---|---|
| 計算対象 | 1期間のみ | 開始期〜終了期の合計 |
| 必須引数 | 4つ | 5つ |
| 切り替えなし引数 | なし | あり(既定FALSE) |
| 率引数 | あり(既定2) | あり(既定2) |
| 小数期間の指定 | 不可 | 可能 |
| 戻り値の符号 | 正の値 | 正の値 |
単年度の償却費だけ欲しいなら DDB関数が手軽です。一方で、累計を出したい・部分期間を計算したいなら VDB関数の出番ですよ。実務では VDB関数1本に統一すると、固定資産台帳の数式がシンプルになりますね。
DDB関数の詳しい使い方はExcelのDDB関数の使い方を参照してください。
no_switch(切り替えなし)引数のTRUE/FALSE使い分け
VDB関数の特徴である「切り替えなし」引数は、実務判断を左右する重要なスイッチです。挙動を表で比べてみましょう。
| 値 | 挙動 | 想定シナリオ |
|---|---|---|
| FALSE(省略時) | 定率法の償却額が定額法を下回ったら、自動で定額法に切り替える | 残存価額まで確実に償却し切りたい一般的な経理処理 |
| TRUE | 最後まで倍額定率法のまま計算し、切り替えない | 早期に損益を確定させたい・切り替えが認められないルール下での試算 |
切り替えあり(FALSE、既定)の場合
先ほどの例で第4期以降が108,000円で均等化したのは、no_switch=FALSE(省略)だったためです。耐用年数末で残存価額にピタリと一致しますよ。
=VDB(1000000, 0, 5, 0, 5)
結果は1,000,000円。取得価額の全額が償却される計算です。
切り替えなし(TRUE)の場合
逆に、TRUE を指定すると倍額定率法のまま最後まで計算します。
=VDB(1000000, 0, 5, 0, 5, 2, TRUE)
各期の内訳は次のとおりです。
| 期 | 償却費 |
|---|---|
| 第1期 | 400,000円 |
| 第2期 | 240,000円 |
| 第3期 | 144,000円 |
| 第4期 | 86,400円 |
| 第5期 | 51,840円 |
合計922,240円。残存価額77,760円が残ります。完全に償却し切れない点に注意してくださいね。
どちらを選ぶか
残存価額まできちんと費用化したいなら FALSE(省略) を選びましょう。早めに損益インパクトを出したい場合や、税法上の特殊ルールを試算したい場合は TRUE が向いています。
なお、内部で参照される定額法の計算式はSLN関数の使い方で解説しています。切り替え後の挙動まで理解したい方はあわせてチェックしてみてください。
実務で役立つVDB関数の活用例
期間範囲の累計償却費をまとめて集計する
固定資産台帳で「導入から3年間でいくら費用化したか」を出す場面は頻繁にあります。VDB関数なら、DDB関数を3つ足し算する必要はありません。
=VDB(B2, C2, D2, 0, 3)
B2に取得価額、C2に残存価額、D2に耐用年数を入れておきます。複数資産にこの数式をコピーすれば、一括集計が完了しますよ。
期中取得資産の按分を計算する
4月1日に資産を取得し、決算が9月末(半年後)のケースでは、終了期に小数を指定します。
=VDB(1000000, 0, 5, 0, 0.5)
結果は 200,000円(第1期償却費400,000円の半分)です。期中取得分を SLN関数で手計算する手間がなくなりますね。
月次の償却スケジュール表を作る
月単位で償却を管理したい場合は、耐用年数を月数に置き換えます。耐用年数10年なら life=120 です。
=VDB(1200000, 0, 120, 0, 1)
これで第1ヶ月分の償却費が取得できます。月別のシリアル計算で、リース会計などの管理にも応用できますよ。
完全償却スケジュール表を自動生成する
A列に期番号(0〜5)を並べて、B列に次の数式を置くと、償却スケジュール表がすぐに完成します。
=VDB($B$1, $C$1, $D$1, A2, A2+1)
B1に取得価額、C1に残存価額、D1に耐用年数を入れておくイメージです。開始期を行ごとに参照すれば、各期の償却費が自動で計算されますよ。
150%定率法のシナリオ分析
factor 引数を1.5に変えると、150%定率法の試算ができます。
=VDB(1000000, 0, 5, 0, 5, 1.5)
200%(既定)と150%の累計償却費を比較し、税効果インパクトを試算するシナリオ分析にも便利ですよ。
他の減価償却関数との比較
Excelには複数の減価償却関数があります。VDB関数の位置づけを確認しておきましょう。
| 関数 | 計算方法 | 特徴 |
|---|---|---|
| SLN | 定額法 | 毎期一定の償却費 |
| DB | 旧定率法(固定償却率) | 米国GAAP旧基準 |
| DDB | 倍額定率法(1期のみ) | 200%定率法の単年度版 |
| VDB | 可変率法(期間範囲合計) | DDB+定額法切替+部分期間OK |
| SYD | 級数法(年数合計法) | 加速償却 |
| AMORLINC | フランス会計の線形 | 期中取得の按分自動 |
VDB関数は、DDB関数の「累計版」かつ「定額法切替+部分期間対応」の上位互換と捉えられます。実務で迷ったら VDB関数を選んでおけば、ほぼカバーできますよ。
よくあるエラーと対処法
VDB関数で発生しやすいエラーを表にまとめました。
| エラー | 発生条件 | 対処法 |
|---|---|---|
| #NUM! | 取得価額・残存価額・耐用年数・開始期・終了期・率のいずれかが負の値/開始期>終了期/開始期や終了期が耐用年数を超える | すべての引数が0以上であること、開始期≦終了期であること、耐用年数の範囲内に収まっていることを確認する |
| #VALUE! | 切り替えなし以外の引数に数値以外(文字列など)が入っている | セル参照先に文字列が混じっていないかチェックする。残存価額の「0」を文字列扱いで入れていないかも見直す |
特に多いミスが、第1期を計算するつもりで start_period=1, end_period=1 と書いてしまい、結果が0になるパターンです。0始まりルールを思い出して、start_period=0, end_period=1 に直せば解決しますよ。
もう一つのよくあるミスは、end_period > life のケースです。耐用年数5年の資産で end_period=6 と指定すると #NUM! エラーになります。終了期は耐用年数以下に収めてくださいね。
日本の税務上の扱いと注意点
VDB関数は便利な反面、日本の税務申告書には直接使えません。
日本の現行税法(平成24年4月1日以降取得の資産)では「200%定率法」が法定償却方法です。名前は VDB関数の倍額定率法(factor=2)と似ています。ですが、日本の200%定率法には保証率と改定償却率という独自の仕組みがあります。償却額が一定水準を下回ったら均等償却に切り替える仕掛けですね。
VDB関数の no_switch=FALSE の挙動は日本の200%定率法に似ていますが、完全には一致しません。税務申告書への転記には使えませんので、用途を分けて使ってくださいね。
VDB関数が活躍するのは、次のような場面です。
- 米国会計基準(US GAAP)に基づく償却計算
- IFRS(国際会計基準)連結用の試算
- 管理会計のシナリオ分析
- 投資判断のシミュレーション
社内の管理会計用途にとどめ、税務計算は会計ソフトや税理士と連携した別管理にすると安全ですよ。
まとめ
ExcelのVDB関数は、可変率法をベースに期間範囲の減価償却費を合計して返せる柔軟性の高い財務関数です。ポイントを振り返っておきましょう。
- 開始期は0始まり。第1期は開始期=0・終了期=1で指定する
- 開始期・終了期は小数指定が可能で、部分期間計算にも使える
- 率(factor)の既定値は2で、倍額定率法(200%定率法)として動作する
- 切り替えなし(no_switch)=FALSE(省略時)で定額法への自動切り替えが働き、残存価額まで確実に償却できる
- DDB関数が1期専用なのに対し、VDB関数は複数期間の合計を1式で出せる
- 日本の税務申告には使えない。米国GAAP・IFRS連結・管理会計の用途で活用する
減価償却関数シリーズとして、SLN関数・DB関数・DDB関数・SYD関数・AMORLINC関数の記事も用意しています。固定資産の管理ルールに合わせて、6つの関数を使い分けてみてくださいね。
