共用方式為


IRR 函式

更新:2007 年 11 月

傳回 Double,指定一連串定期現金流轉 (付款與收款) 的內部報酬率。

Function IRR( _
    ByRef ValueArray() As Double, _
   Optional ByVal Guess As Double = 0.1 _
) As Double

參數

  • ValueArray
    必要項。指定現金流轉值的 Double 具型別陣列。這個陣列至少必須含有一項負值 (付款) 和一項正值 (收款)。

  • Guess
    選擇項。指定將由 IRR 傳回估計值的物件。如果省略,Guess 為 0.1 (即 10%)。

例外狀況

例外狀況類型

錯誤代碼

條件

ArgumentException

5

陣列引數值無效或 Guess <= -1。

如果將使用非結構化錯誤處理的 Visual Basic 6.0 應用程式升級,請參閱「錯誤代碼」資料行 (您可以將錯誤代碼與 Number 屬性 (Err 物件) 比對)。但是,請盡可能考慮以 Visual Basic 的結構化例外處理概觀 取代這類錯誤控制項。

備註

內部報酬率是指定期發生之付款與收款所組成的投資收入利率。

IRR 函式會使用陣列中值的順序,來轉譯付款與收款的順序。請確實依正確順序輸入付款與收款值。每一期的現金流量不需要固定,因為這是用於年金。

IRR 是以反覆運算法進行計算。以 Guess 值為起始,IRR 會不斷循環計算,直到結果的精確度在 0.00001% 以內為止。如果 IRR 在嚐試 20 次的計算後仍沒有結果,便宣告失敗。

範例

在這個範例中,IRR 函式會針對 Values() 陣列內所含的一系列的五筆現金流量傳回實質報酬率。第一個陣列元素是代表企業啟始營運成本的負現金流轉。剩餘的 4 次現金流轉則代表後面 4 年的正現金流轉。Guess 是預估的內部報酬率。

' Define money format.
Dim MoneyFmt As String = "###,##0.00"
' Define percentage format.
Dim PercentFmt As String = "#0.00"

Dim values(4) As Double
' Business start-up costs.
values(0) = -70000
' Positive cash flows reflecting income for four successive years.
values(1) = 22000
values(2) = 25000
values(3) = 28000
values(4) = 31000

' Use the IRR function to calculate the rate of return.
' Guess starts at 10 percent.
Dim Guess As Double = 0.1
' Calculate internal rate.
Dim CalcRetRate As Double = IRR(values, Guess) * 100
' Display internal return rate.
MsgBox("The internal rate of return for these cash flows is " & _
    Format(CalcRetRate, CStr(PercentFmt)) & " percent.")

需求

命名空間 (Namespace)︰Microsoft.VisualBasic

模組:Financial

組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

請參閱

參考

NPV 函式

MIRR 函式

財務摘要

ArgumentException