DAX akıllı zaman gösterimi işlevlerini kullanma
DAX içinde tarih filtresi bağlamını değiştirme görevini basitleştiren birçok farklı akıllı zaman gösterimi işlevi bulunur. Tarih filtrelerini değiştiren ancak daha fazla çalışma oluşturabilecek bir CALCULATE
işlev kullanarak bu akıllı formüllerin birçoğunu yazabilirsiniz.
Not
Çoğu DAX akıllı zaman gösterimi işlevi başta yıl, çeyrek ve ay olmak üzere standart zaman aralıklarıyla ilgilidir. Düzensiz zaman aralıklarıyla (takvim ayının ortasından başlayan mali yıllar gibi) veya haftalarla ya da saat aralıklarıyla (saat, dakika vb.) çalışmanız gerekiyorsa DAX akıllı zaman gösterimi işlevleri sizin için faydalı olmayacaktır. Bunun yerine işlevini kullanmanız CALCULATE
ve el ile hazırlanmış tarih veya saat filtrelerini geçirmeniz gerekir.
Tarih tablosu gereksinimi
DAX akıllı zaman gösterimi işlevlerini kullanmak için modelinizde en az bir tarih tablosu bulunması gereksinimini karşılamanız gerekir. Tarih tablosu, aşağıdaki gereksinimleri karşılayan bir tablodur:
- Tarih (veya tarih/saat) veri türünde bir sütuna tarih sütunu sahip olmalıdır.
- Tarih sütunu benzersiz değerler içermelidir.
- Tarih sütunu BOŞLUKLAR içermemelidir.
- Tarih sütununda eksik tarihler olmamalıdır.
- Tarih sütunu tam yıllara yayılmalıdır. Yılın bir takvim yılı (Ocak-Aralık) olması gerekmez.
- Bu tablonun tarih tablosu olduğu belirtilmelidir.
Daha fazla bilgi için bkz. Power BI Desktop’ta tarih tablosu oluşturma.
Zaman içindeki özetlemeler
DAX akıllı zaman gösterimi işlevlerinin bir bölümü, zaman içindeki özetlemeleri kapsar:
DATESYTD
- Geçerli filtre bağlamındaki yıldan bugüne (YTD) tarihleri içeren tek sütunlu bir tablo döndürür. Bu grup ay-tarih (MTD) ve üç aylık (QTD) için veDATESQTD
DAX işlevlerini de içerirDATESMTD
. Bu işlevleri DAX işlevineCALCULATE
filtre olarak geçirebilirsiniz.TOTALYTD
- Geçerli filtre bağlamında bir ifadeyi YTD için değerlendirir. ve'nin eşdeğer QTD ve MTD DAX işlevleriTOTALQTD
TOTALMTD
de dahil edilir.DATESBETWEEN
- Belirli bir başlangıç tarihiyle başlayan ve belirli bir bitiş tarihine kadar devam eden tarih sütununu içeren bir tablo döndürür.DATESINPERIOD
- Belirli bir başlangıç tarihiyle başlayan ve belirtilen aralık sayısı için devam eden bir tarih sütunu içeren bir tablo döndürür.
Not
İşlevin TOTALYTD
kullanımı basit olsa da, tek bir filtre ifadesi geçirmekle sınırlıdır. Birden çok filtre ifadesi uygulamanız gerekiyorsa işlevini kullanın CALCULATE
ve işlevi filtre ifadelerinden biri olarak geçirin DATESYTD
.
Aşağıdaki örnekte TOTALYTD işlevini kullanacak olan ilk akıllı zaman gösterimi hesaplamanızı oluşturacaksınız. Söz dizimi şu şekildedir:
TOTALYTD(<expression>, <dates>, [, <filter>][, <year_end_date>])
İşlev için bir ifadenin yanı sıra tüm akıllı zaman gösterimi işlevlerinde olduğu gibi tarih tablosu olarak belirlenmiş tablonun tarih sütununa başvuru gerekir. İsteğe bağlı olarak tek bir filtre ifadesi veya yılın bitiş tarihi geçirilebilir (yalnızca 31 Aralık tarihinde bitmeyen yıllar için gereklidir).
Adventure Works DW 2020 M07.pbix dosyasını indirip açın. Ardından, YTD gelirini hesaplayan Sales tablosuna aşağıdaki ölçü tanımını ekleyin. Ölçüyü iki ondalık basamaklı para birimi olarak biçimlendirin.
Revenue YTD =
TOTALYTD([Revenue], 'Date'[Date], "6-30")
yıl sonu tarihi değeri "6-30"
30 Haziran'a eşittir.
Raporun Sayfa 1 bölümünde Revenue YTD ölçüsünü matris görseline ekleyin. Yılın başından filtrelenen aya kadar olan gelir tutarlarının özetlemesini oluşturduğunu göreceksiniz.
Zaman içindeki karşılaştırmalar
DAX akıllı zaman gösterimi işlevlerinin bir diğer bölümü de değişen zaman aralıklarını kapsar:
DATEADD
- Geçerli filtre bağlamındaki tarihlerden belirtilen aralık sayısı kadar ileri veya geri kaydırılmış bir tarih sütunu içeren bir tablo döndürür.PARALLELPERIOD
- Geçerli filtre bağlamında belirtilen tarihler sütunundaki tarihlerle paralel bir dönemi temsil eden bir tarih sütunu içeren bir tablo döndürür ve tarihler zaman içinde veya zamanda geriye doğru bir dizi aralık kaydırılır.SAMEPERIODLASTYEAR
- Geçerli filtre bağlamında, belirtilen tarihler sütunundaki tarihlerden bir yıl geriye kaydırılan bir tarih sütunu içeren bir tablo döndürür.- Belirli bir zaman aralığı kadar geri veya ileri gitmeyi sağlayan birçok yardımcı DAX işlevi vardır ve hepsi bir tarih tablosu döndürür. Bu yardımcı işlevler ,
NEXTMONTH
, ve , ,PREVIOUSMONTH
PREVIOUSQUARTER
vePREVIOUSYEAR
işlevlerini içerirNEXTDAY
.PREVIOUSDAY
NEXTYEAR
NEXTQUARTER
Şimdi Sales tablosuna işlevini kullanarak SAMEPERIODLASTYEAR
önceki yılın gelirini hesaplayan bir ölçü ekleyebilirsiniz. Ölçüyü iki ondalık basamaklı para birimi olarak biçimlendirin.
Revenue PY =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
RevenuePriorYear
Revenue PY ölçüsünü matris görseline ekleyin. Önceki yılın gelir miktarına benzer sonuçlar verdiğini göreceksiniz.
Ardından, ölçüyü Revenue YoY % olarak yeniden adlandırıp değişiklik oranını hesaplamak için yan tümcesini RETURN
güncelleştirerek değiştireceksiniz. Biçimi iki ondalık basamaklı yüzde olarak değiştirmeyi unutmayın.
Revenue YoY % =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE(
[Revenue] - RevenuePriorYear,
RevenuePriorYear
)
Revenue YoY % ölçüsünün önceki yılın aylık gelirine göre değişim oranını hesapladığını göreceksiniz. Örneğin Temmuz 2018'de, önceki yılın aylık gelirine göre yüzde 106,53 artış görülürken Kasım 2018'de önceki yılın aylık gelirine göre yüzde 24,22 azalma görülüyor.
Not
Revenue YoY % ölçüsü, DAX değişkenlerinin nasıl kullanılacağına dair iyi bir örnektir. Ölçü, formülün okunabilirliğini artırır ve ölçü mantığının bir bölümüne birim testi uygulamanızı sağlar (RevenuePriorYear değişkeninin değerini döndürerek). Ayrıca ölçü, önceki yılın gelirini iki kez almak zorunda kalmadığından iyi yazılmış bir formüldür. Bunu bir değişkende bir kez depoladıktan sonra yan tümcesi RETURN
değişken değerini iki kez kullanır.
Yardıma mı ihtiyacınız var? Sorun giderme kılavuzumuza gözatın veya sorun bildirerek belirli bir konuda geri bildiriminizi paylaşın.