投資判断や事業計画の評価で「正味現在価値(NPV)」を計算したいのに、入金や支払いのタイミングがバラバラで困った経験はありませんか。GoogleスプレッドシートのXNPV関数を使えば、日付が不規則なキャッシュフローでも正確にNPVを算出できます。
この記事では、XNPV関数の構文から、NPV関数との計算結果の違い、割引率の決め方、XIRRと組み合わせた投資判断のフローまで、実際の数値例を交えて解説します。
スプレッドシートのXNPV関数とは?
XNPV関数(読み方:エックスエヌピーブイ)は、不規則な間隔で発生する一連のキャッシュフローの正味現在価値(NPV)を計算する財務関数です。関数名は「X(不規則な日付の意味)+ NPV(Net Present Value:正味現在価値)」に由来します。
通常のNPV関数は「キャッシュフローが等間隔(毎年や毎月)で発生する」ことを前提としています。しかし実務では、初期投資の半年後に売上が立ち、その3か月後に追加投資、というように日付がバラバラなことの方が多いはずです。
XNPV関数なら、各キャッシュフローの発生日を直接指定できます。そのため、現実のスケジュールに沿った正確な評価が可能になります。
XNPV関数の構文と引数
XNPV関数の構文はシンプルです。
=XNPV(割引率, キャッシュフロー金額, キャッシュフロー日付)
引数の意味は次の通りです。
| 引数 | 内容 | 例 |
|---|---|---|
| 割引率 | 投資の年間割引率 | 0.08(8%) |
| キャッシュフロー金額 | 各時点の入出金額の範囲 | B2:B6 |
| キャッシュフロー日付 | 各金額に対応する日付の範囲 | A2:A6 |
押さえておくべきポイントは3つあります。割引率は年率で指定すること。最初のキャッシュフローは通常マイナス(初期投資)にすること。そして、日付は時系列順に並べ、最初の日付が割引計算の基準日になることです。
内部的には、各キャッシュフローを「最初の日付からの実日数 ÷ 365」乗の割引係数で現在価値に換算してから合計しています。期間ではなく実日数を使うのが、XNPV関数のいちばんの特徴です。
XNPV関数の基本的な使い方
実際にスプレッドシートでXNPVを使ってみましょう。次のような投資案件を評価する例です。A列に日付、B列にキャッシュフローを入力します。
| セル | 日付(A列) | キャッシュフロー(B列) |
|---|---|---|
| 2行目 | 2026/01/15 | -1,000,000 |
| 3行目 | 2026/05/20 | 250,000 |
| 4行目 | 2026/11/10 | 350,000 |
| 5行目 | 2027/04/05 | 400,000 |
| 6行目 | 2027/09/30 | 300,000 |
割引率を年8%として、セルD2にXNPVを入力します。
=XNPV(0.08, B2:B6, A2:A6)
この式の結果は約 220,471円 が返ります(円未満は四捨五入)。これは、5回の不規則なキャッシュフローを「2026/01/15時点の価値」に割り戻した合計値です。
結果がプラスなら投資価値あり、マイナスなら見送り、というのが基本的な判断軸です。今回のケースは100万円の初期投資に対して、現在価値ベースで約22万円の上積みが見込めるため、年8%の要求利回りをクリアできていると判断できます。
結果がどう計算されているかを確かめる
XNPVの計算過程は、列を分けて自分で再現できます。理解を深めたい場合は、C列に「最初の日付からの経過日数」、D列に「割引係数」、E列に「現在価値」を作ってみてください。
| 行 | 経過日数(C列) | 割引係数(D列) | 現在価値(E列) |
|---|---|---|---|
| 2 | 0 | 1.0000 | -1,000,000 |
| 3 | 125 | 0.9740 | 243,510 |
| 4 | 299 | 0.9388 | 328,567 |
| 5 | 445 | 0.9106 | 364,242 |
| 6 | 623 | 0.8780 | 263,392 |
E列を合計すると約 220,471円となり、XNPV関数の出力と一致します。経過日数は =A3-$A$2 で、割引係数は =1/(1+0.08)^(C3/365) で求められます。
NPV関数との違いと計算結果の比較
NPV関数とXNPV関数は名前が似ていますが、扱える対象がまったく違います。
| 比較項目 | NPV関数 | XNPV関数 |
|---|---|---|
| キャッシュフローの間隔 | 等間隔(年単位)が前提 | 不規則な日付に対応 |
| 日付引数 | なし | 必須 |
| 構文 | =NPV(割引率, 値1, 値2,…) | =XNPV(割引率, 値範囲, 日付範囲) |
| 初期投資の扱い | 別途加算するのが基本 | 第1要素として日付付きで含める |
| 割引計算の基準 | 期数(年) | 最初の日付からの実日数を365で換算 |
計算結果はどれくらい変わるのか
先ほどの5件のキャッシュフローを、「年単位の等間隔で発生した」とみなしてNPV関数で計算すると、次のような式になります。
=NPV(0.08, B3:B6) + B2
この場合の結果は約 167,300円 です。XNPV関数の 220,471円と比べると、5万円以上もNPVが小さく算出されてしまいます。
これは、NPV関数がB3以降のキャッシュフローを「1年後・2年後・3年後・4年後」と扱うためです。実際には半年程度しか経っていない入金まで1年分割り引かれてしまい、現在価値が過小評価されます。
使い分けの目安は明確です。毎年・毎月など決まった周期でCFが発生するならNPV関数で十分です。日付がバラバラなときや、回収スケジュールを精密に評価したいときはXNPV関数を使ってください。
XNPV関数の実務での活用例3パターン
XNPV関数はさまざまな投資評価シーンで活躍します。代表的な3つのパターンを紹介します。
プロジェクト投資の判断
新規事業や設備投資の評価に使えます。設備購入や開発費を初期投資(マイナス)、段階的な売上回収をプラスで日付付きで並べていきます。割引率には自社の資本コスト(WACC)や経営層が設定するハードルレートを使うのが一般的です。
代表的な並べ方は次の通りです。
| 日付 | 内容 | 金額 |
|---|---|---|
| 2026/04/01 | 設備投資 | -5,000,000 |
| 2026/10/01 | 立ち上げ後の初回回収 | 800,000 |
| 2027/04/01 | 通年運用1年目の利益 | 2,500,000 |
| 2028/04/01 | 通年運用2年目の利益 | 2,800,000 |
| 2029/04/01 | 設備売却+利益 | 1,500,000 |
割引率10%でXNPVを取って、結果がプラスなら投資承認、マイナスなら計画見直しという形で意思決定を支援できます。
不動産投資の現在価値評価
物件購入費を初期投資とし、家賃収入・大規模修繕費・最終的な売却益を不規則な日付で並べて評価します。家賃は毎月発生しますが、修繕や賃料改定、退去後のリフォーム費は日付がバラバラに発生します。
XNPVなら、これらを一つの表にまとめて現在価値で評価できます。割引率は、安定した賃貸物件なら4〜6%、リスクの高い区分マンションや郊外物件なら6〜8%程度に設定するのが目安です。
事業計画・資金調達資料の評価
スタートアップや新規事業の資金調達資料を作るとき、XNPV関数が威力を発揮します。月次・四半期のキャッシュフローをそのまま並べて評価できるため、無理やり年次に整える必要がありません。
立ち上げ期から黒字化までの実際のスケジュールが評価に反映されるので、事業計画書や投資家向け資料との整合性を取りやすくなります。投資家側がDCF評価をするときも、XNPVベースで割り戻すことが多いです。
割引率の決め方の実践
XNPV関数を使ううえで多くの方がつまずくのが、割引率(ディスカウントレート)の設定です。割引率は「将来のお金を現在の価値に割り戻すための率」で、投資家が要求する期待収益率を意味します。
中小企業の簡易評価で使える3パターン
実務でよく使われる目安をまとめました。
| 投資の性質 | 割引率の目安 | 設定根拠 |
|---|---|---|
| 銀行借入中心の安定事業 | 5〜7% | 借入金利+リスクプレミアム数% |
| リスクの高い新規事業 | 10〜15% | 銀行借入金利+大きめのプレミアム |
| スタートアップ・VC案件 | 20〜30% | VC期待リターン水準 |
| 安定的な賃貸不動産 | 4〜6% | 同種物件の利回りを参照 |
WACCを使うときの考え方
中堅以上の企業では、WACC(加重平均資本コスト)を割引率に使います。WACCは「借入コスト×借入比率+株主資本コスト×株主資本比率」で求める平均的な調達コストです。自社のWACCがすでに算出されていれば、それをそのまま割引率に入れるのが標準です。
感度分析もセットで行う
割引率を高くするほど将来CFの現在価値は小さくなり、評価が厳しくなります。1つの割引率だけで判断するのではなく、5%・8%・12%など複数の割引率でXNPVを試算する感度分析をおすすめします。
=XNPV(F2, B2:B6, A2:A6)
F列に割引率の候補を並べておけば、横にコピーするだけで複数パターンを比較できます。NPVが0になる割引率(=XIRR)も、後述するXIRR関数で一発で求められます。
XIRR関数との組み合わせで投資判断する
XNPV関数とセットで覚えておきたいのがXIRR関数です。XIRRは「XNPVが0になる割引率」、つまり内部収益率(IRR)を、不規則な日付のキャッシュフローから算出する関数です。
=XIRR(キャッシュフロー金額, キャッシュフロー日付, [推測値])
先ほどの例で計算してみると、次のように書けます。
=XIRR(B2:B6, A2:A6)
この結果は約 18.7% となります。つまりこのプロジェクトの実質的な期待利回りは、年18.7%相当だということです。
XNPV→XIRR→投資判断のフロー
実務では、次の流れで投資の可否を判断するのが定番です。
- XNPV関数で、自社の要求利回り(割引率)でNPVを算出する
- XIRR関数で、プロジェクトの期待利回りを算出する
- 自社のハードルレート(最低要求利回り)と XIRR を比較する
- XIRR > ハードルレートなら投資承認、下回るなら見送り
たとえば自社のハードルレートが10%なら、XIRR 18.7%のプロジェクトは「ハードルレートを大きく超えるので投資価値あり」と判断できます。XNPVの絶対額(220,471円)と、XIRRの利回り(18.7%)を両輪で評価することで、投資判断の説得力がぐっと上がります。
なお、伝統的なNPV関数の解説はスプレッドシートのNPV関数の使い方に、等間隔IRRの考え方はスプレッドシートのIRR関数の使い方にまとめています。等間隔データを扱う場合は、そちらも参考にしてみてください。
よくあるエラーと対処法
XNPV関数を使うときに遭遇しやすいエラーを整理しておきます。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 金額と日付の個数が合わない/日付が時系列順でない | 範囲のサイズを揃え、日付を昇順に並べ直す |
| #VALUE! | 日付引数に文字列など日付以外の値が含まれる | セルの書式を「日付」に統一する |
| #DIV/0! | 割引率に-1を指定している | 割引率を-1以外の値に修正する |
| #REF! | 参照範囲が削除されている | A列・B列の範囲を再指定する |
| 想定外の結果 | 最初の日付が最古でない | 必ず最初の行に基準となる最古の日付を配置する |
特に「最初の日付が基準日になる」というルールは見落とされがちです。データを並べ替える際は、最古の日付を必ず先頭に置いてください。
もう一つよくあるのが、割引率を「8%」のような文字列で入れてしまうケースです。0.08 のように小数で入れるか、=8% と数式の形で入れる必要があります。セルに 8% と入力すれば自動的に 0.08 として認識されるので、それを参照する形にすると安全です。
まとめ
GoogleスプレッドシートのXNPV関数は、日付が不規則なキャッシュフローでも正味現在価値を正確に算出できる強力な財務関数です。
- 構文は
=XNPV(割引率, 金額範囲, 日付範囲)のシンプル3引数 - NPV関数は等間隔前提、XNPV関数は不規則日付に対応
- 同じデータでもNPVとXNPVで5万円以上の差が出ることもある
- 割引率は資本コスト・WACC・期待収益率を年率で設定する
- XIRR関数とセットで使い、ハードルレートと比較して投資判断する
実務の投資判断や事業計画評価では、現実のスケジュールに即したXNPV関数を使うことで、より説得力のある分析ができます。まずは身近な投資案件を、自分の手で表にまとめて試算してみてください。
