跳到主要內容 跳至補充內容

XIRR - 指令碼函數

XIRR() 會針對由 group by 子句所定義之若干記錄上反覆運算的配對數字 pmtdate 所代表的現金流量排程 (不一定是定期),傳回彙總的內部報酬率 (每年)。 所有支出均按照 1 年 365 天攤算。

Qlik 的 XIRR 功能 (XIRR()RangeXIRR() 函數) 使用解開 Rate 值的下列方程式,以判定正確的 XIRR 值:

XNPV(Rate, pmt, date) = 0

會使用 Newton 方法的簡化版本解開方程式。

語法:  

XIRR(pmt, date )

傳回的資料類型: 數值

引數
引數 描述
pmt

付款。包含對應於 date 中提供之付款排程的現金流量的運算式或欄位。

date 包含對應於 pmt 中提供之現金流量付款的日期排程的運算式或欄位。

使用此函數時,適用下列限制:

  • 若資料配對中有任一資料是 (或兩個都是) 文字值、NULL 值及遺漏值,會導致整個資料配對被忽略。

  • 此函數需要至少一個有效負值和至少一個有效正值付款 (連同對應的有效日期)。若未提供這些付款,會傳回 NULL 值。

這些主題可能可協助您使用此函數:

資訊備註

Qlik Sense 用戶端管理 的不同版本,此函數使用的基礎演算法有變化。如需關於演算法最近更新的資訊,請參閱支援文章 XIRR 函數修正和更新

範例

解譯 XIRR 傳回值

XIRR 功能通常用來分析投資,這在開始時有支出 (負) 款項,隨後則有一系列金額較小的收入 (正) 款項。以下是簡化範例,只有一個負值和一個正值款項:

Cashflow:

LOAD * inline [

Date|Payments

2023-01-01|-100

2024-01-01|110

] (delimiter is '|');

 

我們的初始付款是 100,並在一年後取回 110。這代表每年 10% 的報酬率。XIRR(Payments, Date) 傳回值 0.1。

XIRR 功能的傳回值可以是正值或負值。在投資情況下,負值結果表示投資有損失。透過付款欄位進行總和彙總,即可簡單計算獲得或損失的金額。

在上述範例中,我們將自己的金錢借出一年。報酬率可以想成利息。若您是交易的另一方 (例如,若您是借入者而非借出者),也可以使用 XIRR 功能。

考慮此範例:

Cashflow:

LOAD * inline [

Date|Payments

2023-01-01|100

2024-01-01|-110

] (delimiter is '|');

 

這與第一個範例相同,但情況相反。在此,我們借貸了 100 一年,償還時需附帶 10% 利息。在此範例中,XIRR 計算傳回 0.1 (10%),與第一個範例的值相同。

請注意,在第一個範例中,我們收到了利潤 10,而在第二個範例中,我們損失了 10,但 XIRR 功能的傳回值在兩個範例中都是正值。這是因為無論您是交易哪一方,XIRR 功能都會計算交易中的隱藏利息。

多個解決方案下的限制

Qlik 的 XIRR 功能透過下列方程式定義,其中會解出 Rate 值:

XNPV(Rate, pmt, date) = 0

有時候此方程式可以有多個解決方案。這稱為「多 IRR 問題」,由於非正常現金流 (也稱為不尋常的現金流) 所造成。下列載入指令碼顯示此範例:

Cashflow:

LOAD * inline [

Date|Payments

2021-01-01|-200

2022-01-01|500

2023-01-01|-250

] (delimiter is '|');

 

在此範例中,有一個負值解決方案和一個正值解決方案 (Rate = -0.3 和 Rate = 0.8)。XIRR() 將會傳回 0.8。

Qlik 的 XIRR 功能搜尋解決方案時,這從 Rate = 0 開始,並逐步增加比率,直到找到解決方案為止。若有多個正值解決方案,將會傳回第一個出現的內容。若找不到正值解決方案,會將 Rate 重設為零並開始以負向搜尋解決方案。

請注意,「正常」現金流保證只有一個解決方案。「正常」現金流表示具有相同符號 (正或負) 的所有款項都在連續的群組中。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!