DAX ile Ayın İlk Gününe Ait Döviz Kurlarını Hesaplama
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:
MIN(DovizKuruTablosu[Tarih]):Tarihsütunundaki en küçük (yani en erken) tarihi bulur. Bu, ayın ilk günü olacaktır.ALLEXCEPT:ALLEXCEPTfonksiyonu, yalnızca belirtilen sütunlar (Yıl,AyveDö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:
FIRSTNONBLANK(DovizKuruTablosu[Döviz Alış], 1):Döviz Alışsütunundaki ilk geçerli (boş olmayan) değeri döndürür. Bu, genellikleMINveyaMAXyerine kullanılır çünkü boş değerler olduğunda hata almayı engeller.DovizKuruTablosu[Tarih] = IlkTarih:
Bu filtre, yalnızcaTarihsütunundaki değerIlkTarihdeğ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:
- Her yıl, ay ve döviz cinsi için ayın ilk günü (
IlkTarih) hesaplanır. - 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:
| Tarih | Yıl | Ay | Döviz Cinsi | Döviz Alış |
|---|---|---|---|---|
| 01.01.2023 | 2023 | 1 | USD | 18.70 |
| 02.01.2023 | 2023 | 1 | USD | 18.72 |
| 01.02.2023 | 2023 | 2 | USD | 18.80 |
| 01.01.2023 | 2023 | 1 | EUR | 19.90 |
| 02.01.2023 | 2023 | 1 | EUR | 19.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ı
- Dinamik Hesaplama:
Formül, veri kümenizdeki filtrelere (örneğin, belirli bir yıl veya döviz cinsi) otomatik olarak uyum sağlar. - Esneklik:
ALLEXCEPTkullanımı sayesinde, yalnızca istediğiniz sütunlara göre hesaplama yapabilirsiniz. - Boş Değerlerle Uyum:
FIRSTNONBLANKfonksiyonu, 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.