XIRR 與 XNPV
XIRR and XNPV: dated cash flows
依每筆實際日期計算現值與年化內部報酬率,採實際日數/365。
調整假設,看數字如何改變
以下使用教學假設;調整滑桿後立即比較結果。
現金流金額
距首筆日數
距首筆日數: 365 · 現金流金額: 1,100
圖表資料
| 距首筆日數 | 現金流金額 |
|---|---|
| 0 | -1,000 |
| 365 | 1,100 |
本次代入
XNPV 大於零表示在指定折現率下,流入現值超過流出現值。XIRR 須配合規模、時點與再投資假設,不宜直接用來排名互斥專案。
同樣收回1,100,日期為什麼重要?
先支出1,000,將來收到1,100,看起來都是多了100;但一年後收回和兩年後收回,資金被占用的時間不同。若把不等距收付款硬塞成相隔相同時間的「第1期、第2期」,就可能錯估等待成本。
NPV/IRR適合事先定義的等距期間。XNPV/XIRR則讓每筆日期決定折現時間,可用來理解分批投入、私募現金流或不規則專案收支。本頁是教學情境,不是匯入真實市場資料的績效報告。
日期先變成年數,再變成現值
以首筆日期d₀為基準,每筆時間tᵢ=(dᵢ−d₀)/365。將CFᵢ除以(1+r)^tᵢ,就是那筆現金在基準日的價值;正數代表流入,負數代表流出。r須大於−100%,並使用有效年率口徑。
本工具採實際日數/365,閏年也仍除以365;日曆上相隔一年不一定恰好是t=1。以下使用2025-01-01至2026-01-01的365日,或至2027-01-01的730日,才能把日期與簡單的一年、兩年算式對上。
XNPV與XIRR回答不同問題
必要報酬率先由使用者給定,XNPV回答這些收支是否提供超過該要求的價值。一年後收到1,100,在10%下:−1,000+1,100/1.10=0;改成5%必要報酬,XNPV約47.62。零代表剛好符合指定要求,不是沒有收到現金或沒有利息。
XIRR反過來找使XNPV為零的年率,一年例子是10%。若把同一筆1,100延到730日,10%下的XNPV變成約−90.91,XIRR降至約4.8809%,因為1,000要經過兩年才長成1,100。不能把兩年總增幅10%直接叫作年報酬10%。
為什麼可能多解,甚至沒有解?
現金流若先支出、再收到、又再支出,折現率改變可能讓現值曲線多次穿過零。以恰隔365日的−100、+230、−132為例,10%和20%都能令XNPV為零;不能挑較高的根就宣布投資較好。
所有收支若同號,在有效折現範圍內就無法相互抵銷成零;有正有負也不保證一定存在適合的根。本工具使用有限數值搜尋,無解不會冒充0%,找到的根也不等於已證明找齊全部根。互斥專案仍應在一致的必要報酬下比較XNPV及金額規模。
把滑桿觀察連回資金決策
上方只改變收款的相隔日數,金額仍是1,100;請看時間軸移動、XNPV與XIRR,而不是把結果歸因於多賺了現金。收款越晚,對同一正折現率的現值通常越低,年化增長也被攤在更長時間上。
真實比較還要核對稅費、外幣換算與是否漏掉收支。單一XIRR不會自動安排中途現金的再投資;若要比較期末財富,必須另外寫出再投資與資金限制。所有金額也須來自相同投資範圍,避免把投入當收入。
展開正式定義與公式
r > −100%; Actual/365.
- CFᵢ / dᵢ
- 每筆現金流金額與實際日期。
- d₀ / r
- 首筆日期/有效年折現率,小數;日數固定除 365。
適用範圍與模型限制
日期不早於首筆,採 UTC 日曆日與固定 365 分母(閏年也相同)。可合併同日收支。XIRR 搜尋 log(1+r)∈[−16,16],不保證找到所有根;多次變號須審慎解讀。
常見問題
閏年改用 366 作分母嗎?
不。此處與 Excel 日期折現慣例一致,實際日數固定除 365;閏日會增加分子。
找到一個 XIRR 就能證明唯一嗎?
不能。有限搜尋可能漏掉根;多次變號需特別留意,應搭配指定折現率的 XNPV。
學完這頁,你可以…
- XNPV 將每筆現金流折回第一筆日期;XIRR 是令此現值合計為零的有效年率。
- 日期不早於首筆,採 UTC 日曆日與固定 365 分母(閏年也相同)。可合併同日收支。XIRR 搜尋 log(1+r)∈[−16,16],不保證找到所有根;多次變號須審慎解讀。