若要在 Excel 中計算 NPV 的折現率,可以使用 IRR 或 XIRR 函式找出使淨現值歸零的利率,或將 NPV 函式搭配目標搜尋(Goal Seek)來求解任何目標利率。Excel 內建的 NPV(rate, value1, [value2], …) 函式會從第 1 期開始將每筆現金流量折現,而 XNPV(rate, values, dates) 則能處理不規則的日期間距。折現率本身只是用來將未來現金流量轉換成今日金額的週期報酬率——以小數輸入(10% 輸入為 0.10)——同一個數字會同時餵入 NPV、XNPV、IRR 和 XIRR。請記住,第 0 期,也就是你投資或借款的當下,並不會被折現,因此其現金流量必須加到函式結果之外,而不是放在函式內部。這個慣例正是正確 NPV 與差了一整個折現期的答案之間的差別。

how to calculate discount rate for npv in excel
how to calculate discount rate for npv in excel

NPV 與折現率的真正意涵

淨現值是一個專案中所有未來現金流量的總和,每一筆都透過折現率拉回今天的價值。一筆 1 年後到期的 $500 現金流量,其價值低於今天的 $500,因為今天的 1 元可以拿去投資並賺取利息。折現率就是用百分比來呈現這種價值損失——它代表資金的機會成本、投資人在其他地方可以獲得的報酬,或是為這個專案融資的借款成本。

折現率也是 NPV 與 IRR 之間的橋樑。NPV 接受一個選定利率並回傳一個金額;IRR 接受現金流量並回傳使 NPV 恰好為零的利率。兩個數字從相反兩端描述同一個取捨,因此一個能計算其中之一的 Excel 模型,幾乎都能反過來求解另一個。

NPV 與折現率相關的關鍵 Excel 函式

函式功能說明適用情境期數時序
NPV(rate, value1, [value2]…)將一系列等期距的現金流量折現回第 0 期定期的每月、每季或每年的現金流量從第 1 期開始;第 0 期的值需另外加上
XNPV(rate, values, dates)將發生在特定、不規則日期的現金流量折現月中成交的交易或日期不規律的分期付款以每筆交易實際日期對照 365 天一年計算
IRR(values, [guess])回傳使一系列現金流量之 NPV 等於零的利率求等期距現金流量的內部報酬率第 0 期加上等距的後續期數
XIRR(values, dates, [guess])回傳使具日期的現金流量之 XNPV 等於零的利率不定期投入之投資的年化報酬率每一筆使用各自的日期

這四個函式都要求折現率以小數形式輸入——8% 要輸入 0.08,而非 8。忘記這個小細節,是 NPV 公式回傳的數字與正確值相差一個數量級最常見的原因。

在 Excel 中計算 NPV

  1. 開啟一個新工作表,將 A 欄命名為「Period」,B 欄命名為「Cash Flow」,C 欄命名為「Discount Factor」。在 A2 儲存格輸入 0,並在 B2 將初始支出以負數表示(例如 -1000)。
  2. 在 A 欄往下填入期數 1 到 n,並將每筆未來現金流量填入 B 欄,流入以正數表示,額外流出以負數表示。
  3. 挑選一個儲存格放置折現率——例如 D1——並以小數形式輸入(10% 輸入為 0.10)。將該儲存格命名為「Rate」,讓公式保持可讀性。
  4. 在 C 欄計算每期的折現因子,公式為 =1/(1+$D$1)^A3,其中 A3 為期數。將公式往下拖曳到每一列現金流量。
  5. 在 D 欄將現金流量乘以折現因子:=B3*C3。每筆現金流量的折現後價值即可一目了然。
  6. =SUM(D3:D8) 加總 D 欄,並另外加上初始支出:=B2+SUM(D3:D8)。結果就是在選定折現率下該專案的 NPV。
  7. 若要求出使 NPV 為零的利率,請將第 0 期到第 n 期的所有現金流量放在同一列,並使用 =IRR(B2:B8)。Excel 會在內部反覆運算並以小數形式回傳利率;將儲存格格式設為百分比以便顯示。
  8. 若為不規則日期,請將 NPV 換成 XNPV(rate, values_range, dates_range),並將 IRR 換成 XIRR(values_range, dates_range)。rate 參數仍須以小數輸入。

