Excel DAX - Zaman Zekası
DAX, şu adla anılan önemli ve güçlü bir özelliğe sahiptir: Time Intelligence. Zaman zekası, PivotTable'larda kullanılmak üzere zaman dilimlerine başvuran DAX formülleri yazmanıza olanak tanır.
DAX, zaman içinde verileri toplamak ve karşılaştırmak için özel olarak 35 akıllı zaman gösterimi işlevine sahiptir. Ancak, bu DAX işlevlerinin veriler üzerinde anlamanız ve hataları önlemek için dikkatle çalışmanız gereken bazı kısıtlamaları vardır.
Time Intelligence DAX'ı Neden Güçlü Yapar?
Zaman gösterimi işlevleri, PivotTable'larda ve Power View görselleştirmelerinde seçtiğiniz bağlama bağlı olarak sürekli değişen verilerle çalışır. Bildiğiniz gibi, veri analizinin çoğu, zaman dönemleri boyunca verilerin özetlenmesini, zaman dönemlerindeki veri değerlerini karşılaştırmayı, eğilimleri anlamayı ve gelecekteki tahminlere dayalı kararlar almayı içerir.
Örneğin, geçen ayın satış tutarlarını ürün bazında toplamak ve toplamları mali yılın diğer aylarıyla karşılaştırmak isteyebilirsiniz. Bu, tarihleri belirli bir dönem için satış işlemlerini gruplamak ve toplamak için kullanmanız gerektiği anlamına gelir.
DAX'ın gücünü burada gözlemleyebilirsiniz. Pivot tablolardaki tarih seçimlerini değiştirmenize gerek kalmadan verileri zaman içinde analiz etmenize yardımcı olan hesaplanan alanları tanımlamak için DAX zaman gösterimi işlevlerini kullanabilirsiniz. Bu, işinizi kolaylaştırır. Dahası, başka türlü mümkün olmayacak PivotTable'lar oluşturabilirsiniz.
DAX Time Intelligence İşlevleri için Gereksinimler
DAX zaman gösterimi işlevlerinin belirli gereksinimleri vardır. Bu gereksinimler karşılanmazsa, hatalar alabilirsiniz veya bunlar düzgün çalışmayabilir. Bu nedenle, bu gereksinimlere kurallar veya kısıtlamalar olarak da başvurabilirsiniz. Aşağıda, belirli DAX zaman gösterimi işlevleri gereksinimleri / kuralları / kısıtlamaları verilmiştir -
Veri Modelinizde bir tarih tablonuz olması gerekir.
Tarih tablosu, DAX tarafından Tarih sütunu olarak kabul edilen bir sütun içermelidir. Sütunu istediğiniz gibi adlandırabilirsiniz, ancak aşağıdaki koşullara uygun olmalıdır: o Tarih sütunu, verileri analiz ettiğiniz zaman diliminde her günü kapsayan bitişik bir tarih kümesi içermelidir.
Her tarih, tarih sütununda bir kez ve yalnızca bir kez bulunmalıdır.
Herhangi bir tarihi atlayamazsınız (Örneğin, hafta sonu tarihlerini atlayamazsınız).
DAX zaman gösterimi işlevleri yalnızca standart bir takvimde çalışır ve yılın başlangıcını 1 Ocak ve yılın sonunu 31 Aralık olarak, yıl içindeki aylar ve bir takvim yılı itibariyle her aydaki günler ile varsayar.
Ancak, farklı mali yıllar için standart bir takvimi özelleştirebilirsiniz. İstihbarat işlevi herhangi bir zamanda kullanılmadan önce yukarıdaki gereksinimleri doğrulamak iyi bir uygulamadır.
Tarih tabloları ve DAX formüllerinde kullanımları hakkında daha fazla ayrıntı için, bu eğitim kitaplığındaki öğretici = DAX ile Veri Modelleme konusuna bakın.
DAX Zaman İstihbarat İşlevleri - Kategoriler
DAX Time Intelligence işlevleri aşağıdaki gibi kategorize edilebilir -
- Tek bir tarih döndüren DAX işlevleri.
- Tarih tablosu döndüren DAX işlevleri.
- Bir süre boyunca ifadeleri değerlendiren DAX işlevleri.
Tek Bir Tarih Döndüren DAX İşlevleri
Bu kategorideki DAX işlevleri tek bir tarih döndürür.
Bu kategoride 10 DAX işlevi vardır -
Sr.No. | DAX İşlevi ve Dönüş Değeri |
---|---|
1 | FIRSTDATE (Date_Column) Geçerli bağlamda Date_Column'daki ilk tarihi döndürür. |
2 | LASTDATE (Date_Column) Geçerli bağlamda Date_Column'daki son tarihi döndürür. |
3 | FIRSTNONBLANK (Date_Column, Expression) Bir ifadenin boş olmayan bir değere sahip olduğu ilk tarihi döndürür. |
4 | LASTNONBLANK (Date_Column, Expression) Bir ifadenin boş olmayan bir değere sahip olduğu son tarihi döndürür. |
5 | STARTOFMONTH (Date_Column) Geçerli bağlamda bir ayın ilk tarihini verir. |
6 | ENDOFMONTH (Date_Column) Geçerli bağlamda bir ayın son tarihini verir. |
7 | STARTOFQUARTER (Date_Column) Geçerli bağlamda bir çeyreğin ilk tarihini verir. |
8 | ENDOFQUARTER (Date_Column) Geçerli bağlamda bir çeyreğin son tarihini verir. |
9 | STARTOFYEAR (Date_Column, [YE_Date]) Geçerli bağlamda bir yılın ilk tarihini döndürür. |
10 | ENDOFYEAR (Date_Column, [YE_Date]) Geçerli bağlamda bir yılın son tarihini verir. |
Tarih Tablosu Döndüren DAX İşlevleri
Bu kategorideki DAX İşlevleri bir tarih tablosu döndürür. Bu işlevler çoğunlukla DAX işlevi - CALCULATE için bir SetFilter bağımsız değişkeni olarak kullanılır.
Bu kategoride 16 DAX işlevi vardır. Bu DAX işlevlerinden sekizi (8), "önceki" ve "sonraki" işlevlerdir.
"Önceki" ve "sonraki" işlevleri, geçerli bağlamda bir tarih sütunuyla başlar ve önceki veya sonraki günü, ayı, çeyreği veya yılı hesaplar.
"Önceki" işlevler, geçerli bağlamda ilk tarihten geriye doğru çalışır ve "sonraki" işlevler, geçerli bağlamda son tarihten ileri gider.
"Önceki" ve "sonraki" işlevleri, sonuçtaki tarihleri tek bir sütun tablosu biçiminde döndürür.
Sr.No. | DAX İşlevi ve Dönüş Değeri |
---|---|
1 | PREVIOUSDAY (Date_Column) Geçerli bağlamda Date_Column'daki ilk tarihten önceki günü temsil eden tüm tarihlerin bir sütununu içeren bir tablo döndürür. |
2 | NEXTDAY (Date_Column) Geçerli bağlamda Date_Column'da belirtilen ilk tarihe göre, sonraki günden itibaren tüm tarihlerin bir sütununu içeren bir tablo döndürür. |
3 | PREVIOUSMONTH (Date_Column) Geçerli bağlamda Date_Column'daki ilk tarihe dayalı olarak, önceki ayın tüm tarihlerinin bir sütununu içeren bir tablo döndürür. |
4 | NEXTMONTH (Date_Column) Geçerli bağlamda Date_Column'daki ilk tarihe dayalı olarak, sonraki ayın tüm tarihlerini içeren bir sütun içeren bir tablo döndürür. |
5 | PREVIOUSQUARTER (Date_Column) Geçerli bağlamda Date_Column'daki ilk tarihe dayalı olarak, önceki çeyreğe ait tüm tarihlerin bir sütununu içeren bir tablo döndürür. |
6 | NEXTQUARTER (Date_Column) Geçerli bağlamdaki Date_Column'da belirtilen ilk tarihe göre, sonraki çeyrekteki tüm tarihlerin bir sütununu içeren bir tablo döndürür. |
7 | PREVIOUSYEAR (Date_Column, [YE_Date]) Geçerli bağlamda Date_Column'daki son tarih verildiğinde, önceki yıla ait tüm tarihlerin bir sütununu içeren bir tablo döndürür. |
8 | NEXTYEAR (Date_Column, [YE_Date]) Geçerli bağlamda Date_Column'daki ilk tarihe göre sonraki yıldaki tüm tarihlerin bir sütununu içeren bir tablo döndürür. |
Dört (4) DAX işlevi, bir dönemdeki tarih kümesini hesaplar. Bu işlevler, hesaplamaları geçerli bağlamdaki son tarihi kullanarak gerçekleştirir.
Sr.No. | DAX İşlevi ve Dönüş Değeri |
---|---|
1 | DATESMTD (Date_Column) Geçerli bağlamda aydan bugüne kadar olan tarihlerin sütununu içeren bir tablo döndürür. |
2 | DATESQTD (Date_Column) Geçerli bağlamda, üç aylık dönemden bugüne kadarki tarihlerin sütununu içeren bir tablo döndürür. |
3 | DATESYTD (Date_Column, [YE_Date]) Geçerli bağlamda, yıl başından bugüne kadar olan tarihlerin sütununu içeren bir tablo döndürür. |
4 | SAMEPERIODLASTYEAR (Date_Column) Geçerli bağlamda, belirtilen Date_Column'daki tarihlerden bir yıl geriye kaydırılmış bir tarih sütunu içeren bir tablo döndürür. Note- SAMEPERIODLASTYEAR, geçerli bağlamın bitişik bir tarih kümesi içermesini gerektirir. Geçerli bağlam bitişik bir tarih kümesi değilse, SAMEPERIODLASTYEAR bir hata döndürür. |
Geçerli bağlamdaki tarih kümesinden yeni bir tarih kümesine geçmek için dört (4) DAX işlevi kullanılır.
Bu DAX işlevleri, öncekilerden daha güçlüdür.
DAX işlevleri - DATEADD, DATESINPERIOD ve PARALLELPERIOD, geçerli bağlamdan bazı zaman aralıklarını kaydırır. Aralık, sırasıyla GÜN, AY, ÇEYREK ve YIL anahtar kelimeleriyle temsil edilen gün, ay, çeyrek veya yıl olabilir.
Örneğin:
2 gün geri kaydırın.
5 ay ileri gidin.
Bugünden itibaren bir ay ileri gidin.
Geçen yılın aynı çeyreğine geri dönün.
DAX işlevi - DATESBETWEEN, belirtilen başlangıç tarihi ile bitiş tarihi arasındaki tarih kümesini hesaplar.
İşlev bağımsız değişkeni - aralık sayısı (tamsayı değeri) pozitifse, kaydırma ileri ve eğer negatifse, kaydırma geriye doğrudur.
Sr.No. | DAX İşlevi ve Dönüş Değeri |
---|---|
1 | DATEADD (Date_Column, Number_of_Intervals, Interval) Geçerli bağlamdaki tarihlerden belirtilen aralık sayısı kadar zamanda ileri veya geri kaydırılmış bir tarih sütunu içeren bir tablo döndürür. |
2 | DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval) Başlangıç_tarihi ile başlayan ve belirtilen aralık_sayısı kadar devam eden bir tarih sütunu içeren bir tablo döndürür. |
3 | PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval) Geçerli bağlamda belirtilen Date_Column'daki tarihlere paralel bir dönemi temsil eden bir tarih sütunu içeren bir tablo döndürür; tarihler, belirli aralıklarla zamanda ileri veya geri kaydırılır. |
4 | DATESBETWEEN (Date_Column, Start_Date, End_Date) Başlangıç_tarihi ile başlayan ve bitiş_tarihine kadar devam eden bir tarih sütunu içeren bir tablo döndürür. |
Bir Zaman Dönemi İçinde İfadeleri Değerlendiren DAX İşlevleri
Bu kategorideki DAX İşlevleri, belirli bir süre boyunca bir ifadeyi değerlendirir.
Bu kategoride dokuz (9) DAX işlevi vardır -
Bu kategorideki üç (3) DAX işlevi, belirli bir süre boyunca herhangi bir ifadeyi değerlendirmek için kullanılabilir.
Sr.No. | DAX İşlevi ve Dönüş Değeri |
---|---|
1 | TOTALMTD (Expression, Date_Column, [SetFilter]) Geçerli bağlamda, aydan bugüne kadarki tarihler için ifadenin değerini değerlendirir. |
2 | TOTALQTD (Expression, Date_Column, [SetFilter]) Geçerli bağlamda, üç aylık dönemden bugüne kadarki tarihler için ifadenin değerini değerlendirir. |
3 | TOTALYTD (Expression, Date_Column, [SetFilter], [YE_Date]) Mevcut bağlamda, yıldan bugüne kadarki tarihler için ifadenin değerini değerlendirir |
Bu kategorideki altı (6) DAX işlevi açılış ve kapanış bakiyelerini hesaplamak için kullanılabilir.
Herhangi bir dönem için açılış bakiyesi, önceki dönemin kapanış bakiyesi ile aynıdır.
Kapanış bakiyesi, dönem sonundaki tüm verileri içerirken açılış bakiyesi cari dönemden herhangi bir veri içermez.
Bu DAX işlevleri, her zaman belirli bir zaman noktası için değerlendirilen bir ifadenin değerini döndürür.
Önem verdiğimiz zamandaki nokta her zaman bir takvim dönemindeki olası son tarih değeridir.
Açılış bakiyesi bir önceki dönemin son tarihine, kapanış bakiyesi ise cari dönemdeki son tarihe dayanmaktadır.
Geçerli dönem her zaman geçerli tarih bağlamındaki son tarihe göre belirlenir.
Sr.No. | DAX İşlevi ve Dönüş Değeri |
---|---|
1 | OPENINGBALANCEMONTH (Expression, Date_Column, [SetFilter]) Geçerli bağlamda ayın ilk tarihindeki ifadeyi değerlendirir. |
2 | CLOSINGBALANCEMONTH (Expression, Date_Column, [SetFilter]) Geçerli bağlamda ayın son tarihindeki ifadeyi değerlendirir. |
3 | OPENINGBALANCEQUARTER (Expression, Date_Column, [SetFilter]) İfadeyi mevcut bağlamda çeyreğin ilk tarihindeki değerlendirir. |
4 | CLOSINGBALANCEQUARTER (Expression, Date_Column, [SetFilter]) Mevcut bağlamda çeyreğin son tarihindeki ifadeyi değerlendirir. |
5 | OPENINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date]) Mevcut bağlamda yılın ilk tarihindeki ifadeyi değerlendirir. |
6 | CLOSINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date]) Yılın son tarihindeki ifadeyi mevcut bağlamda değerlendirir. |