Statik Gruplama, Fatura Yaşlandırma Örneği

Power BI 'da hangi konuyla ilgili model kurarsak kuralım ihtiyaç duyduğumuz şeylerden biri de modeldeki varlıkları -ürün, kategori, renk, hesap kodu vs- nümerik değerlerine göre gruplara ayırmak, bir nevi segmentasyon yapmak. Gruplama İngilizce jargonda diye de geçiyor. Fatura yaşlandırma bu gruplama ihtiyacının en çok lazım olduğu konulardan biri. Temel olarak iki farklı gruplama şekli oluşturabiliriz: … Devamını Oku…

Veri Modeliniz Doğru mu?

Son zamanlarda sıklıkla karşıma çıkmaya başlayan örnek bir veri seti var. Farklı kişi/kurumlardan benzer veri örnekleri artmaya başlayınca yazmak istedim. Veri seti temelde şuna benziyor: Tabloda ürün satılıyorsa -örneğin- Ürün ID sütunu da var, finansal bir hareketse müşterinin cari kodu da var vs. Ama gördüğüm bu veri setlerinin en büyük ortak yanı , artı bunlar … Devamını Oku…

CALCULATETABLE vs FILTER

Power BI 'da birbirine benzeyen -fakat semantiği, yani çalışma tarzları-mantıkları tamamen farklı olan- tablo fonksiyonlarına çok belirgin bir örnek var: CALCULATETABLE ile FILTER.  Her ikisi de tablo fonksiyonu. Yani döndürdükleri şey bir tablo.  Bazı durumlarda her ikisi de benzer işlevi görebilir, hatta aynı sonuçları üretebilir. Daha önce hem CALCULATETABLE hem de FILTER ile ilgili giriş … Devamını Oku…

Varyans Analizi (Price Volume Mix …)

Power BI ile yapılan satış, satış/bütçe modellerinin tamamında yaptığımız hesaplamalardan biri de varyans analizi. Yapılması da şart zaten, fakat gördüğüm birçok modelde sadece önceki seneye -veya bütçeye göre- basit gelir/miktar karşılaştırılması yapılıyor ve aradaki fark -yüzde veya rakamsal olarak- gösteriliyor. Varyans analizi gerçekleşenle hedefin kırılımlı karşılaştırılması üzerine bir teknik. Ki hedef genelde ya bütçedir ya … Devamını Oku…

SUMMARIZE ve ADDCOLUMNS

Power BI 'da -ya da DAX 'ta diyelim- kompleks metrikleri kolay yazmanın yolu tablo fonksiyonlarını iyi anlamaktan geçiyor. Bugüne kadar yazdığım yazılarda  bahsi geçen VALUES gibi, DISTINCT gibi, FILTER gibi, ALL ve ekürileri gibi bir çok fonksiyon bu gruba dahil. Tablo fonksiyonu demek -basitçe- bu fonksiyonları kullandığımızda, anlamına geliyor. Dönen tablo DISTINCT veya VALUES 'ta … Devamını Oku…

Kategoriler Dax

Rastgele Rakam Üretme (Sorunu)!

Daha önce başıma geldiğinde sadece notunu alıp sonradan yazmayı unuttuğum -sinir bozucu- bir durum dün tekrar başıma gelince sıcağı sıcağına yazayım dedim! Projelerde tablolara bazen rastgele (random)  rakamlar içeren sütunlar ekleme ihtiyacı oluyor. Örneğin henüz verisi doldurulmamış rakamsal bilgi içeren bir sütun oluyor çekeceğiniz tabloda, boş veriyle çalışmaktansa rastgele rakamlar türetmeyi tercih ediyorsunuz. Power BI … Devamını Oku…

Hesaplanmış Sütun Olarak Kümülatif Toplam Alma

Power BI 'da DAX ile kümülatif toplam alma yazısından sonra "Kümülatif toplamları hesaplanmış sütun olarak nasıl yapabiliriz?"  soruları geldi. Önceki yazının devamı olarak eklemek istedim. Kategori bazında yıllık ve aylık satışları içeren oluşturalım. Bunu da SUMMARIZE ile yapalım, sonraki yazıların konusu olacak gruplama ve tablo oluşturma yazılarına da basit bir giriş olmuş olur böylelikle. Modelling … Devamını Oku…

