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…

Quick Measures

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. İ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 … Devamını Oku…

Power BI + AI

Power BI her ay güncelleniyor, durağan bir uygulama kesinlikle değil. Son dönemde duyurulan yeniliklerden biri yakın zamanda gelecek olan AI (yapay zeka) özellikleri. Veri bilimi ve makine öğrenimiyle ilgilenenlerin kayıtsız kalmaması gereken yenilikler. Önce mevcut durumdaki kabiliyetlere değineyim: Quick Insights : Yaklaşık bir yıldan biraz daha uzun bir süredir kullanımda, ilk çıktığında çok limitli bir … Devamını Oku…

Zaman Hesaplamaları -4, Hafta Karşılaştırma

Aynen kümülatif zaman fonksiyonlarında olduğu gibi, dönem karşılaştırma fonksiyonlarında da haftalık hesaplama için kullanabileceğimiz doğrudan bir fonksiyon yok. En esnek DATEADD fonksiyonunda dönem (interval) olarak gün, ay, çeyrek veya yıl seçebiliyoruz. Hafta yok. Haftanın standart bir tanımı yok, gerekçesi de bu. Kullandığım tarih tablosunda ilgili günün yılın hangi haftasına ait olduğunu gösteren bir "Hafta No" … Devamını Oku…

Zaman Hesaplamaları -3, Dönem Karşılaştırma

Tüm modellerde, zamanla ilgili kümülatif hesaplamalara ek olarak dönem karşılaştırma metrikleri de istisnasız lazım oluyor. Önceki aya göre, önceki yıla göre, önceki yılın göre gibi metrikler her modelin içermesi gereken metriklerden. Uyarımı son kez tekrarlayayım, Tarih tablosu her modelin vazgeçilmez tablosudur ve özel bir tablodur. Transaction tablolarındaki tüm tarihleri içermesi tek başına yetmez, transaction tablolarında … Devamını Oku…

Zaman Hesaplamaları -2, Kümülatifler

Önceki yazıda aylık, çeyrek bazında ve yıllık kümülatifleri kolaylıkla bulduk, çünkü hepsine karşılık gelen bir"time intelligence" fonksiyonu var. Fakat haftalık kümülatife doğrudan karşılık gelen bir fonksiyon yok! Bunun bir kaç sebebi var: Hafta tanımı sabit bir tanım değil, ilk hafta her yılın 1 Ocak günü mü başlıyor, yoksa ilk Pazartesi mi başlıyor, Şubat'ın 29 çektiği … Devamını Oku…

Zaman Hesaplamaları -1, Kümülatifler

İstisnasız tüm Power BI modellerinde bize lazım olan metrik gruplarından biri de zamana göre karşılaştırma metrikleri; önceki aya göre artış, önceki yıla göre varyans ya da geçen yılın tamamına göre neredeyiz gibi metrikler. Zaman periyotlarına göre -ki periyot gün, ay, çeyrek ya da yıl olabilir- karşılaştırma için bize lazım olan fonksiyon grubu "time intelligence" grubundaki … 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…

ALL, ALLSELECTED ve Rasyolar

Power BI 'da bize en çok lazım olan metrik gruplarından biri de rasyolar, yani yüzde hesaplamaları. Bunun için bize lazım olan fonksiyonlar CALCULATE ile birlikte ALL ve ALLSELECTED.  Daha önce ALL ile örnekler yapmıştık. 1, 2, 3. ALL fonksiyonuna parametre olarak ya bir sütun(lar) verebiliriz ya da bir tablo. Hangisini verdiysek, ilgili sütunu veya tabloyu … Devamını Oku…

CALCULATETABLE

Daha önceki CALCULATE yazılarında FILTER, AND ve OR kullanımına ilişkin örnekler yapmıştık. Örnekleri kısaca tekrarlayıp konuyu CALCULATETABLE 'a bağlayacağım. Contoso markalı siyah ürünlerin satışlarını hesaplamak için aşağıdaki gibi boolean tipinde filtrelerle CALCULATE fonksiyonunu kullanmıştık. CALCULATE'in filtrelerinin boolean tipi olması durumunda formülün internal açılımının FILTER ( ALL …)  şeklinde olması önemli bir detay, bu yüzden tekrarlayacağım. … Devamını Oku…

