DAX ile Ayın İlk Gününe Ait Döviz Kurlarını Hesaplama

Uzman çözümler

DAX ile Ayın İlk Gününe Ait Döviz Kurlarını Hesaplama

2025 Pover Pivot 0

Power BI veya Excel Power Pivot gibi araçlarda DAX (Data Analysis Expressions) kullanarak veri analizi yaparken, belirli tarih aralıklarına göre hesaplamalar yapmak oldukça yaygındır. Bu yazıda, ayın ilk gününe ait döviz kurlarını hesaplamak için kullanılan bir DAX formülünü inceleyeceğiz. Formül, 2019-2024 yıllarına ait günlük döviz kurlarını içeren bir veri kümesinde çalışmaktadır.

Formülün Amacı

Bu formül, her yılın ve her ayın ilk gününde geçerli olan döviz alış kurunu bulmayı amaçlamaktadır. Örneğin, Ocak 2023 için bu formül, 1 Ocak 2023 tarihindeki döviz alış kurunu döndürecektir.

Formülün Tamamı

Aşağıda formülün tam hali yer alıyor:

Ayın İlk Günü :=
VAR IlkTarih =
CALCULATE(
MIN(DovizKuruTablosu[Tarih]),
ALLEXCEPT(DovizKuruTablosu, DovizKuruTablosu[Yıl], DovizKuruTablosu[Ay], DovizKuruTablosu[Döviz Cinsi])
)
RETURN
CALCULATE(
FIRSTNONBLANK(DovizKuruTablosu[Döviz Alış], 1),
DovizKuruTablosu[Tarih] = IlkTarih
)

Bu formül, iki ana bölümden oluşmaktadır: “IlkTarih” değişkeni ve RETURN ifadesi. Şimdi bu parçaları adım adım analiz edelim.

1. IlkTarih Değişkeni

VAR IlkTarih = 
CALCULATE(
MIN(DovizKuruTablosu[Tarih]),
ALLEXCEPT(DovizKuruTablosu, DovizKuruTablosu[Yıl], DovizKuruTablosu[Ay], DovizKuruTablosu[Döviz Cinsi])
)

Bu kısım, her yıl, ay ve döviz cinsi için o ayın ilk tarihini bulur. Bunu şu şekilde başarır:

  1. MIN(DovizKuruTablosu[Tarih]):
    Tarih sütunundaki en küçük (yani en erken) tarihi bulur. Bu, ayın ilk günü olacaktır.
  2. ALLEXCEPT:
    ALLEXCEPT fonksiyonu, yalnızca belirtilen sütunlar (Yıl, Ay ve Döviz Cinsi) bazında bir filtreleme yapar ve diğer tüm filtreleri kaldırır.
    Bu sayede, her yıl, her ay ve her döviz cinsi için ayrı ayrı hesaplama yapılır.

Sonuç:

IlkTarih değişkeni, her yıl, her ay ve her döviz cinsi için o ayın ilk gününü temsil eder.

2. RETURN İfadesi

RETURN 
CALCULATE(
FIRSTNONBLANK(DovizKuruTablosu[Döviz Alış], 1),
DovizKuruTablosu[Tarih] = IlkTarih
)

Bu kısım, IlkTarih değişkeni ile belirlenen tarihteki döviz alış kurunu bulur. Şimdi bunu adım adım inceleyelim:

  1. FIRSTNONBLANK(DovizKuruTablosu[Döviz Alış], 1):
    Döviz Alış sütunundaki ilk geçerli (boş olmayan) değeri döndürür. Bu, genellikle MIN veya MAX yerine kullanılır çünkü boş değerler olduğunda hata almayı engeller.
  2. DovizKuruTablosu[Tarih] = IlkTarih:
    Bu filtre, yalnızca Tarih sütunundaki değer IlkTarih değişkenine eşit olduğunda çalışır. Yani, yalnızca ayın ilk gününe odaklanılır.

Sonuç:

Bu ifade, ayın ilk günündeki döviz alış kurunu döndürür.

Formülün Genel Çalışma Mantığı

Formül şu şekilde çalışır:

  1. Her yıl, ay ve döviz cinsi için ayın ilk günü (IlkTarih) hesaplanır.
  2. Daha sonra, bu tarihe ait döviz alış kuru bulunur ve sonuç olarak döndürülür.

Örnek Veri Üzerinde Çalışma

Aşağıda örnek bir veri tablosu verilmiştir:

TarihYılAyDöviz CinsiDöviz Alış
01.01.202320231USD18.70
02.01.202320231USD18.72
01.02.202320232USD18.80
01.01.202320231EUR19.90
02.01.202320231EUR19.95

Formülün çalışması sonucunda şu değerler elde edilir:

  • Ocak 2023 (USD): 18.70
  • Şubat 2023 (USD): 18.80
  • Ocak 2023 (EUR): 19.90

Formülün Avantajları

  1. Dinamik Hesaplama:
    Formül, veri kümenizdeki filtrelere (örneğin, belirli bir yıl veya döviz cinsi) otomatik olarak uyum sağlar.
  2. Esneklik:
    ALLEXCEPT kullanımı sayesinde, yalnızca istediğiniz sütunlara göre hesaplama yapabilirsiniz.
  3. Boş Değerlerle Uyum:
    FIRSTNONBLANK fonksiyonu, boş değerlerin olduğu durumlarda hata riskini azaltır.

Alternatif Kullanımlar

Bu formülü, yalnızca döviz kurları için değil, başka tür verilerde de kullanabilirsiniz. Örneğin:

  • Her ayın ilk günündeki satış miktarını hesaplama
  • Her ayın ilk günündeki stok seviyesini bulma

Sonuç

Bu DAX formülü, zaman bazlı analizlerde oldukça güçlü bir araçtır. Özellikle döviz kurları gibi günlük verilere sahip veri setlerinde, ayın ilk gününe ait değerleri hesaplamak için etkili bir yöntem sunar. Formülün mantığını anlamak, benzer hesaplamaları farklı veri kümelerine uyarlamanızı kolaylaştıracaktır.