XNPV()은 pmt 및 date에서 숫자 쌍으로 표현된 현금 흐름 일정(반드시 주기적일 필요는 없음)에 대해 집계된 순 현재 가치를 반환합니다. 모든 납입금은 1년 365일을 기준으로 할인됩니다.
구문:
XNPV(discount_rate, pmt,
date)
반환 데이터 유형: 숫자
정보 메모기본적으로 결과는 통화로 서식이 지정됩니다.
XNPV를 계산하는 공식은 다음과 같습니다.
설명:
Pi = 단일 기간 i 동안의 순 현금 유입-유출
d1= 첫 번째 지불 날짜
di = i번째 지불 날짜
rate = 할인율
순 현재 가치(NPV)는 할인율이 주어진 미래 현금 흐름 스트림의 현재 총 가치를 계산하는 데 사용됩니다. XNPV를 계산하려면 해당 날짜의 미래 현금 흐름을 추정해야 합니다. 이후 매 결제 시 결제일을 기준으로 복리할인율을 적용합니다.
일련의 지불에 대해 XNPV 집계를 수행하는 것은 해당 지불에 대해 Sum 집계를 수행하는 것과 유사합니다. 차이점은 각 금액이 선택한 할인율(이자율과 유사)과 지불이 얼마나 먼 미래에 있는지에 따라 수정(또는 "할인")된다는 것입니다. discount_rate 매개 변수를 0으로 설정한 상태에서 XNPV를 수행하면 XNPV가 Sum 연산과 동일해집니다(지불액은 합계되기 전에 수정되지 않음). 일반적으로 discount_rate가 0에 가까울수록 XNPV 결과는 Sum 집계의 결과와 유사합니다.
인수
인수
설명
discount_rate
discount_rate는 결제 금액을 할인해야 하는 연간 할인율입니다.
값이 0.1이면 10% 할인율을 나타냅니다.
pmt
지불. date에 제공된 지불 일정에 해당하는 현금 흐름을 포함하는 표현식 또는 필드. 양수 값은 유입으로 가정하고 음수 값은 유출로 가정합니다.
정보 메모XNPV()는 항상 시작 날짜에 발생하므로 초기 현금 흐름을 할인하지 않습니다. 후속 지불은 1년 365일을 기준으로 할인됩니다. 이는 첫 번째 결제도 할인되는 NPV()와 다릅니다.
date
pmt에 지정된 현금 흐름 지급에 해당하는 날짜의 일정을 포함하는 표현식 또는 필드입니다. 첫 번째 값은 미래 현금 흐름에 대한 시간 오프셋을 계산하기 위한 시작 날짜로 사용됩니다.
이 함수를 사용할 때 다음 제한 사항이 적용됩니다.
데이터 쌍의 한쪽 또는 양쪽에 텍스트 값, NULL 값, 누락된 값이 있으면 전체 데이터 쌍이 무시됩니다.
사용 시기
XNPV()는 투자 기회의 순 현재 가치(NPV)를 계산하기 위한 재무 모델링에 사용됩니다.
모든 유형의 재무 모델의 경우 XNPV는 정밀도가 더 높으므로 NPV보다 선호됩니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다. 자세한 내용은 앱 및 스크립트에 대한 지역 설정 수정를 참조하십시오.
앱의 기본 지역 설정은 사용자 프로필을 기반으로 합니다. 이러한 국가별 형식 설정은 Qlik Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
CashFlow라는 테이블에 있는 한 프로젝트의 데이터 집합 및 1년 동안의 현금 흐름. 계산의 초기 날짜는 2022년 7월 1일로 설정되고 순 현금 흐름은 0입니다. 1년 후 $1000의 현금 흐름이 발생합니다.
XNPV라는 테이블에서 프로젝트의 XNPV 필드를 계산하는 데 사용되는 CashFlow 테이블의 Resident LOAD.
XNPV 계산에 사용되는 하드 코딩된 할인율 10%(0.1).
Group By 문은 프로젝트에 대한 모든 지불을 그룹화하는 데 사용됩니다.
로드 스크립트
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2022',0
1,'07/01/2023',1000
];
XNPV:
Load
PrjId,
XNPV(0.1,Values,Dates) as XNPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
XNPV
결과 테이블
PrjId
XNPV
1
$909.09
공식에 따르면 첫 번째 레코드의 XNPV 값은 0이고 두 번째 레코드의 XNPV 값은 $909.09이므로 총 XNPV는 $909.09입니다.
예 2 – 여러 지불(스크립트)
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
CashFlow라는 테이블에 있는 한 프로젝트의 데이터 집합 및 1년 동안의 현금 흐름.
XNPV라는 테이블에서 프로젝트의 XNPV 필드를 계산하는 데 사용되는 CashFlow 테이블의 Resident LOAD.
XNPV 계산에 사용되는 하드 코딩된 할인율 10%(0.1).
Group By 문은 프로젝트에 대한 모든 지불을 그룹화하는 데 사용됩니다.
로드 스크립트
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2022',0
1,'07/01/2024',500
1,'07/01/2023',1000
];
XNPV:
Load
PrjId,
XNPV(0.1,Values,Dates) as XNPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
XNPV
결과 테이블
PrjId
XNPV
1
$1322.21
이 예에서는 첫 해의 끝에 $1000의 지불을 받고 두 번째 해의 끝에 $500의 지불을 받습니다. 기간당 할인율이 10%인 유효 XNPV는 $1322.21입니다.
데이터의 첫 번째 행만 계산의 기준 날짜를 참조해야 합니다. 나머지 행의 경우 날짜 매개 변수가 경과 기간을 계산하는 데 사용되므로 순서는 중요하지 않습니다.
예 3 - 다중 지불 및 불규칙한 현금 흐름(스크립트)
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Project라는 테이블의 두 프로젝트에 대한 할인율.
프로젝트 ID 및 날짜별로 각 프로젝트에 대한 여러 기간의 현금 흐름. Dates 필드는 현금 흐름에 할인율이 적용되는 기간을 계산하는 데 사용됩니다. 첫 번째 레코드(초기 현금 흐름 및 날짜)를 제외하고 레코드의 순서는 중요하지 않으며 변경해도 계산에 영향을 미치지 않습니다.
NoConcatenate, Resident LOAD 및 Left Join 함수를 조합하여 사용하면 Project 및 CashFlow 테이블의 레코드를 하나의 플랫 테이블로 결합한 임시 테이블 tmpNPV가 만들어집니다. 이 테이블에는 각 현금 흐름에 대해 반복되는 할인율이 있습니다.
XNPV라는 테이블의 각 프로젝트에 대한 XNPV 필드를 계산하는 데 사용되는 tmpNPV 테이블의 Resident LOAD.
only() 함수를 사용하여 각 프로젝트에 연결된 단일 값 할인율을 가져와 각 프로젝트에 대한 XNPV 계산에 사용합니다.
프로젝트 ID별로 그룹화하는 Group By 문은 각 프로젝트에 대한 모든 지불 및 해당 날짜를 그룹화하는 데 사용됩니다.
합성 데이터나 중복 데이터가 데이터 모델에 로드되는 것을 방지하기 위해 tmpXNPV 테이블은 스크립트 끝에서 삭제됩니다.
로드 스크립트
Project:
Load * inline [
PrjId,Discount_Rate
1,0.1
2,0.15
];
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2021',0
1,'07/01/2022',1000
1,'07/01/2023',1000
2,'07/01/2020',0
2,'07/01/2023',500
2,'07/01/2024',1000
2,'07/01/2022',500
];
tmpXNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
XNPV:
Load
PrjId,
XNPV(Only(Discount_Rate),Values,Dates) as XNPV //Discount Rate will be 10% for Project 1 and 15% for Project 2
Resident tmpXNPV
Group By PrjId;
Drop table tmpXNPV;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
XNPV
결과 테이블
PrjId
XNPV
1
$1735.54
2
$278.36
프로젝트 ID 1의 초기 현금 흐름은 2021년 7월 1일에 $0입니다. 2년 후 끝에 기간당 10%의 할인율로 $1000의 두 번 지불이 있습니다. 따라서 유효 XNPV는 $1735.54입니다.
프로젝트 ID 2는 2020년 7월 1일에 $1000(따라서 음수 부호)의 초기 유출이 있습니다. 2년 후 $500의 지불이 예상됩니다. 3년 후에는 $500의 추가 지불이 예상됩니다. 마지막으로 2024년 7월 1일에 $1000의 지불이 예상됩니다. 할인율이 15%인 유효 XNPV는 $278.36입니다.