ISFILTERED, ISCROSSFILTERED

Filter context'i ve filter propagation 'ı (filtrelerin akmasını) biraz daha iyi anlamamızı sağlayacak ISFILTERED ve ISCROSSFILTERED fonksiyonlarını açalım. Bu fonksiyonları ileriki yazılarda özellikle matris görselinde bazı rasyo hesaplamalarında kullanacağız. , verdiğimiz sütun üzerinde doğrudan bir filtre varsa TRUE döndürür, değilse FALSE döndürür. Doğrudan filtre olması demek, ilgili sütunun matriste satıra veya kolona düşürülmesi  ya da dilimleyide … Devamını Oku…

Kategoriler Dax

Kur Tablosu Üzerinden FILTER, VALUES ve MAX

Power Query 'de liste oluşturma ve merge yapma işlemleri için daha önceki yazıda kur tablosu örneğini vermiştim. Özetlemek gerekirse, farklı para birimleri üzerinden satış satırlarımız ve belirli tarih aralıkları için geçerli bir kur tablomuz vardı. Satışların olduğu tabloya, ilgili satırdaki kurun ilgili tarihteki kurunu getirip aşağıdaki forma sokmuştuk. Aynı örneği bir de DAX ile yapalım. … Devamını Oku…

Kategoriler Dax

Değişken Kullanımı, VAR

Power BI 'da kompleks DAX formüllerini yazmayı kolaylaştıran değişken (variables) yapısı var. Önceki yazıda bir giriş örneğini  yaptığımız değişken kullanımına farklı örnekler verelim. Aşağıdaki gibi metriklerimiz var: satış yapılan müşteri değişken kullanarak bulalım. Değişken isimleri arada boşluk veya Türkçe karakterleri desteklemiyor. Burada bilinmesi gereken nokta . Kullanıldığı yerde . Değişkenin tanımlandığı yer  VAR ile başlayan … Devamını Oku…

Context Transition

DAX 'taki en önemli fonksiyonlardan biri olan CALCULATE 'in sahip olduğu kabiliyetlerden biri de . Formal tanımı şu şekilde: CALCULATE, bir row context altında çalışırken, ilgili row context'i eşleniği olan filter context'e çevirir. Bu ne demek açalım. Daha önce aggregator ve iterator fonksiyonlara SUM ve SUMX üzerinden giriş yaptığımız yazıda  "Ürünler" tablosuna şöyle bir hesaplanmış … Devamını Oku…

List ve Merge, Kur Tablosu

Power BI 'da sık karşılaşılan durumlardan biri de yabancı para birimi cinsinden yapılan işlemlerin bir kur tablosu üzerinden TL'ye çevrilmesi. DAX ile çözmek de pekala mümkün, fakat bu tür durumlarda Power Query'nin gücünden faydalanmak daha hızlı ve kolay. Aşağıdaki gibi bir veri setimiz var: Farklı tarihlerde farklı para birimleri üzerinden yapılmış satışlarımız var, kur tablosunda … Devamını Oku…

EARLIER

Power BI 'daki "context" kavramı ile ilgili yazıda, iterator fonksiyonlar, verdiğimiz tablodaki  filter context üzerine  yeni bir row context ekler, bunun tek istisnası önceki context'in bir filter context değil de, aynı tablo üzerindeki bir başka row context olması durumunda gerçekleşir, bu durumda yeni yaratılan row context, önceki row context'i gizler, görmezden gelir diye yazmıştım. Bu -kafa karıştırıcı- cümleyi biraz açalım. … Devamını Oku…

Kategoriler Dax

Çoklu Firma, Kompozit Anahtar

Power BI ile ilgili sık gelen sorulardan biri, çoklu şube-çoklu firma modelinde ilişkilerin nasıl oluşturulacağı yönünde. Örneğin aşağıdaki gibi bir data yapısı olsun: Master ürünler tablosunda ürün kodları birden fazla firmada aynı olabilir! Power BI'da iki tablo arasında ilişki kurabilmenin genel kuralları şöyle: İki tablo arasında ilişki tek sütun üzerinden kurulabilir. İlgili sütunların tipi her … Devamını Oku…