Kategoriler Dax

Kümülatif Toplam Alma

Power BI 'da farklı şekillerde kümülatif toplamlar almaya ihtiyaç duyuyoruz. Zaman bazında kümülatif almak için gerekli fonksiyonlar "Time Intelligence" grubu diye geçiyor. Hatırlamakta fayda var, her modelin istisnasız olmazsa olmaz tablosu olan tarih tablosu bu fonksiyon grubunun çalışması için elzem. Zaman bazlı yazılara göz atmak isterseniz buradan! Zaman bazlı olmayan durumlar için de kümülatiflere ihtiyacımız … Devamını Oku…

Kategoriler Dax

ALL + VALUES vs ALLEXCEPT

Önceki yazının tamamlayıcısı olarak, birbirine yakın gibi duran ama iki farklı kalıbı karşılaştıralım: ALL + VALUES ile ALLEXCEPT arasındaki farklar ve benzerliklere değinelim. Kullandığımız yere göre her iki kalıp da zaman zaman aynı sonucu verebilir ama semantikleri tamamen farklı. Aşağıdaki gibi iki metriğimiz var: [Tüm Satışlar] metriğine ALL('Tarih') ile Tarih tablosundaki tüm filtreleri kaldır dedik, … Devamını Oku…

VALUES ( )

Power BI 'da ya da DAX'ta diyelim bazı fonksiyonların işlevi gayet belli ve tek: Diyelim USERELATIONSHIP, amacı belli, kullanımı açık! Ama bazı fonksiyonlar var ki işlevi itibariyle çok yaratıcı formüller yazmak için kullanılabilir: VALUES () bunlardan biri. Çalışma mantığını iyi anlamak kaydıyla birçok farklı durum için kullanılabilir. , aynı ALL() gibi bir tablo fonksiyonu: Yani … Devamını Oku…

İki Eksenli Görseller

Power BI 'da hazırladığımız rapor sayfalarında bazen görmek isteriz, fakat düşürdüğümüz metriklerin değer büyüklükleri birbirinden çok farklı ise istediğimiz görüntüyü elde edebilmek için doğru görseli kullanmak önemli, format tabındaki (fırça tabı)  opsiyonlardan da haberdar olmak gerekiyor. Microsoft son 3-5 ay içerisinde bir çok görselin format opsiyonlarına bir çok yenilikler ekledi. Aylık güncelleme videolarını kaçırmamanızı önereceğim. … Devamını Oku…

Dilimleyiciler Hakkında Her Şey

Tüm Power BI modellerinde kullandığımız belki de en yaygın görsel şekli dilimleyiciler, yani slicer'lar.  Hazırladığımız raporları -tarih de dahil olmak üzere- herhangi bir boyuta göre filtrelemenin en uygun yolu dilimleyicileri kullanmak. Dilimleyiciler ilk çıkışına göre geliştirildi, özellikler eklendi, son nihai hallerine daha fazla özellik eklenmez diye tahmin ediyorum. Yeterince göz önünde olmayan özelliklerinden bahsetmekte fayda … Devamını Oku…

Dilimleyicileri Senkronize Etmek, Visual Level Filter Kullanımı

Power BI 'daki bir çok görselin varsayılan davranış şekli, görsele eklediğimiz metriğin boş değer döndürmesi durumunda (misal hiç satışı olmayan ürün gibi) ilgili sütunu-değeri hiç göstermemek şeklinde. Örnek modele göre, bir çok ülke ve şehirde mağaza var fakat sadece 3 ülke ve şehirde  satış gerçekleşmiş.  [Satışlar] metriğini  düşürdüğüm matrislerde sadece satışı olan ülke ve şehirler … Devamını Oku…

Hiyerarşiler, PATH, PATHITEM

