“HİÇ” satış yapmamış verilerinizi gözden kaçırıyor olabilirsiniz!
Genellikle raporlarımızda hep olumluyu görmeye meyilliyiz, fakat en elzem kararları olumsuzlukları görünce alabildiğimizi de biliriz! Bu yazıda bu sefer satanları değil, “HİÇ” olanları da göreceğiz.
Power BI Raporları default davranış olarak yalnızca eşleşen, dolu olan veriyi verir! Bu normalde iyidir ama bakış açımızı değiştirdiğimizde, “1 tane bile hareket varsa görürüz ama seçtiğiniz dönemde hiç hareketi olmayan bir şeyi göremeyiz” anlamına da gelir.
Şimdi örneğimiz üzerinden bakalım bu duruma. Satışlar tablosunda sadece satış yaptığınız günlere ait kayıtlar olur. Rapor görseline, satış tutarı metriğini ve Satışlar tablosundan Satış Tarihi sütununu taşıdığımızda, doğal olarak bu görsel bize sadece satış yapılmış günleri gösterir. Aşağıdaki Tablo’ya 2019 yılının 8. ayının 1’i ile 20’si aralığı filtresi uygulanmış durumda. Ancak ilk 4 gün satış olmadığı için 5 ile 20 si aralığını gösteriyor gibi duruyor.
Oysaki aşağıdaki görselde olduğu gibi satış yapılmamış günleri bir bakışta görmek gerçekleri daha net görmemizi sağlayarak, yeni ve önemli kararlar almamız için hayli tetikleyici olabilir!
Hatta sadece iş günlerinizi gösteren bir takvim kullanmanız, görseli daha da anlamlı hale getirmek adına harika olur!
Şimdi detaylara geçelim;
Öncelikle şunu düşünelim, Satış tablosunda hangi kayıtlar olur? Tabii ki satış yapılmış tarihler! Biz şuanda geride kalan satış yapmadığımız günleri de görmek istiyoruz. O zaman bize yılın tüm günlerini içeren bir tarih tablosu gerekir. (ki biz bu tarih tablosunu başka bir çok sebepten dolayı da projeye en başından eklemeliyiz aslında) konunun dağılmaması için tarih tablosu ekleme adımlarını yazının en sonuna ekleyeceğim.
Şimdi Modelimize Date tablomuzu ekledikten sonra grafiğimizin X aksisine bu sefer Date tablosunun Date sütununu ekleyelim, Values bölümüne de Satış Tutarı Metriğimizi getirelim.
Bu esnada, Grafik verilerini daha net görmek için, bir slicer görseline Date tablosundan Date ekleyip içinden 2019 yılının 8.ayını seçtim.
Grafiğimiz aşağıdaki şekilde görünür. Neredeyse daha öncekinin aynısı? Bu da ilk 4 günü göstermiyor. Ayrıca tarihler atlayarak yazılmış. Önce bunu çözelim.
Aksis Continuous / Categorical Ayarı
Eğer aksiste sayı varsa, default olarak X aksisi continious ayarında gelir. Bunu Categorical yaparak aksisteki tüm sayıları görünür yapalım.
Şimdi alttaki grafiğe bakalım, X aksis categorical’a dönüştü ve günleri atlamadan gösteriyor. ama halen 5’inden itibaren gösteriyor. Aslında Date tablosu yılın tüm tarihlerini içeriyor, öyleyse 2019’un 7.ayının 20’sine kadarki tüm günlerini içeriyor olmalı ama bize neden sadece satış yapılmış günleri getirdi? Çünkü en başta dediğimiz gibi default davranış olarak, sadece Satışlar tablomuzda da var olan, eşleşen tarihleri getirir.
Seçilen aralıktaki tüm takvim günlerini göstermesi için, Field bölümünden Date’in alt ok simgesine tıklayıp açılan listeden Show items with no data seçeneği seçeriz.
Böylece seçtiğimiz tarih aralığında satış yapılmamış günleri de görebilir ve nedenleri araştırmaya başlayabiliriz!
Eğer tüm takvim günlerine sahip olan bir Date table olmasaydı, zemine onu yerleştirmeseydik, satış tablosu üzerinden satış yapılmamış günleri görmek çok daha zor ve anlamsızca yorucu olurdu.
Date Table’ın diğer kolonları ile gösterebileceklerimiz;
Hazır olarak eklediğimiz Date Table’ın içinde bize lazım olabilecek tarihin tüm kırılımları mevcut. X aksise hafta numarasını taşıyıp yılın haftalarına göre satışlar/üretimler ya da haftanın günlerini taşıyıp ona göre satışlar/üretimler gibi kırılımlar görülebilir..
Yılın Haftaları Bazında;
Haftanın Günleri Bazında;
Konunun Üzerine Sohbet Bölümü
Aslında Date table, bir nevi Shared Dimension mantığıdır. Örneğin siz iki fact table’ı marka isimlerine göre filtreleyebilmek istiyorsanız tüm markaların içinde bir kez yazdığı bir Dim table ekleyip fact table’larınızı bu Dim table ile bağlayabilirsiniz. Bu konu ile bağlantısı ne?
Marka bazlı hiç satış yapmamış markaları bulmak istiyorsunuz diyelim, ama artık biliyorsunuz ki satışlar tablosu sadece satış yapılmış markaları gösterir! O halde grafiğinizin X aksisine yeni oluşturduğunuz Marka tablosundan marka bilgisini çekip, yukarda anlatıldığı biçimde “Show values with no data” seçeriz! Bu grafik, sizin diğer seçtiğiniz tarih, il vb. kırılımlara göre filtrelenir, aynı zamanda o seçimlerde hiç satış yapmamış markaları da göstermiş olur 2019 yılında, Kasım ayında, İstanbul EMAR AVM’de, Kadın reyonunda hangi marka ne kadar satmışa bakarken, hiç satış yapmamış marka varsa onu da tespit etmiş olursunuz. Ya da üretim tezgahlarınızdan hangisi 1 günde kaç kere durmuş, hangi zamanlarda durmuş?
Kısaca Date Table ekleme;
Bağlandığınız kaynakta Date table varsa ve ihtiyacınızı karşılayan sütunları varsa onu kullanabilirsiniz. Dışarda oluşturup içeri alanlar da var. Ben şimdi Power BI Modeli’ne Dax ile eklemeyi yazacağım.
1) Modeling Sekmesi / New Table butonuna basınca görünen formül çubuğuna, aşağıdaki kodu alıp yapıştırıp Enter tuşuna basın.
Date =
ADDCOLUMNS (
CALENDAR (DATE(2000;1;1); DATE(2025;12;31)+365);
“DateAsInteger”; FORMAT ( [Date]; “YYYYMMDD” );
“Year”; YEAR ( [Date] );
“Monthnumber”; FORMAT ( [Date]; “MM” );
“YearMonthnumber”; FORMAT ( [Date]; “YYYY/MM” );
“YearMonthShort”; FORMAT ( [Date]; “YYYY/mmm” );
“MonthNameShort”; FORMAT ( [Date]; “mmm” );
“MonthNameLong”; FORMAT ( [Date]; “mmmm” );
“DayOfWeekNumber”; WEEKDAY ( [Date];2 );
“WeekNumber”; WEEKNUM ( [Date];2 );
“DayOfWeek”; FORMAT ( [Date]; “dddd” );
“DayOfWeekShort”; FORMAT ( [Date]; “ddd” );
“Quarter”; “Q” & FORMAT ( [Date]; “Q” );
“YearQuarter”; FORMAT ( [Date]; “YYYY” ) & “/Q” & FORMAT ( [Date]; “Q” )
)
2) Oluşan tabloyu Fields bölümünde görebilirsiniz. İçindeki sütunları incelemek isterseniz ok ile gösterdiğim Table bölümünden bakabilirsiniz.
Power BI’ın artık bu tabloyu Date table olarak kabul etmesi ve Date table kurallarına göre hatalarım beni uyarabilmesi için Tablomu “Date Table” olarak işaretlemem gerekir. Bunun için Modeling sekmesinden Mark as Date Table ve ardından tekrar seçeneklerden Mark as Date Table’a tıklarız.
Oluşan Table, Calendar satırında belirtilen başlangıç tarihinden bitiş tarihine kadar tüm tarihler için bir satır oluşturur. Ki biz bunu sevmeyiz çünkü en basitinden slicer’da bile 2000 yılından 2025 yılına kadar bir aralık gözükmesine sebep olur. Kendi veri aralığımıza göre dinamik olması için o satırı aşağıdaki şekilde değiştirebiliriz.
CALENDAR (FIRSTDATE(Table1[Tarih]); LASTDATE(Table1[Tarih]));
Böylece kendi verilerimizin ilk ve son tarihleri arasında bir Date table oluşur. Gelecek tarihlere ihtiyacınız olduğunda, dinamik tarih + 1 yıl fazla olmasını isterseniz aşağıdaki şekilde değiştirebilirsiniz.
CALENDAR (FIRSTDATE(Table1[Tarih]); LASTDATE(Table1[Tarih])+365);
Date table ekledikten sonra Power BI’ın modelde gördüğü tüm tarihler için oluşturduğu ve hafızasında yer kaplayan yıl, ay, month ve Day kırılımlı tarih tablosunu aşağıdaki adımları izleyerek kapatalım.
Power BI raporlarınıza başlarken modelinize mutlaka bir Date table eklemenizi tavsiye ederim. Tarih kolonları içeren farklı fact tablolarını tek bir slicer’dan filtrelemek, geçen yıl bugünkü satış cirosuna ulaşmak gibi Time Intelligence komutlarını kullanabilmek vb. birçok konu için tekrar etmeyen ve yılın tüm günlerini içeren bir Tarih tablonuz olmak zorundadır.
ve yine gördük ki herşeyin bir nedeni ve çözümü var
Daha fazla haber almak isterseniz #bicastle_tr instagram hesaplarımıza da bekleriz
Sevgiler