DAX akıllı zaman gösterimi işlevlerini kullanma

Tamamlandı

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 ve DATESQTD DAX işlevlerini de içerirDATESMTD. Bu işlevleri DAX işlevine CALCULATE 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şlevleri TOTALQTDTOTALMTD 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.

Satırları Year ve Month ölçütlerine göre sıralanmış olan ve Revenue ile Revenue YTD özetlemelerinin yer aldığı matris görselini gösteren görüntü. YTD değerleri vurgulanmıştır.

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 , , PREVIOUSMONTHPREVIOUSQUARTERve PREVIOUSYEARişlevlerini içerirNEXTDAY.PREVIOUSDAYNEXTYEARNEXTQUARTER

Ş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.

Satırları Year ve Month ölçütlerine göre sıralanmış olan ve Revenue, Revenue YTD ve Revenue PY özetlemelerinin yer aldığı matris görselini gösteren görüntü. FY2019 için aylık Revenue PY değerleri, FY2018 için aylık Revenue değerlerine eşit.

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.

Satırları Year ve Month ölçütlerine göre sıralanmış olan ve Revenue, Revenue YTD ve Revenue YoY % özetlemelerinin yer aldığı matris görselini gösteren görüntü. FY2019 için aylık Revenue YoY % değerleri, yüzde olarak biçimlendirilmiş değerlerdir.

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.