# XIRR 스크립트 함수

XIRR()은 group by 절로 정의된 여러 레코드에서 반복되는 pmt 및 date에서 숫자 쌍으로 표현된 현금 흐름 일정(주기적일 필요는 없음)에 대해 집계된 내부 수익률(연간)을 반환합니다. 모든 납입금은 1년 365일을 기준으로 할인됩니다.

Qlik의 XIRR 기능(XIRR() 및 RangeXIRR() 함수)은 다음 등식을 통해 `Rate` 값을 구하여 올바른 XIRR 값을 확인합니다.

`XNPV(Rate, pmt, date) = 0`

이 등식은 Newton 방법의 간소화된 버전을 사용하여 구합니다.

구문:

XIRR(pmt, date )

반환 데이터 유형: 숫자

인수

| 인수 | 설명 |
| --- | --- |
| pmt | 지불. date에 제공된 지불 일정에 해당하는 현금 흐름을 포함하는 표현식 또는 필드. |
| date | pmt에 지정된 현금 흐름 지급에 해당하는 날짜의 일정을 포함하는 표현식 또는 필드입니다. |

이 함수를 사용할 때 다음 제한 사항이 적용됩니다.

* 데이터 쌍의 한쪽 또는 양쪽에 텍스트 값, NULL 값 및 누락된 값이 있으면 전체 데이터 쌍이 무시됩니다.

* 이 함수는 하나 이상의 유효한 음성 지불과 하나 이상의 유효한 양성 지불(해당 유효 날짜 포함)이 필요합니다. 이러한 결제가 제공되지 않으면 NULL 값이 반환됩니다.

다음 항목은 이 함수를 사용하는 데 도움이 될 수 있습니다.

* [XNPV 스크립트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm): 이 함수를 사용하여 현금 흐름 일정에 대해 집계된 순 현재 가치를 계산합니다.

* [RangeXIRR 스크립트 및 차트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm): RangeXIRR()은 XIRR() 함수와 동등한 범위 함수입니다.

정보 메모

Qlik Sense 클라이언트 관리의 다양한 버전 간에는 이 함수에서 사용하는 기본 알고리즘에 변형이 있습니다. 알고리즘의 최근 업데이트에 대한 자세한 내용은 지원 문서 XIRR 함수 수정 및 업데이트를 참조하십시오.[](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)

## 예제

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XIRR.htm)

#### 로드 스크립트 및 결과

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* 일련의 현금 흐름에 대한 트랜잭션 데이터입니다.

* XIRR() 함수를 사용하여 이러한 현금 흐름에 대한 내부 연간 수익률을 계산합니다.

로드 스크립트

```
Cashflow:
LOAD 2013 as Year, * inline [
Date|Payments
2013-01-01|-10000
2013-03-01|3000
2013-10-30|4200
2014-02-01|6800
] (delimiter is '|');
 
Cashflow1:
LOAD Year,XIRR(Payments, Date) as XIRR2013  Resident Cashflow Group By Year;
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `Year`

* `XIRR2013`

결과 테이블

| 년 | XIRR2013 |
| --- | --- |
| 2013 | 0.5385 |

## XIRR 반환 값 해석

XIRR 기능은 일반적으로 투자를 분석하는 데 사용되며, 처음에는 나가는(음성) 지불이 발생하고 나중에 일련의 작은 소득(양성) 지불이 발생합니다. 다음은 하나의 음성 지불과 하나의 양성 지불만 있는 간단한 예입니다.

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|-100` `2024-01-01|110` `] (delimiter is '|');` ` `

초기에 100을 지불하고 정확히 1년 후에 110을 가져옵니다. 이는 연 10%의 수익률을 의미합니다. `XIRR(Payments, Date)`는 0.1 값을 반환합니다.

XIRR 기능의 반환 값은 양수 또는 음수일 수 있습니다. 투자의 경우, 음수 결과는 투자가 손실임을 나타냅니다. 손익 금액은 지불 필드에서 합계를 집계하여 간단하게 계산할 수 있습니다.

위의 예에서 우리는 1년 동안 돈을 빌려주고 있습니다. 수익률은 이자라고 생각할 수 있습니다. 트랜잭션의 반대편에 있을 때 XIRR의 기능을 사용하는 것도 가능합니다(예를 들어, 대출 기관이 아닌 차용인인 경우).

다음 예를 생각해봅니다.

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|100` `2024-01-01|-110` `] (delimiter is '|');` ` `

이는 첫 번째 예와 동일하지만 반대의 경우입니다. 여기서 우리는 1년 동안 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`를 다시 0으로 다시 설정하고 음성 방향에서 솔루션 검색을 시작합니다.

"정상적인" 현금 흐름 스트림에는 단 하나의 솔루션만 있음이 보장됩니다. "정상적인" 현금 흐름 스트림은 동일한 부호(양수 또는 음수)를 가진 모든 지불이 연속적인 그룹에 있음을 의미합니다.

## 자세한 정보

* [XNPV 스크립트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm)
* [RangeXIRR 스크립트 및 차트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm)
* [XIRR 함수 수정 및 업데이트](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)