「米国本社向けのレポートで、倍額定率法の減価償却費をExcelで毎回手計算している」。そんな経理担当者は意外と多いはずです。IFRSや米国会計基準では、初期に大きく償却する方法が一般的ですよね。DDB関数を知らないまま期ごとに電卓を叩くのは大変です。
ExcelのDDB関数を使えば、倍額定率法(二重定率法)の減価償却費をセル1つで自動計算できます。この記事では、DDB関数の使い方を構文・引数・実践例をもとに解説します。DB関数との数値比較や、率引数による償却スピードの調整方法もあわせて紹介しますよ。
DDB関数とは?Excelで倍額定率法の減価償却費を求める財務関数
DDB関数は、倍額定率法(ばいがくていりつほう)で1期あたりの減価償却費を求めるExcelの財務関数です。倍額定率法とは、定額法の償却率を2倍にして、帳簿価額にかけて償却する方法を指します。初年度が最も大きく、年を追うごとに償却費が急速に小さくなるのが特徴です。
対応バージョンはExcel 2003以降・Microsoft 365です。Googleスプレッドシートでも同じ構文で使えますよ。
DDB関数の読み方と名前の由来
読み方は「ディーディービー」です。英語の「Double Declining Balance(倍額逓減残高法)」の頭文字が由来になっています。帳簿価額を倍速で逓減させていく計算方法を表した名前です。
倍額定率法(二重定率法)とは
倍額定率法は、「二重定率法」「200%定率法」とも呼ばれます。定額法の償却率を2倍にした率を、毎期の期首帳簿価額にかけて償却費を求める計算方法です。
計算式はこのようになります。
償却率 = 2 ÷ 耐用年数
減価償却費 = (取得価額 - 前期までの償却累計額) × 償却率
耐用年数5年の定額法償却率は「1÷5=0.2」です。倍額定率法では、これを2倍にした「0.4」を使って償却します。
DDB関数の特徴(残存価額で自動停止)
DDB関数には、残存価額を下回らないよう償却費を自動で調整する仕組みが組み込まれています。通常計算で残存価額を割り込む期になると、その期の償却費は「取得価額 – 残存価額 – 累計償却額」の残額に切り下げて停止します。
この挙動により、耐用年数経過後の簿価がちょうど残存価額に一致します。DB関数(旧定率法)では小数点第3位の四捨五入による誤差が残りますが、DDB関数は端数なくピタリと合いますよ。
DDB関数は日本の税務申告に使える?
結論から言うと、DDB関数は日本の税務申告には直接使えません。
日本の現行税法(平成24年4月1日以降取得の資産)では「200%定率法」が法定償却方法です。名前は倍額定率法と似ていますが、日本の200%定率法には「保証率」と「改定償却率」という特殊な仕組みがあります。償却額が一定水準を下回ったら均等償却に切り替える仕掛けです。DDB関数にはこの切替機能がないため、税法上の償却費とは一致しません。
DDB関数が活躍するのは、米国会計基準(US GAAP)やIFRS(国際会計基準)の文脈です。米国現地法人の償却計算、IFRS連結用の試算、管理会計のシナリオ分析で使われます。
DDB関数の構文と引数の意味
基本構文
=DDB(取得価額, 残存価額, 耐用年数, 期間, [率])
引数は最大5つです。最後の「率」は省略できます。
各引数(取得価額・残存価額・耐用年数・期間・率)の解説
引数を表にまとめました。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 取得価額(cost) | 必須 | 資産の購入金額を指定する |
| 残存価額(salvage) | 必須 | 耐用年数終了時の資産価値を指定する |
| 耐用年数(life) | 必須 | 資産を償却する総年数を指定する |
| 期間(period) | 必須 | 償却費を計算したい年(1, 2, 3…)を指定する |
| 率(factor) | 省略可 | 定額法償却率の倍率を指定する(省略時は2) |
DB関数との違いは、第5引数の性質です。DB関数の第5引数は「月」(初年度の保有月数)でしたが、DDB関数は「率」(償却率の倍率)になります。DDB関数には年度途中取得の月按分機能がない点に注意してください。
DDB関数の内部計算式は、Microsoft公式によると次のとおりです。
減価償却費 = MIN(
(取得価額 - 前期までの償却累計額) × (率 ÷ 耐用年数),
(取得価額 - 残存価額) - 前期までの償却累計額
)
MIN関数で2つの値の小さい方を返すことで、残存価額を下回る償却を防ぐ仕組みです。実際の利用時はセルに引数を入れるだけで、Excelが自動でこの判定を行ってくれますよ。
第5引数「率」の使い方(2倍以外の倍率指定)
第5引数「率」は、定額法償却率の倍率を指定する引数です。省略すると2として扱われ、いわゆる「倍額定率法(200%定率法)」になります。
1.5を指定すると「150%定率法」、2.5を指定すると「250%定率法」として計算できます。米国MACRS(修正加速度償却システム)では資産クラスごとに倍率が異なるため、率引数が活躍する場面です。
| 率引数の値 | 呼び名 | 用途 |
|---|---|---|
| 1.5 | 150%定率法 | 一部の米国MACRS資産クラス |
| 2(省略時) | 200%定率法・倍額定率法 | 最も一般的 |
| 2.5 | 250%定率法 | 過去の日本税制(参考) |
| 3 | 300%定率法 | 極めて急速な償却が必要な場合 |
率の値を変えるだけで、償却スピードを柔軟に調整できるのがDDB関数の便利なところですよ。
DDB関数の基本的な使い方【実践例: 100万円の機械を5年で償却】
期ごとの減価償却費を1セルで求める
実際にDDB関数を使って減価償却費を計算してみましょう。条件は次のとおりです。
| セル | 内容 | 値 |
|---|---|---|
| B2 | 取得価額 | 1,000,000 |
| B3 | 残存価額 | 100,000 |
| B4 | 耐用年数 | 5 |
| B5 | 期間 | 1 |
1年目の償却費を求める場合はこのように書きます。
=DDB(B2, B3, B4, B5)
結果は400,000円です。内部計算を確認してみましょう。
償却率 = 2 ÷ 5 = 0.4
1年目 = 1,000,000 × 0.4 = 400,000
2年目以降を計算するときは、第4引数の「期間」を変えるだけです。
=DDB(1000000, 100000, 5, 2) → 240,000(2年目)
=DDB(1000000, 100000, 5, 3) → 144,000(3年目)
=DDB(1000000, 100000, 5, 4) → 86,400(4年目)
=DDB(1000000, 100000, 5, 5) → 29,600(5年目)
5年目だけ数値の動きが変わっているのに気づきますよね。通常計算なら 129,600 × 0.4 = 51,840円になるはずです。実際の値は29,600円に切り下げられています。これは残存価額100,000円を下回らないよう、DDB関数が自動で調整した結果ですよ。
年次推移表(減価償却スケジュール)の作り方
DDB関数は1セル単体でも使えます。ただ、実務では年度ごとの推移を表形式で管理するのが一般的です。上の条件で推移表を作ってみましょう。
| 年度 | 期首帳簿価額 | 償却費 | 期末帳簿価額 |
|---|---|---|---|
| 1年目 | 1,000,000 | 400,000 | 600,000 |
| 2年目 | 600,000 | 240,000 | 360,000 |
| 3年目 | 360,000 | 144,000 | 216,000 |
| 4年目 | 216,000 | 86,400 | 129,600 |
| 5年目 | 129,600 | 29,600 | 100,000 |
5年目終了時の帳簿価額は、きっちり残存価額の100,000円になりました。DDB関数の「残存価額で自動停止」の仕組みが働いているためです。
コピペで使える推移表の数式はこのようになります。
A列: 年度(1, 2, 3, 4, 5)
B列: 期首帳簿価額
B9 = $B$2 … 取得価額
B10 = D9 … 前年の期末帳簿価額
C列: 償却費
C9 = DDB($B$2, $B$3, $B$4, A9)
D列: 期末帳簿価額
D9 = B9 - C9
C列とD列を下方向にコピーするだけで、全期間の推移が自動計算されますよ。
率引数で償却スピードを変える【2倍→1.5倍の比較】
率=1.5(150%定率法)で計算してみる
第5引数「率」を変えると、償却パターンがどう変わるかを見てみましょう。同じ条件(取得価額100万円、残存価額10万円、耐用年数5年)で、率を1.5に変えた場合です。
=DDB(1000000, 100000, 5, 1, 1.5) → 300,000(1年目)
=DDB(1000000, 100000, 5, 2, 1.5) → 210,000(2年目)
=DDB(1000000, 100000, 5, 3, 1.5) → 147,000(3年目)
=DDB(1000000, 100000, 5, 4, 1.5) → 102,900(4年目)
=DDB(1000000, 100000, 5, 5, 1.5) → 72,030(5年目)
1年目の償却費が400,000円(率=2)から300,000円(率=1.5)に下がりました。後年の償却費が相対的に増えるため、初期の負担を抑えたい場合に使える設定ですよ。
率による償却パターンの違い(比較表)
3つの率を並べて比較してみましょう。
| 年度 | 率=1.5 | 率=2(省略時) | 率=2.5 |
|---|---|---|---|
| 1年目 | 300,000 | 400,000 | 500,000 |
| 2年目 | 210,000 | 240,000 | 250,000 |
| 3年目 | 147,000 | 144,000 | 125,000 |
| 4年目 | 102,900 | 86,400 | 25,000 |
| 5年目 | 72,030 | 29,600 | 0 |
率を大きくするほど初期に集中して償却します。率=2.5の場合、4年目で残存価額近くまで償却が完了し、5年目は償却費0になるケースもあります。米国MACRSの5年資産クラスは率=2を採用しています。IFRSでも率=2が一般的ですよ。
DDB関数 vs DB関数 vs SLN関数の使い分け
Excelには他にも減価償却関数がいくつか用意されています。目的に応じて使い分けましょう。
主要な減価償却関数の比較表
| 関数 | 償却方法 | 構文 | 償却パターン |
|---|---|---|---|
| SLN | 定額法 | =SLN(cost, salvage, life) | 毎年一定 |
| DB | 定率法(旧定率法) | =DB(cost, salvage, life, period, [month]) | 初期が大・年々減少 |
| DDB | 倍額定率法 | =DDB(cost, salvage, life, period, [factor]) | 初期が最大・急速減少 |
| SYD | 級数法 | =SYD(cost, salvage, life, period) | 逓減・直線的に減少 |
| VDB | 可変定率法 | =VDB(cost, salvage, life, start, end, [factor], [no_switch]) | 期間・係数を柔軟指定 |
DDB vs DB(同条件での数値比較)
DDB関数とDB関数では、同じ入力でも結果が大きく異なります。取得価額100万円、残存価額10万円、耐用年数5年で比べてみましょう。
| 年度 | DDB(倍額定率法・率=2) | DB(旧定率法) | 差額 |
|---|---|---|---|
| 1年目 | 400,000 | 369,000 | +31,000 |
| 2年目 | 240,000 | 232,839 | +7,161 |
| 3年目 | 144,000 | 146,921 | -2,921 |
| 4年目 | 86,400 | 92,707 | -6,307 |
| 5年目 | 29,600 | 58,498 | -28,898 |
| 累計 | 900,000 | 899,965 | +35 |
初期(1〜2年目)の償却額はDDBのほうが大きく、後半(3〜5年目)はDBのほうが大きくなります。累計償却額はほぼ同じですが、DDBは残存価額ちょうどで停止、DBは四捨五入による誤差が残るのが違いです。
ExcelのDB関数の使い方|定率法の減価償却費を計算でDB関数の詳細を解説しています。あわせてご覧くださいね。
DDB vs SLN(定額法との違い)
SLN関数は定額法、つまり毎年同じ額を償却する関数です。対してDDB関数は初期に大きく、後半に小さく償却します。
| 観点 | DDB(倍額定率法) | SLN(定額法) |
|---|---|---|
| 償却パターン | 初年度が最大・急速に減少 | 毎年同額 |
| メリット | 早期に多く費用計上できる | 予算見通しが立てやすい |
| デメリット | 計算が複雑・日本税務に非対応 | 初期負担が軽い資産にしか向かない |
| 向いている資産 | 陳腐化が早いIT機器・生産設備 | 建物・車両・長期使用資産 |
どの関数を選ぶかの判断フロー
償却関数を選ぶときは、次のフローで判断するとわかりやすいですよ。
【判定フロー】
├─ Q1. 日本の税務申告用か?
│ └─ YES → 会計ソフトまたは手計算(DDB/DB関数は直接使えない)
│ └─ NO → Q2へ
│
├─ Q2. 米国会計基準・IFRS用、または管理会計用か?
│ └─ YES → Q3へ
│
└─ Q3. 償却方法は?
├─ 定額法 → SLN関数
├─ 倍額定率法(200%定率法) → DDB関数(率=2)
├─ 旧定率法(2007年3月以前取得) → DB関数
├─ 年数和法(級数法) → SYD関数
└─ 複雑な切替あり → VDB関数
管理会計で「初期に多く償却した場合のシミュレーション」をしたいときも、DDB関数は便利ですよ。
DDB関数でよく起きるエラーと対処法
#NUM!エラーの原因と解決策
DDB関数で最もよく発生するのが#NUM!エラーです。主な原因は次の4つです。
- 取得価額または残存価額が0以下: マイナス値を指定すると発生します
- 耐用年数が1未満: 0や負の値を指定すると発生します
- 期間が0以下または耐用年数超過: 期間は1以上、耐用年数以下で指定します
- 率が0以下: 率引数を負の値やゼロで指定するとエラーです
=DDB(-1000000, 100000, 5, 1) → #NUM! エラー(取得価額が負)
=DDB(1000000, 100000, 5, 6) → #NUM! エラー(期間が耐用年数超過)
=DDB(1000000, 100000, 5, 1, -2) → #NUM! エラー(率が負)
#NUM!が出たら、まず4つの引数が正しい範囲にあるかを確認してみてください。
#VALUE!エラー・#NAME?エラーの対処
#VALUE!エラーは、引数に数値以外の値(文字列や日付文字列)を指定すると発生します。セル参照先の値が数値かどうかを確認してくださいね。
#NAME?エラーは関数名のスペルミスが原因です。「DBB」「DDP」「DDBB」など似たような綴りに間違えやすいので、「DDB」と正確に入力しましょう。
計算結果がおかしいときの確認ポイント
値は返るけれど、想定と違う数値になる場合もあります。主な原因は次の3つです。
- 率引数の省略漏れ: 1.5倍で計算したいのに省略すると2倍で計算されます
- 日本の税法との混同: 日本の200%定率法とDDB関数は計算が異なります
- 年度途中取得の按分を期待: DDB関数に月引数はありません。DB関数を検討してください
率引数と資産の取得日を見直すと、たいていの誤差は解消できますよ。
DDB関数に関するよくある質問
Q1. DDB関数の結果が小数になったら、どう処理すればいい?
税務書類では円未満切り捨てが一般的です。ROUNDDOWN関数と組み合わせて使いましょう。
=ROUNDDOWN(DDB(1000000, 100000, 5, 3), 0)
「ROUNDDOWN(ラウンドダウン)」は指定した桁で数値を切り捨てる関数です。第2引数に0を指定すると、小数点以下をすべて切り捨てて整数にできます。
Q2. DDB関数は月按分できる?
DDB関数には月引数がないため、年度途中取得の按分計算には直接対応しません。月按分が必要な場合はDB関数の第5引数「月」を使うか、VDB関数で期間を細かく指定する方法を検討してくださいね。
Q3. factor=2 と 率=2 は同じ意味?
はい、同じです。英語版Excelでは「factor」、日本語版Excelでは「率」と表示されますが、指している引数は同一です。デフォルト値の2は「定額法償却率の2倍」を意味します。
Q4. 累計償却額が取得価額-残存価額を超えないのはなぜ?
DDB関数は内部で「取得価額 – 残存価額 – 累計償却額」を上限として償却費を計算します。そのため、累計償却額は必ず「取得価額 – 残存価額」以下になります。帳簿価額が残存価額を下回ることはないので、安心して使えますよ。
まとめ
ExcelのDDB関数は、倍額定率法(二重定率法)で期ごとの減価償却費を自動計算する財務関数です。
ポイントをおさらいしておきましょう。
- 構文は
=DDB(取得価額, 残存価額, 耐用年数, 期間, [率]) - 率引数の省略時は2(200%定率法・倍額定率法)
- 残存価額を下回らないよう最終期の償却費は自動調整される
- DB関数より初期の償却額が大きくなる(同条件で約8%大きい)
- 米国会計基準・IFRS・管理会計の文脈で使われる関数
- 日本の税務申告には直接使えない(200%定率法の保証率計算が必要)
- 月按分が必要な場合はDB関数やVDB関数を検討する
ExcelのDB関数の使い方|定率法の減価償却費を計算もあわせて確認しておくと、2つの関数の使い分けがよりクリアになりますよ。
DDB関数を使えば、倍額定率法の償却費を期ごとに手計算する手間が大幅に減ります。米国会計・IFRS・管理会計のシミュレーションにぜひ活用してみてくださいね。
