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…

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

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…

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…

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…

LASTDATE, FIRSTDATE

LASTDATE hemen her projede en az bir kez ihtiyaç duyabileceğimiz fonksiyonlardan. İsimden tahmin edilebileceği gibi ekürisi de var: FIRSTDATE. LASTDATE ( 'TabloAdı'[Tarih Sütunu] ) ve döndürdüğü şey, gördüğü mevcut filter context'teki en son tarihtir. Dönen tarih, tek bir değer dönüyor olsa da bir tablodur, . Dolayısıyla bizden parametre olarak tablo isteyen başka fonksiyonlarla birlikte kullanılabilir. … Devamını Oku…

Expanded Tables – Giriş

Expanded Tables, DAX'ın üzerinde koştuğu en önemli konseptlerden biri. Aslında davranışını neredeyse biliyoruz, hem ilişkilerin çalışma şeklinden dolayı, hem de RELATED gibi fonksiyonlardan dolayı. Diğer temel konseptlere de göz atmak isterseniz buradan: Filter Context, Row Context, Context Transition. Modeldeki tablolar ve ilişkiler aşağıdaki gibi: Çok basit SUM alan temel [Satışlar] metriği ile birlikte Alt Kategorilerin … Devamını Oku…

Power BI Projeleriniz İçin Öneriler

Yazının başlığını ne koyarsam daha doğru olur diye biraz düşündüm açıkçası, bugüne kadar gelen sorular, içinde bulunduğum projeler, Power BI ile bir şeyler yapmaya henüz yeni başlamış ve SQL bilgisi yüksek profiller, kullanılan ERP sistemini avcunun içi gibi bilenler, kendi alanına hakim power-user iş kullanıcılarını düşününce bazı gözlemlerimi ve değerlendirmelerimi aktarmak isterim. En sık karşılaştığım … Devamını Oku…

Hesaplanmış Sütun Olarak RANKX

Daha önce RANKX'in metrik olarak kullanımına ilişkin üç farklı yazı eklemiştim, 1, 2, 3, bu sefer de hesaplanmış sütun olarak kullanımına ilişkin örnekler vereceğim. Çünkü bu fonksiyon filter context, row context ve hesaplanmış sütun kavramlarının çalışma mantığını anlamak açısından çok güzel bir örnek. Ve DAX tamamen bu konseptler üzerinde dönüyor. Metrik olarak kullanımı kısaca özetlemek … Devamını Oku…

Kategoriler Dax

Groups, Bins

Power BI ile hazırlamış olalım veya olmayalım, tüm raporlarda kullanıcı ihtiyaç ve talepleri genelde çok benzer: Bir matristeki rakamları incelerken 1000 tane ürünü altalta görmek istemeyiz, en yüksek veya en düşük -diyelim- 30 ürüne odaklanmak isteriz. Görsellerde görüntülediğimiz ürün kategorileri, satış ekibi, müşteri sınıfı ya da masraf merkezi gibi modelimizde bulunan sütunları/değerleri gruplamak da benzer … Devamını Oku…

ISINSCOPE ve Rasyolar , % of Parent

Daha önce ALL ve ALLSELECTED fonksiyonlarını kullanarak rasyolarla ilgili bir yazı yazmıştım. Matristeki dip toplama göre % hesaplaması gayet kolay. Kolay olmayan, matriste birden fazla hiyerarşi olması durumunda, yüzdeyi her bir grup için kendi içinde ayrı ayrı hesaplamak. İdi. Power BI 'ın Kasım güncellemesinde gelen ISINSCOPE fonksiyonu ile bu da kolaylaştı. Örnek metriklere geçmeden önce, Analyze … Devamını Oku…

Kategoriler Dax

RANKX ve Parametreleri

RANKX ile ilgili örneklere devam ediyorum, filter context ve row context'i açmak adına çok güzel bir fonksiyon olduğunu yazarken daha iyi farkettim. Önceki yazılara da göz atmak isteyebilirsiniz: 1, 2 Aşağıdaki gibi bir veri setimiz var. Tutar değeri aynı olan birden fazla müşteri var ve bazı müşterilerde tutar yok. Metriklerimiz şöyle: Hepsini aynı matrise düşürüyorum. … Devamını Oku…

RANKX ile En yüksek N, En düşük N

Önceki yazıdan hareketle, raporlara bakarken bazen en büyük veya en küçük 10-20 X'i görmek isteriz: X bazen müşteridir, bazen üründür, bazen satış ekibidir. Öncelikle modele kullanıcının en yüksek veya en düşük seçimleri yapabilmesi için bir tablo ekliyorum: Bunu yapmak için de tabındayken butonunu tıklıyorum ve karşımıza çıkan tabloyu ihtiyaca uygun şekilde doldurup Load diyorum. Modele … Devamını Oku…

Kategoriler Dax

RANKX, Metrik Kullanımı

RANKX fonksiyonuna daha önceki EARLIER yazısında bir giriş yapmıştık. Fonksiyonu hem hesaplanmış sütun hem de metrik olarak örneklendireceğim, zira gelen soruların büyük bir kısmı bu iki konsept arasındaki farkların biraz daha açılması gerektiğini gösteriyor. Bu yüzden muhtemelen bir ikinci yazı daha yazacağım RANKX ile ilgili ve muhtemelen her iki yazı da normalden uzun olacak, baştan … Devamını Oku…