NPV() 스크립트 함수는 기간별로 정렬된 여러 값과 할인율을 사용합니다. 유입(수입)은 양수이고 유출(미래 지불)은 이러한 계산에서 음수 값으로 가정됩니다. 이는 각 기간이 끝날 때 발생합니다.
순 현재 가치(NPV)는 미래 현금 흐름 스트림의 현재 총 가치를 계산하는 데 사용됩니다. NPV를 계산하려면 각 기간의 미래 현금 흐름을 추정하고 정확한 할인율을 확인해야 합니다. NPV() 스크립트 함수는 할인율과 기간별로 정렬된 여러 값을 사용합니다. 유입(수입)은 양수이고 유출(미래 지불)은 이러한 계산에서 음수 값으로 가정됩니다. 이는 각 기간이 끝날 때 발생합니다.
구문:
NPV(discount_rate, value)
반환 데이터 유형: 숫자 기본적으로 결과는 통화로 서식이 지정됩니다.
순 현재 가치를 계산하는 공식은 다음과 같습니다.
설명:
Rt= 단일 기간 t 동안의 순 현금 유입-유출
i = 대체 투자로 얻을 수 있는 할인율 또는 수익
t = 타이머 기간 수
인수
인수
설명
discount_rate
discount_rate는 적용된 할인율입니다.
값이 0.1이면 10% 할인율을 나타냅니다.
value
이 필드는 기간별로 정렬된 여러 기간에 대한 값을 보유합니다. 첫 번째 값은 기간 1이 끝날 때의 현금 흐름으로 가정하는 식입니다.
제한 사항:
NPV() 함수에는 다음과 같은 제한 사항이 있습니다.
텍스트 값, NULL 값, 누락된 값은 무시됩니다.
현금 흐름 값은 기간 오름차순이어야 합니다.
사용 시기
NPV()는 프로젝트 수익성을 확인하고 기타 측정값을 도출하는 데 사용되는 재무 함수입니다. 이 함수는 현금 흐름을 원시 데이터로 사용할 수 있는 경우에 유용합니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다. 자세한 내용은 앱 및 스크립트에 대한 지역 설정 수정를 참조하십시오.
앱의 기본 지역 설정은 사용자 프로필을 기반으로 합니다. 이러한 국가별 형식 설정은 Qlik Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
CashFlow라는 테이블에 로드되는 한 프로젝트의 데이터 집합 및 한 기간 동안의 해당 현금 흐름.
NPV라는 테이블에서 프로젝트의 NPV 필드를 계산하는 데 사용되는 CashFlow 테이블의 Resident LOAD.
NPV 계산에 사용되는 하드 코딩된 할인율 10%.
프로젝트에 대한 모든 지불을 그룹화하는 데 사용되는 Group By 문.
로드 스크립트
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values
1,1,1000
];
NPV:
Load
PrjId,
NPV(0.1,Values) as NPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
NPV
결과 테이블
PrjId
NPV
1
$909.09
한 기간이 끝날 때 기간당 10%의 할인율로 $1000의 단일 지불을 받을 경우 NPV는 $1000를 (1 + 할인율)로 나눈 값과 같습니다. 유효 NPV는 $909.09입니다.
예 2 – 여러 지불(스크립트)
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
CashFlow라는 테이블에 로드되는 한 프로젝트의 데이터 집합 및 여러 기간 동안의 해당 현금 흐름.
NPV라는 테이블에서 프로젝트의 NPV 필드를 계산하는 데 사용되는 CashFlow 테이블의 Resident LOAD.
NPV 계산에 사용되는 하드 코딩된 할인율 10%(0.1).
프로젝트에 대한 모든 지불을 그룹화하는 데 사용되는 Group By 문.
로드 스크립트
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values
1,1,1000
1,2,1000
];
NPV:
Load
PrjId,
NPV(0.1,Values) as NPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
NPV
결과 테이블
PrjId
NPV
1
$1735.54
기간당 10%의 할인율로 두 기간의 끝에 받을 $1000 지불의 경우 유효 NPV는 $1735.54입니다.
예 3 – 여러 지불(스크립트)
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Project라는 테이블에 로드되는 두 프로젝트의 할인율.
프로젝트 ID 및 기간 ID별로 각 프로젝트에 대한 여러 기간에 대한 현금 흐름. 이 기간 ID는 데이터가 정렬되지 않은 경우 레코드를 정렬하는 데 사용할 수 있습니다.
임시 테이블 tmpNPV를 만드는 NoConcatenate, Resident LOAD 및 Left Join 함수 조합. 이 테이블은 Project 및 CashFlow 테이블의 레코드를 하나의 플랫 테이블로 결합합니다. 이 테이블에는 각 기간에 대해 반복되는 할인율이 있습니다.
NPV라는 테이블의 각 프로젝트에 대한 NPV 필드를 계산하는 데 사용되는 tmpNPV 테이블의 Resident LOAD.
각 프로젝트와 연결된 단일 값 할인율입니다. 이는 only() 함수를 사용하여 검색되며 각 프로젝트의 NPV 계산에 사용됩니다.
프로젝트 ID별로 각 프로젝트에 대한 모든 지불을 그룹화하는 데 사용되는 Group By 문.
합성 데이터나 중복 데이터가 데이터 모델에 로드되는 것을 방지하기 위해 tmpNPV 테이블은 스크립트 끝에서 삭제됩니다.
로드 스크립트
Project:
Load * inline [
PrjId,Discount_Rate
1,0.1
2,0.15
];
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values
1,1,1000
1,2,1000
1,3,1000
2,1,500
2,2,500
2,3,1000
2,4,1000
];
tmpNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
NPV:
Load
PrjId,
NPV(Only(Discount_Rate),Values) as NPV //Discount Rate will be 10% for Project 1 and 15% for Project 2
Resident tmpNPV
Group By PrjId;
Drop table tmpNPV;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
NPV
결과 테이블
PrjId
NPV
1
$2486.85
2
$2042.12
프로젝트 ID 1은 기간당 10%의 할인율로 세 기간이 끝날 때 $1000를 지불할 것으로 예상합니다. 따라서 유효 NPV는 $2486.85입니다.
프로젝트 ID 2는 15%의 할인율로 네 기간에 걸쳐 $500의 두 번 지불과 $1000의 추가 두 번 지불을 예상합니다. 따라서 유효 NPV는 $2042.12입니다.
예 4 – 프로젝트 수익성 예(스크립트)
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Project라는 테이블에 로드된 두 프로젝트에 대한 할인율 및 초기 투자(기간 0).
프로젝트 ID 및 기간 ID별로 각 프로젝트에 대한 여러 기간에 대한 현금 흐름. 이 기간 ID는 데이터가 정렬되지 않은 경우 레코드를 정렬하는 데 사용할 수 있습니다.
임시 테이블 tmpNPV를 만드는 NoConcatenate, Resident LOAD 및 Left Join 함수 조합. 이 테이블은 Project 및 CashFlow 테이블의 레코드를 하나의 플랫 테이블로 결합합니다. 이 테이블에는 각 기간에 대해 반복되는 할인율이 있습니다.
only() 함수를 사용하여 검색하고 각 프로젝트에 대한 NPV 계산에 사용되는 각 프로젝트와 연결된 단일 값 할인율.
NPV라는 테이블의 각 프로젝트에 대한 NPV 필드를 계산하는 데 사용되는 tmpNPV 테이블의 Resident LOAD.
프로젝트 수익성 지수를 계산하기 위해 NPV를 각 프로젝트의 초기 투자로 나누는 추가 필드 만들기.
프로젝트 ID별로 그룹화하는 group by 문. 각 프로젝트에 대한 모든 지불을 그룹화하는 데 사용됩니다.
합성 데이터나 중복 데이터가 데이터 모델에 로드되는 것을 방지하기 위해 tmpNPV 테이블은 스크립트 끝에서 삭제됩니다.
로드 스크립트
Project:
Load * inline [
PrjId,Discount_Rate, Initial_Investment
1,0.1,100000
2,0.15,100000
];
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values,
1,1,35000
1,2,35000
1,3,35000
2,1,30000
2,2,40000
2,3,50000
2,4,60000
];
tmpNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
NPV:
Load
PrjId,
NPV(Only(Discount_Rate),Values) as NPV, //Discount Rate will be 10% for Project 1 and 15% for Project 2
NPV(Only(Discount_Rate),Values)/ Only(Initial_Investment) as Profitability_Index
Resident tmpNPV
Group By PrjId;
Drop table tmpNPV;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
PrjId
NPV
다음 측정값을 만듭니다.
=only(Profitability_Index)
결과 테이블
PrjId
NPV
=only(Profitability_Index)
1
$87039.82
0.87
2
$123513.71
1.24
프로젝트 ID 1의 유효 NPV는 $87039.82이고 초기 투자 금액은 $100000입니다. 따라서 수익성 지수는 0.87입니다. 1보다 작기 때문에 프로젝트에 수익성이 없습니다.
프로젝트 ID 2의 유효 NPV는 $123513.71이고 초기 투자 금액은 $100000입니다. 따라서 수익성 지수는 1.24입니다. 1보다 크므로 프로젝트에 수익성이 있습니다.