當 IRR 無法收斂時,目標搜尋(Goal Seek)就是備援方案。設定要改變的儲存格為利率儲存格,使 NPV 儲存格歸零,Excel 就會反覆調整利率,直到 NPV 達到目標——通常能精確到小數點後幾位。

10% 折現率、三年的實作範例

假設你今天(第 0 期)投資 $1,000,預期在第 1 年底收到 $300、第 2 年底收到 $400、第 3 年底收到 $500。以 10% 折現率(輸入為 0.10)計算,每年現金流量的現值就是現金流量除以 1.10 的期數次方:

  • 第 1 年:$300 ÷ 1.10 = $272.73
  • 第 2 年:$400 ÷ 1.10² = $400 ÷ 1.21 = $330.58
  • 第 3 年:$500 ÷ 1.10³ = $500 ÷ 1.331 = $375.66

三個現值相加為 $272.73 + $330.58 + $375.66 = $978.97。扣掉 $1,000 的初始支出後,NPV 為 -$21.03,代表在 10% 折現率下這個專案會摧毀價值。同樣的數字在 Excel 中寫成 =NPV(0.10, B3:B5) + B2,其中 B2 為 -1000,B3:B5 為 300、400 與 500。會使該專案 NPV 恰好為零的折現率大約在 8.9% 附近——用 =IRR(B2:B5) 快速驗算會回傳接近該值的結果,也就是讓三筆未來現金流量加總起來等於今天 $1,000 的利率。

在 Excel 中計算 NPV 的常見錯誤

最常見的錯誤,是把第 0 期的現金流量當作 NPV 函式的一部分。Excel 的 NPV 假設第一個值是從一期後才開始,因此初始支出必須加在函式之外,否則整個 NPV 會被平移一個期數。第二個常見的失誤,是忘了把折現率從百分比轉成小數;在公式中輸入 10 會產生一個極度負的 NPV,因為 Excel 會以 11 為折現因子。符號混用也會造成難以察覺的錯誤:若把初始投資以正數輸入、未來報酬也以正數輸入,NPV 出來就只是折現後現金流量的毛額加總,完全沒有扣掉投資額。請選定一套慣例——通常是流出為負、流入為正——並在所有模型中貫徹。最後,要小心中間步驟的捨入。請只在顯示時捨入,讓底層數字保持精確;在一長串現金流量的運算中,若每一個值都先捨入,結果可能會偏離真正的 NPV 整整一個百分點。

當你需要的是購物折扣而非 NPV

NPV 背後的折現率是一種百分比運算,但日常大多數「折現率」相關的問題其實是關於店家折扣,而不是投資分析。一張 20% 折扣券加上另一張 10% 折扣券,並不會變成 30% 折扣——第二張券是折後再折,所以一個 $100 的商品最後會變成 $72,等於真正的 28% 折扣。這種算術用手算就足夠,但很容易算錯,特別是疊了三、四張券,或是在比較兩種不同優惠的時候。

面對這類決策,一個即時的折扣計算機可以免除所有猜測。輸入原價與折扣百分比,售價與省下的金額會立即顯示;點選再疊加一個折扣,工具就會依序套用每個百分比,然後回報真正的合併有效折扣,讓你能誠實比較各個優惠。所有運算都在瀏覽器本地執行,價格資料保持私密,也不需要註冊任何帳號。

搭配折扣計算機使用 Excel

堆疊折價券背後的「依序套用百分比」概念,正是 Excel 的 NPV 函式對現金流量所做的事——每個未來值乘上一個折現因子,再把這些因子加總。當一項投資取決於特定折現率與多年期預測時,在 Excel 中建立 NPV 模型是正確的選擇。但若是面對一次性特價或結帳時的折價券堆疊決策,專用的折扣計算機會比開啟試算表更快,而且完全避開第 0 期對第 1 期的陷阱,因為算式非常直接:售價等於價格乘以(1 減去折扣百分比),每疊一張券就套用一次。

如果你正在權衡各種選項,如何計算通膨率與未來購買力對此有詳細說明。

如果你正在權衡各種選項,在 Excel 中計算貸款清償:NPER 與更快的做法對此有詳細說明。