Tabular engine, yani Power BI 'ın analitik motoru, parent-child hiyerarşi yapısını doğrudan desteklemiyor. MDX'teki gibi doğrudan bir destek yok, bunun yerine hiyerarşileri sütun bazlı yapıya çevirmemizi sağlayacak fonksiyonlar var: PATH, PATHITEM vs gibi. Hiyerarşiden neyi kastettiğimizi açalım, aşağıdaki gibi bir veri setimiz var: Tüm ERP'lerdeki hesap planları üç aşağı beş yukarı bu yapıya benziyor, tüm … Devamını Oku…

Yeni DAX Fonksiyonları – REMOVEFILTERS, CONVERT, Eylül Yenilikleri, Temalar

Power BI 'a Eylül ayı içerisinde gelen güncellemeler arasında yeni iki tane DAX fonksiyonu var: ve . DAX 'ın ilk versiyonu PowerPivot'un da ilk çıkış yılı olan 2011'de çıktı. DAX v2, yani ikinci versiyonu aşağı yukarı bundan üç yıl sonra çıktı. Bu tarihten sonra ara ara yeni fonksiyonlar eklendi, ekleniyor. Bunların bazıları hakikaten versiyon 1 … Devamını Oku…

Bir Görseli Başka Bir Metriğe Göre Sıralama

Power BI projelerinde zaman zaman farklı sıralama ihtiyaçlarıyla karşılaşıyorum.  Bunların bir çoğunu Sort By Column ile çözmek genellikle mümkün oluyor. Tüm görsellerdeki varsayılan sıralama şekilleri, görsele düşürülen (satıra, sütuna, X-Y eksenine, değer alanına vs) metriklere veya sütunlara göre alfabetik olarak A'dan Z'ye , Z'den A'ya ya da nümerik ise büyükten küçüğe küçükten büyüğe şeklinde. Resimdeki … Devamını Oku…

Köprü Tablosu, Çift Yönlü İlişkiler, Pivot Tablo

Power BI projelerinin en önemli kısmı veri modelinin doğru tasarlanması. Yanlış/hatalı veri modeli üzerinde DAX'ı ne kadar iyi bilirsek bilelim taklalar atmak bir noktadan sonra zor. Doğru veri modelini kurmak -özellikle tek bir fact tablosunun olduğu modellerde- çok zor değil, her şey dönüp dolaşıp – veya – bağlanıyor. Fakat bazı ERP'lerin tasarımına bağlı olarak özellikle … Devamını Oku…

Sütunları Seçmek ya da Sütunları Uçurmak !

Her Power BI modeline başlarken genelde veri tarafında view'larla veya Excel dosyalarıyla çalışıyoruz. Kullanacağımız veri seti nihai halini alana kadar da bazen kullandığımız bu setlerdeki sütunları değiştiriyoruz, ekliyoruz, çıkartıyoruz. Power Query için eğitimlerde sarfettiğim standart best practice cümlelerinden biri şu : Sadece kullanacağınız sütunları alın, diğer sütunları -belki lazım olur diye bile olsa- almayın! Peki … Devamını Oku…

LASTDATE vs MAX

Herhangi bir transaction (fact) tablosundaki son değeri, son tarihi (veya ilkini) bulmak için LASTDATE, LASTNONBLANK ve MAX gibi fonksiyonları kullanabiliriz. Önceki yazılarda LASTDATE ve LASTNONBLANBK 'a değinmiştim. Tabii bunların ekürilerinin olduğunu da biliyoruz: FIRSTDATE, FIRSTNONBLANK ve MIN. LASTDATE ile LASTNONBLANK arasındaki farklar nispeten bariz. Ama LASTDATE ile MAX arasındaki farklar o kadar net değil. Bu … Devamını Oku…

LASTNONBLANK, FIRSTNONBLANK

LASTNONBLANK -ve ekürisi olan FIRSTNONBLANK-  isimlerinden de anlaşılacağı üzere mevcut context'teki ilk ve son değeri döndüren iki fonksiyon. Syntax'ları aşağıdaki gibi: Fonksiyona verdiğimiz sütun adı, doğrudan bir sütun referansı olabileceği gibi, sonucu tek sütunluk bir tablo olan başka bir tablo fonksiyonu da olabilir. Sonu X ile biten fonksiyonların (SUMX, AVERAGEX ..) iterator olduğunu biliyoruz, ama … Devamını Oku…