Power BI ‘ın modelleme dili olan DAX basit bir dil. Fakat -zaman zaman- kolay bir dil değil. Her dil gibi kendine özgü bir mantığı ve yapısı var. Quick measures, ya da hızlı ölçüler (metrikler), henüz DAX tecrübemizin başındaysak, dili anlamak ve istediğimiz metrikleri hızlı yazmak için oldukça işe yarayan bir özellik.
İyi haber şu ki, herhangi bir projede bize lazım olan metriklerin büyük çoğunluğunu yazmak hiç de zor değil. Bu durumu açık sınıf eğitimlerine katılan kullanıcıların yaptıklarına bakarak demiyorum sadece. Belli bir çabayla çok hızlı yol almak mümkün.
İlk kez kullanıyorsanız bile bu linkteki videoları izleyip bir satış modeli kurabilirsiniz!
Eğer henüz hiç bir DAX formülü yazmadıysanız, DAX’a dair hiç bir bilginiz yoksa, Power BI ‘da kullanabileceğimiz ve işimizi kolaylaştıracak iki tane yöntem var: Default Aggregation’lar ve Quick Measure’lar.
Default aggregation’lar modelinizdeki nümerik sütunları otomatikman görür ve bu sütunlardaki değerler üstünden otomatik hesaplamalar yapar; toplar, ortalama alır, sayar, standart sapmayı ve varyansı bulur vs.
Nümerik sütunların yanındaki ∑ (sigma) işareti bu sütunlarla ilgili otomatik bir hesaplama olduğunu gösterir, ki genelde bu toplama işlemidir.
Herhangi nümerik bir sütunla ilgili varsayılan aggregation tipini “Modelling” tabındaki “Default Summarization” ‘dan değiştirebiliriz.
Örneğin yazıdaki modelde satış tutarlarını gösteren nümerik sütunun varsayılan hesaplaması toplama (SUM), hiç DAX kodu yazmadan da satışları aylara göre gösterebiliriz.
Aynı sütunu bir kez daha görsele düşürüp bu sefer varsayılan hesaplamayı varyansa çevirebiliriz! Düşürdüğümüz ikinci Tutar’ı Value bölümünde sağ tıklayıp istediğimiz hesaplamayı seçmemiz yeterli bunun için.
Power BI jargonunda bu otomatik hesaplamalar “implicit measure” olarak geçiyor.
Bu implicit metrikler, modelde ne var ne yok hızlıca bir göz atmak açısından ve özellikle henüz hiç DAX bilmiyorsak faydalı.
Her ne kadar başlangıç için gayet faydalı olsa da, Power BI projeleri için best practice ‘lerden biri bu “implicit” metrikleri hiç kullanmayıp kendi metriklerimizi açık bir şekilde yazmak.
Yani bize satışların toplamı lazımsa bunun formülünü açık açık bir metrik olarak yazmalıyız. Bu tür metriklere de jargonda “explicit measure” deniyor.
Satışlar := SUM('Satışlar'[Tutar] )
Ufak bir not, Analyze in Excel ile modele bağlandığınızda “implicit” metrikler henüz desteklenmiyor.
Gelelim ikinci kolaylığa: Quick Measures, yani hızlı metrikler! Adı üstünde, henüz yeterince DAX bilmiyorsak hemen hemen her modelde bize lazım olan bir çok metriği hızlı bir şekilde oluşturabilmemizi sağlıyor.
Satışlar = SUM.. gibi bir formülü yazmak zaten çok kolay. Modellerdeki geri kalan bir çok metrik, bu temel metriklerin varyasyonu oluyor genelde, Satışlar metriğini yazdıysak Satışlar Kümülatif de lazım oluyor, Satışlar Önceki Ay da lazım oluyor vs. Ve genelde yaptığımız şey, bu temel metriği çağırıp ilgili fonksiyonlarla varyasyonunu yazıyoruz.
Kümülatif satışlar için CALCULATE ve DATESYTD ‘yi kullanmak gibi.
Satışlar YTD := CALCULATE( [Satışlar] ; DATESYTD('Tarih'[Tarih] ))
Aynı hesaplamayı yapan bir başka metriği quick measure ile yazalım!
Metriği eklemek istediğimiz tabloyu sağ tıkladığımızda karşımıza çıkan menüden “New quick measure” ‘ı seçiyorum.
Karşımıza çıkan menüde, sol taraftaki “Calculation” listesinde hesaplama tipleri var; Time Intelligence, Filters, Total gibi, hesap tipi bazında gruplara ayrılmış bu bölüm. Sağ taraftaki “Fields” bölümünde ise modelimizin içindeki tablo ve sütunlar listeleniyor.
Kümülatif hesaplamak istedidiğimiz için Time Intelligence grubundan Year-to-date total ‘i seçiyorum.
Formülü oluşturmak için bizden istediği “Base Value” kısmına ilgili tablodan Tutar sütununu, Date bölümüne de Tarih tablosundan Tarih sütununu düşürüp OK dediğimde kümülatif satışları hesaplayan bir metriği otomatikman yazıyor!
Quick measure ile yazdığımız metrik de, kendimizin yazdığı metrik de aynı şeyi hesaplıyor, sadece tercih edilen -kullanılan- fonksiyonlar farklı.
Bir kaç örnek daha yapalım.
Örneğin kategori bazında satışları kümülatif olarak göstermek istiyoruz diyelim.
Satışlar tablosu sağ tık –> New Quick Measure –> Calculation menüsündeki “Total” grubu altından “Running Total” ‘i seçiyorum ve benden istediği sütunları düşürüyorum.
OK dediğimde formülü kendisi ekliyor.
Yazdığı formüldeki metrik ismini kendi isimlendirme mantığıma göre değiştirip kullanabilirim.
Satışlar Kümülatif Kategori Bazında :=
CALCULATE (
SUM ( 'Satışlar'[Tutar] );
FILTER (
ALLSELECTED ( 'Ürün Kategorileri'[Kategori] );
ISONORAFTER (
'Ürün Kategorileri'[Kategori]; MAX ( 'Ürün Kategorileri'[Kategori] ); DESC
)
)
)
Bir örnek de önceki aya göre artışı-azalışı % cinsinden bulmak için yapalım.
Sadece tıklamalarla bir çok metriği bu şekilde modele eklemek mümkün!
Hesaplama gruplarındaki listeye göz atmanızı öneririm. Yürüyen ortalama formülünü bile hiç DAX bilmeden yazabilirsiniz!
Quick Measures, Power BI ‘a yeni başlayanlar için, henüz yeterince DAX bilmeyenler için gayet kullanışlı ve pratik bir çözüm. DAX öğrenmenin yerini elbette almaz ama yeterli bilgiye sahip değilsek çoğu metriği hızlıca oluşturmak için biçilmiş kaftan.
Ufak bir not daha düşeyim, eğer modelinizi direct query ile oluşturduysanız quick measure listesinde “Time Intelligence” grubu çıkmıyor, yani desteklenmiyor.
Yazıdaki modeli indirebilirsiniz.
Sadece üyeler görebilir. Hızlı üyelik için sosyal medya hesabınızla giriş yapabilirsiniz!