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 Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
예 1 – 단일 지불(스크립트)
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
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보다 크므로 프로젝트에 수익성이 있습니다.