# XNPV - kod fonksiyonu

XNPV(), pmt ve date içindeki eşlenmiş sayılar tarafından temsil edilen (dönemsel olması gerekmeyen) nakit akışlarının planı için toplam net bugünkü değerini döndürür. Tüm ödemelere 365 günlük yıl temel alınarak iskonto uygulanır.

Söz Dizimi:

XNPV(discount\_rate, pmt, date)

Dönüş verileri türü: sayısal

Bilgi notuVarsayılan olarak sonuç para birimi olarak biçimlendirilir.

XNPV'yi hesaplama formülü aşağıda gösterilmiştir:

XNPV toplama formülü

XNPV toplama formülü

XNPV toplama formülü ![XNPV kod fonksiyonu için formülün resmi.](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-xnpv-formula.png)

burada:

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

* `d``1`= ilk ödeme tarihi

* `d``i` = `i`. ödeme tarihi

* `rate` = indirim oranı

Net bugünkü değer veya NPV, bir indirim oranı belirtilerek gelecekteki nakit akışlarının geçerli toplam değerini hesaplamak için kullanılır. XNPV'yi hesaplamak için gelecekteki nakit akışlarını karşılık gelen tarihlerle tahmin etmemiz gerekir. Bundan sonra her ödeme için ödeme tarihine göre bileşik indirim oranı uygularız.

Bir dizi ödeme üzerinden XNPV Sum toplama işlemi gerçekleştirmek, bu ödemeler üzerinde Topla işlemi gerçekleştirmeye benzer. Aradaki fark, her tutarın seçilen indirim oranına (faiz oranına benzer) ve ödemenin ne kadar ileride olduğuna göre değiştirilmesidir (veya "indirim uygulanmasıdır"). XNPV'yi discount\_rate parametresi sıfıra ayarlı olarak gerçekleştirmek, XNPV'yi bir Sum işlemine eşdeğer hâle getirir (ödemeler toplanmadan önce değiştirilmez). Genel olarak, discount\_rate sıfıra ne kadar yakın ayarlanırsa, XNPV sonucu bir Sum toplama işlemine o kadar benzer.

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| discount\_rate | discount\_rate, ödemelere indirim uygulanması gereken yıllık orandır.<br><br>0,1 değeri %10 indirim oranını gösterir. |
| pmt | Ödemeler. date içinde verilen ödeme planına karşılık gelen nakit akışlarını içeren ifade veya alan. Pozitif değerler gelen akışlar ve negatif değerler giden akışlar olarak kabul edilir.<br><br>Bilgi notuXNPV(), her zaman başlangıç tarihinde meydana geleceğinden dolayı başlangıçtaki nakit akışına indirim uygulamaz. İzleyen ödemelere 365 günlük yıl temel alınarak indirim uygulanır. Bu, ilk ödemeye de indirim uygulanan NPV() fonksiyonundan farklıdır. |
| date | pmt içinde verilen nakit akışı ödemelerine karşılık gelen tarih planını içeren ifade veya alan. İlk değer, gelecekteki nakit akışları için farkların hesaplanmasında başlangıç tarihi olarak kullanılır. |

Bu fonksiyonla çalışırken aşağıdaki sınırlamalar uygulanır:

* Bir veri çiftinin herhangi bir veya her iki parçasındaki metin değerleri, NULL değerler ve eksik değerler, veri çiftinin tamamının göz ardı edilmesine neden olur.

## Ne zaman kullanılır?

* `XNPV()`, finansal modellemede bir yatırım fırsatının net bugünkü değerini (NPV) hesaplamak için kullanılır.

* Tüm finansal model türlerinde, NPV yerine kesinliği daha yüksek olan XNPV tercih edilir.

## Bölgesel ayarlar

Aksi belirtilmedikçe bu konudaki örneklerde aşağıdaki tarih formatı kullanılır: AA/GG/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.

Uygulamalardaki bölgesel ayarlarda Qlik Sense'in yüklü olduğu bilgisayarın veya sunucunun bölgesel sistem ayarları temel alınır. Eriştiğiniz Qlik Sense sunucusu İsveç olarak ayarlıysa, Veri yükleme düzenleyicisi tarihler, saat ve para birimi için İsveç bölgesel ayarlarını kullanır. Bu bölgesel format ayarları, Qlik Sense kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Sense, kullandığınız tarayıcıyla aynı dilde görüntülenir.

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

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

