Power Query’de Parametre Kullanarak Dinamik Tarih Tablosu Oluşturmak

Power BI veri modellerinde (semantik model), farklı tablolardan gelen çok sayıda tarih bilgisi bulundurmak oldukça yaygındır. Sipariş tarihleri, üretim tarihleri, bütçe dönemleri gibi çeşitli tarih verilerini beraber değerlendirmek, analizlerin derinliğini artırır. Tarih bilgilerini doğru bir şekilde birleştirmek ve anlamlı sonuçlar elde etmek içinse bir tarih tablosuna ihtiyaç duyarız. Tarih tablosu aynı zamanda, DATESYTD(), SAMEPERIODLASTYEAR() gibi zaman zekası (Time Interlligence) fonksiyonlarının doğru çalışabilmesi için de bir gerekliliktir. Bu yazıda, Power Query’de, aralıkları parametrelerle belirlenebilen, tarih tablosu oluşturma sürecini inceliyoruz.

Boş sorgu oluşturarak başlayalım.

Power Query ile tarih tablosu oluşturmak için List.Dates Fonksiyonunu kullanıyoruz. 

Örneğin 1 Ocak 2024 tarihinden başlayarak 365 gün devam eden bir tarih tablosunu, liste olarak elde etmek istediğimizi düşünelim.

= List.Dates(                      
     #date( 2024, 01, 01 ),    // başlangıç tarihi (yıl, ay, gün)
     365,                      // adım (uzunluk, örneğin kaç gün) 
     #duration( 1, 0, 0, 0 )   // sırasıyla gün, saat, dakika, saniye
 )

Power Query’de parametre kullanarak tarih tablosunu dinamik hale getirmek

Tarih tablosu oluştururken, tarih başlangıç ve bitiş tarih parametrelerini girdiğimizde listenin dinamik olarak güncellenmesini isteyebiliriz. Parametreleri oluşturmak için:

Tarih listemiz ve parametrelerimiz hazır olduğuna göre artık List.Date formülünü parametreleri kullanacak şekilde revize etmek için, başlangıç ve adım sayısını, parametreler üzerinden revize edelim.. 

BaşlangıçTarihi parametresi

BitişTarihi parametresi – BaşlangıçTarihi parametresi + 1 (son günün de dahil olması için +1)

= List.Dates(                      
     BaşlangıçTarihi,
     Duration.Days(BitişTarihi - BaşlangıçTarihi) + 1,
     #duration( 1, 0, 0, 0 )
 )

Belirttiğimiz parametreler arasında tarih listesi oluştu. Tarih listesini tarih tablosuna dönüştürdükten sonra kullanıma hazır olacaktır. 

Column 1 adıyla otomatik olarak oluşturulan sütuna Tarih adını verdik ve sütun formatını tarih olarak değiştirdik , siz istediğiniz adı verebilirsiniz

Tarih listesi, tarih tablosuna dönüştükten sonra, Power Query ara yüzünü kullanarak istenen bilgileri sütun olarak eklemek oldukça kolay. İstediğiniz tarih bilgilerini, öncesinde tarih sütununu aktif hale getirerek bu menüden ekleyebilirsiniz. (yalnızca  bir tarih sütunu seçili iken, sütun ekle sekmesindeki “Tarih” seçenekleri aktif olur.)

Bu yazıda, Power Query’de  parametreleri kullanarak dinamik tarih tabloları oluşturduk. Ancak genel anlamda bu yaklaşımın sunduğu potansiyelin sadece küçük bir kısmına değindik. Yazının amacını aşmadan parametrelerin tarih tablolarıyla kullanımını biraz daha açalım.

Tarih Parametrelerinin Diğer Avantajları

Tarih tabloları ve parametreler, tüm semantik model genelinde tutarlılık sağlamak için çok daha güçlü araçlar. Örneğin, birden fazla tabloda tarih bilgisi bulunduran bir modeliniz olduğunu düşünün. Bu durumda, parametreler yardımıyla tüm bu tablolardaki verileri aynı anda filtreleyebilir, böylece tüm modelinizde aynı tarih aralığında analizler yapabilirsiniz. Bu sayede,

  • Farklı tablolar arasındaki ilişkileri yönetmek kolaylaşır.
  • İhtiyaç duyulan bilgi miktarını filtrelediği için, raporlardaki satır sayısını ihtiyaç duyulana indirgeyerek performansı önemli ölçüde arttırır. Özellikle Query Folding destekleyen SQL Server gibi sistemlerle çalışırken, bu etki daha da güçlenir.
  • Benzer rapor sayısını azaltarak, ihtiyaca yönelik raporlar oluşturmak kolaylaşır.
  • Raporu kullanan kişiler, yalnızca parametreleri değiştirerek, kolaylıkla yeni raporlar oluşturabilir. Böylelikle katılımı kolaylaştıran bir avantaj elde edebilirsiniz.

Sonuç

Power Query, tarih tabloları oluşturmak için güçlü bir araç. Özellikle parametrelerle entegre çalışması, semantik modelde dinamik ve özelleştirilebilir modeller oluşturmaya yardımcı oluyor. Bu sayede, veri modelindeki değişikliklere hızlı bir şekilde uyum sağlayabiliyor ve kullanıcıların ihtiyaçlarına göre özelleştirilmiş raporlar oluşturmak daha kolay hale geliyor.