# NPV Komut dosyası fonksiyonu

NPV() komut dosyası fonksiyonu, bir indirim oranı ve döneme göre sıralanmış birden çok değer alır. Bu hesaplamalar için gelen akışların (gelirler) pozitif, giden akışların (gelecekteki ödemeler) negatif değerler olduğu varsayılır. Bunlar her dönemin sonunda gerçekleşir.

Net Bugünkü Değer veya NPV, gelecekteki nakit akışlarının geçerli toplam değerini hesaplamak için kullanılır. NPV'yi hesaplamak için her dönemin gelecek nakit akışlarını tahmin etmemiz ve doğru indirim oranını belirlememiz gerekir. NPV() komut dosyası fonksiyonu, bir indirim oranı ve döneme göre sıralanmış birden çok değer alır. Bu hesaplamalar için gelen akışların (gelirler) pozitif, giden akışların (gelecekteki ödemeler) negatif değerler olduğu varsayılır. Bunlar her dönemin sonunda gerçekleşir.

Söz Dizimi:

NPV(discount\_rate, value)

Dönüş verileri türü: sayısal. Varsayılan olarak sonuç para birimi olarak biçimlendirilir.

Net bugünkü değeri hesaplama formülü şöyledir:

![NPV'yi hesaplama formülü.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-npv-formula.png)

burada:

* `R``t`= Tek bir dönem boyunca gelen ve giden net nakit akışları `t`

* `i` = Alternatif yatırımlarla kazanılabilecek indirim oranı veya gelir

* `t` = Dönemlerin sayısı

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| discount\_rate | discount\_rate, uygulanan indirim oranının yüzdesidir.<br><br>0,1 değeri %10 indirim oranını gösterir. |
| value | Bu alan döneme göre sıralanmış şekilde birden fazla alanın değerlerini barındırır. İlk değerin 1. dönemin sonundaki nakit akışı olacağı varsayılır ve bu şekilde devam eder. |

Sınırlamalar:

`NPV()` fonksiyonunun şu sınırlamaları vardır:

* Metin değerleri, NULL değerler ve eksik değerler göz ardı edilir.

* Nakit akışı değerleri döneme göre artan düzende olmalıdır.

## NPV ne zaman kullanılmalı?

`NPV()`, projenin kârlılığını denetlemek ve başka ölçümler türetmek için kullanılan finansal bir fonksiyondur. Bu fonksiyon, ham veri olarak nakit akışları bulunduğunda yararlıdır.

## Bölgesel ayarlar

Aksi belirtilmedikçe bu konudaki örneklerde aşağıdaki tarih formatı kullanılır: MM/DD/YYYY. Tarih formatı, veri yükleme kodunuzda `SET DateFormat` deyiminde belirtilir. Varsayılan tarih formatı, bölgesel ayarlarınız ve diğer unsurlar nedeniyle sisteminizde farklı olabilir. Aşağıdaki örneklerdeki formatları ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz. Dilerseniz yükleme kodunuzdaki formatları aşağıdaki örneklere uyacak şekilde değiştirebilirsiniz. Daha fazla bilgi için bkz. [Uygulamalar ve komut dosyaları için bölgesel ayarları değiştirme](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Uygulamalardaki varsayılan bölgesel ayarlarda kullanıcı profili temel alınır. Bu bölgesel format ayarları, Qlik Cloud kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Cloud, kullandığınız tarayıcıyla aynı dilde görüntülenir.

Bir uygulama oluşturucuysanız, oluşturduğunuz uygulamalar için varsayılan bölgeyi ayarlayabilirsiniz. Daha fazla bilgi için şuraya bakın: [Qlik Cloud Analizleri içinde uygulama ve komut dosyası oluşturmak için tercih ettiğiniz bölgesel ayarları belirleme](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Örnek 1 – Tek ödeme (komut dosyası)

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

#### Yükleme kodu ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* Bir projenin ve bu projedeki bir döneme ilişkin nakit akışının `CashFlow` adlı tabloya yüklenen veri kümesi.

* `NPV` adlı tabloda yer alan projenin NPV alanını hesaplamak için kullanılan, `CashFlow` tablosundan yerleşik yükleme.

* NPV hesaplamasında kullanılan, sabit kodlanmış %10 indirim oranı.

* Projenin tüm ödemelerini gruplamak için kullanılan `Group By` deyimi.

Komut dosyası

```
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;
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `PrjId`

* `NPV`

Sonuçlar tablosu

| Proje Kimliği | NPV |
| --- | --- |
| 1 | $909.09 |

Dönem başına %10 indirim oranıyla dönemin sonunda alınacak $1000 tutarında tek bir ödeme için, NPV $1000 bölü (1 + indirim oranı) değerine eşittir. Efektif NPV $909,09'a eşittir

## Örnek 2 – Birden çok ödeme (komut dosyası)

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

#### Yükleme kodu ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* Bir projenin ve bu projedeki birden fazla döneme ilişkin nakit akışının `CashFlow` adlı tabloya yüklenen veri kümesi.

* `NPV` adlı tabloda yer alan projenin NPV alanını hesaplamak için kullanılan, `CashFlow` tablosundan yerleşik yükleme.

* NPV hesaplamasında sabit kodlanmış %10 indirim oranı kullanılır.

* Projenin tüm ödemelerini gruplamak için kullanılan `Group By` deyimi.

Komut dosyası

```
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;
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `PrjId`

* `NPV`

Sonuçlar tablosu

| Proje Kimliği | NPV |
| --- | --- |
| 1 | $1735.54 |

Dönem başına %10 indirim oranıyla iki dönemin sonunda alınacak $1000 tutarındaki ödemeler için, efektif NPV $1735,54'e eşittir.

## Örnek 3 – Birden çok ödeme (komut dosyası)

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

#### Yükleme kodu ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* İki projenin `Project` adlı tabloya yüklenen indirim oranları.

* Proje kimliğine ve dönem kimliğine göre her projenin birden çok döneminin nakit akışları. Bu dönem kimliği, verilerin sıralanmamış olması durumunda kayıtları sıralamak için kullanılabilir.

* Geçici `tmpNPV` tablosunu oluşturmak için `NoConcatenate`, Yerleşik yüklemeler ve `Left Join` fonksiyonunun birleşimi. Tablo, `Project` ile `CashFlow` tablolarının kayıtlarını tek bir düz tabloda birleştirir. Bu tabloda indirim oranları her dönem için tekrarlanacaktır.

* `tmpNPV tablosundan gelen ve NPV` adlı tabloda her projenin NPV alanını hesaplamak için kullanılan yerleşik yükleme.

* Her projeyle ilişkilendirilmiş tek bir indirim oranı değeri. Bu değer `only()` fonksiyonu kullanılarak alınır ve her proje için NPV hesaplamasında kullanılır.

* Proje kimliğine göre her projenin tüm ödemelerini gruplamak için kullanılan `Group By` deyimi.

Veri modeline yapay veya fazlalık verilerin yüklenmesini önlemek için, komut dosyasının sonunda `tmpNPV` tablosu bırakılır.

Komut dosyası

```
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;
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `PrjId`

* `NPV`

Sonuçlar tablosu

| Proje Kimliği | NPV |
| --- | --- |
| 1 | $2486.85 |
| 2 | $2042.12 |

Proje kimliği 1, dönem başına %10 indirim oranıyla üç dönemin sonunda $1000 tutarında ödemeler beklemektedir. Bu nedenle efektif NPV $2486,85'tir.

Proje kimliği 2, %15 indirim oranıyla dört dönem boyunca $500 tutarında iki ödeme ve $1000 tutarında iki ödeme daha beklemektedir. Bu nedenle efektif NPV $2042,12'dir.

## Örnek 4 – Proje kârlılığı örneği (komut dosyası)

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

#### Yükleme kodu ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* İki projenin indirim oranları ve başlangıç yatırımları (dönem 0) Project adlı tabloya yüklenir.

* Proje kimliğine ve dönem kimliğine göre her projenin birden çok döneminin nakit akışları. Bu dönem kimliği, verilerin sıralanmamış olması durumunda kayıtları sıralamak için kullanılabilir.

* Geçici tmpNPV tablosunu oluşturmak için NoConcatenate, Yerleşik yüklemeler ve Left Join fonksiyonunun birleşimi. Tablo, Project ile CashFlow tablolarının kayıtlarını tek bir düz tabloda birleştirir. Bu tabloda indirim oranları her dönem için tekrarlanacaktır.

* only() fonksiyonu kullanılarak alınan ve her projenin NPV hesaplamasında kullanılan, her projeyle ilişkilendirilmiş tek bir indirim oranı değeri.

* NPV adlı tabloda her projenin NPV alanını hesaplamak için, tmpNPV tablosundan gelen bir yerleşik yükleme kullanılır.

* Proje kârlılığı endeksini hesaplamak için NPV'yi her projenin başlangıçtaki yatırımına bölen ek bir alan oluşturulur.

* Her projenin tüm ödemelerini gruplamak için, proje kimliğine göre gruplayan bir group by deyimi kullanılır.

Veri modeline yapay veya fazlalık verilerin yüklenmesini önlemek için, komut dosyasının sonunda tmpNPV tablosu bırakılır.

Komut dosyası

```
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;
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* PrjId

* NPV

Şu hesaplamayı oluşturun:

=only(Profitability\_Index)

Sonuçlar tablosu

| Proje Kimliği | NPV | =only(Profitability\_Index) |
| --- | --- | --- |
| 1 | $87039.82 | 0.87 |
| 2 | $123513.71 | 1.24 |

Proje kimliği 1'in efektif NPV'si $87039,82 ve başlangıç yatırımı $100000'dir. Bu nedenle kârlılık endeksi 0,87'ye eşit olur. Bu değer 1'den küçük olduğundan proje kârlı değildir.

Proje kimliği 2'nin efektif NPV'si $123513,71 ve başlangıç yatırımı $100000'dir. Bu nedenle kârlılık endeksi 1,24'e eşit olur. Bu değer 1'den büyük olduğundan proje kârlıdır.

## Daha fazla bilgi

* [Drop table](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/drop-table.htm)

* [group by](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm#group_by)

* [Join](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

* [Max Komut dosyası fonksiyonu](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/max.htm)

* [NoConcatenate](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)

* [NPV - grafik fonksiyonu](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/npv.htm)

* [Only Komut dosyası fonksiyonu](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/only.htm)

* [Resident LOAD](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm#Resident)