Satışların geçen yıla veya geçen aya göre nasıl değiştiğini görmek, iş zekası raporlarının en sık istenen özelliklerinden biridir. DAX'ta bunun için iki tamamlayıcı fonksiyon vardır.
SAMEPERIODLASTYEAR: Geçen Yılın Aynı Dönemi
Gecen Yil Satis = CALCULATE(SUM(Transactions[Quantity]), SAMEPERIODLASTYEAR(Tarih[Tarih]))
SAMEPERIODLASTYEAR, filtre bağlamındaki tarihleri tam olarak bir yıl geriye kaydırır. Eğer geçerli yılda (ör. 2018) o tarihe ait veri yoksa, ölçü boş döner — bu normaldir, ilk yılın karşılaştıracağı bir önceki yıl yoktur.
Fark ve Yüzdesel Değişimi Hesaplamak
Yillik Fark = SUM(Transactions[Quantity]) - [Gecen Yil Satis]
Yillik Degisim Yuzde =
DIVIDE(
SUM(Transactions[Quantity]) - [Gecen Yil Satis],
[Gecen Yil Satis]
)
DIVIDE fonksiyonu, normal / operatörü yerine tercih edilmelidir — çünkü paydası sıfır veya boş olduğunda hata (Infinity/#DIV/0!) yerine otomatik olarak boş değer döndürür, ekstra bir IF kontrolüne gerek kalmaz.
DATEADD: Herhangi Bir Periyodu Kaydırmak
SAMEPERIODLASTYEAR özel olarak "bir yıl önce" için tasarlanmıştır. Daha esnek bir kaydırma (ör. bir ay önce, bir çeyrek önce) için DATEADD kullanılır:
Gecen Ay Satis =
CALCULATE(
SUM(Transactions[Quantity]),
DATEADD(Tarih[Tarih], -1, MONTH)
)
Üçüncü parametre, kaydırma birimini belirler: DAY, MONTH, QUARTER veya YEAR. İkinci parametredeki sayı negatifse geriye (geçmişe), pozitifse ileriye (geleceğe) kaydırır.
SAMEPERIODLASTYEAR ile DATEADD İlişkisi
Aslında SAMEPERIODLASTYEAR(Tarih[Tarih]), DATEADD(Tarih[Tarih], -1, YEAR) ile birebir aynı sonucu verir — SAMEPERIODLASTYEAR, yıllık karşılaştırma bu kadar yaygın olduğu için DAX'a ayrıca kısayol olarak eklenmiş bir fonksiyondur.
Sırada Ne Var?
Sırada, bir tabloyu DAX içinde özetleyip yeni bir tablo üreten SUMMARIZE fonksiyonunu göreceğiz.