Zaman bazlı analiz yapabilmek için ayrı bir tarih tablosuna ihtiyacınız olur. Bu derste, veri kaynağına bağlı kalmadan tamamen formülle, her açıldığında güncel tarihe kadar kendini uzatan bir "rolling calendar" oluşturacağız.
Boş Bir Sorgu Açmak
Giriş → Veri Al → Boş Sorgu ile içinde herhangi bir kaynağa bağlı olmayan boş bir sorgu açılır. Formül çubuğuna doğrudan M dili ifadeleri yazabilirsiniz.
Başlangıç Tarihini Belirlemek
= #date(2019, 1, 1)
Bu, tarih tablonuzun başlangıç noktasıdır (verinizin en eski tarihine göre ayarlayın).
List.Dates ile Tarih Aralığı Üretmek
Yeni bir adım ekleyip List.Dates fonksiyonunu kullanıyoruz — bu fonksiyon üç parametre alır: başlangıç tarihi, kaç gün üretileceği, ve her adımın ne kadar ilerleyeceği:
= List.Dates(
#date(2019, 1, 1),
Duration.Days(DateTime.LocalNow() - #date(2019, 1, 1)),
#duration(1, 0, 0, 0)
)
DateTime.LocalNow() - #date(2019, 1, 1): şu anki tarih ile başlangıç tarihi arasındaki farkı bir süre (duration) olarak hesaplar.Duration.Days(...): bu farkı gün sayısına çevirir — yani kaç günlük bir liste üretileceğini otomatik hesaplamış olursunuz.#duration(1, 0, 0, 0): her adımın bir gün ilerleyeceğini belirtir.
Neden "Rolling" (Dinamik)?
Bu formülün en önemli özelliği, sabit bir bitiş tarihi yazmak yerine DateTime.LocalNow() kullanmasıdır — yani dosyanızı her açtığınızda ve yenilediğinizde (Refresh), tarih tablosu otomatik olarak bugüne kadar uzanır. Sabit bir tarih aralığı yazsaydınız, zaman geçtikçe tabloyu elle güncellemeniz gerekirdi.
Listeyi Tabloya Çevirmek
List.Dates bir liste döndürür, tablo değil — bunu Dönüştür → Tabloya Dönüştür ile bir tabloya çevirip sütuna bir isim (ör. Tarih) verin. Ardından bu sütunu Tarih tipine ayarlayıp, önceki derste gösterdiğimiz gibi üzerine yıl/ay/çeyrek gibi türetilmiş sütunlar ekleyebilirsiniz.
Sırada Ne Var?
Sırada, Power Query'de verileri belirli bir kritere göre gruplandırıp özetlemeyi (Group By) göreceğiz.