#### Komut dosyası 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 projeye ait bir yıllık nakit akışının `CashFlow` adlı tablodaki veri kümesi. Net nakit akışı 0 olan hesaplamanın başlangıç tarihi 1 Temmuz 2022 olarak ayarlanmıştır. Bir yıl sonra $1000 tutarında bir nakit akışı gerçekleşir.

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

* XNPV hesaplamasında sabit kodlanmış %10 indirim oranı (0,1) kullanılır.

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

Komut dosyası

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

Sonuçlar

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

* `PrjId`

* `XNPV`

Sonuçlar tablosu

| PrjId | XNPV |
| --- | --- |
| 1 | $909.09 |

Formüle göre ilk kaydın XNPV değeri 0, ikinci kaydın XNPV değeri de $909,09'dur. Dolayısıyla toplam XNPV $909,09 olur.

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

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

#### Komut dosyası 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 projeye ait bir yıllık nakit akışının `CashFlow` adlı tablodaki veri kümesi.

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

* XNPV hesaplamasında sabit kodlanmış %10 indirim oranı (0,1) kullanılır.

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

Komut dosyası

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

Sonuçlar

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

* `PrjId`

* `XNPV`

Sonuçlar tablosu

| PrjId | XNPV |
| --- | --- |
| 1 | $1322.21 |

Bu örnekte, ilk yılın sonunda $1000 ve ikinci yılın sonunda $500 tutarında ödeme alınmıştır. Dönem başına %10 indirim oranıyla, efektif XNPV $1322,21'e eşittir.

Hesaplamalar için yalnızca ilk satırdaki verilerin taban tarihine başvuracağını unutmayın. Geçen dönemi hesaplamak için tarih parametresi kullanılacağından, kalan satırlarda sıralama önemli değildir.

## Örnek 3 – Birden çok ödeme ve düzensiz nakit akışları (komut dosyası)

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

#### Komut dosyası 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ı tabloda yer alan indirim oranları.

* Proje kimliğine ve Tarihlere göre her projenin birden fazla dönemi için nakit akışları. Nakit akışına hangi süreyle indirim oranı uygulandığını hesaplamak için `Dates` alanı kullanılır. İlk kaydın dışında (başlangıçtaki nakit akışı ve tarih) kayıtların sırası önemli değildir ve bu sıralamanın değiştirilmesi hesaplamaları etkilememelidir.

* `NoConcatenate`, Yerleşik yüklemeler ve `Left Join` fonksiyonunun bir birleşimi kullanılarak, `Project` ve `CashFlow` tablolarının kayıtlarını tek bir düz tabloda birleştiren geçici bir `tmpNPV` tablosu oluşturulur. Bu tabloda indirim oranları her nakit akışı için tekrarlanacaktır.

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

* Her projeyle ilişkilendirilmiş tek indirim oranı değeri, `only()` fonksiyonu kullanılarak getirilir ve her projenin `XNPV` hesaplamasında kullanılır.

* Proje kimliğine göre gruplayan bir `Group By` deyimi, her projenin tüm ödemelerini ve ilgili tarihlerini gruplamak için kullanılır.

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

Komut dosyası

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

Sonuçlar

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

* `PrjId`

* `XNPV`

Sonuçlar tablosu

| PrjId | XNPV |
| --- | --- |
| 1 | $1735.54 |
| 2 | $278.36 |

Proje kimliği 1'in 1 Temmuz 2021'de başlangıçtaki nakit akışı $0'dır. Dönem başına %10 indirim oranıyla, birbirini izleyen iki yılın sonunda alınacak $1000 tutarında iki ödeme vardır. Bu nedenle efektif XNPV $1735,54'e eşittir.

Proje kimliği 2'nin 1 Temmuz 2020'de başlangıçtaki giden akışı $1000'dir (bu durumda negatif işaretli). İki yıl sonra $500 tutarında bir ödeme beklenmektedir. Üç yıl sonra $500 tutarında bir ödeme daha beklenmektedir. Son olarak, 1 Temmuz 2024'te $1000 tutarında bir ödeme beklenmektedir. %15 indirim oranıyla efektif XNPV $278,36'ya eşittir.

## Daha fazla bilgi

* [Drop table](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/drop-table.htm)
* [group by](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm#group_by)
* [Join](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)
* [Max - kod fonksiyonu](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/max.htm)
* [NoConcatenate](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)
* [NPV - grafik fonksiyonu](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/npv.htm)
* [Only - kod fonksiyonu](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/only.htm)
* [Resident LOAD](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm#Resident)