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…

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…

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…

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…

Context = Filter Context + Row Context

Power BI 'da DAX ile bir formül yazdığımızda, her ne formülü olursa olsun, çalışmaya başlamadan önce, hesaplama yapacağı hücrenin (noktanın) context'ini bulur. Context -en basit tanımıyla-  ilgili hücreyi hesaplarken tabular engine'nin gördüğü filtrelenmiş veri kümesidir. Dilimleyicide kırmızı ve mavi renkler seçili: Tabular engine şu an formülü hesaplarken sadece ve sadece bu renk ürünlerin satışlarını görüyor. … Devamını Oku…

CALCULATE ve IN Kullanımı

Önceki yazıda OR ile CALCULATE 'in kullanımına ilişkin örnekler vardı, bu örnekleri IN ile biraz daha açalım. Örnekleri tekrarlamak gerekirse aşağıdaki iki formül de aynı, sadece OR yerine || kullanıldı: Yukarıdaki formüllerin okuması daha kolay olan bir alternatifi daha var: ( ) yerine { } kullanıldığına dikkat! Formüldeki filtre "boolean" tipinde bir filtre, dolayısıyla bunun internal … Devamını Oku…

CALCULATE ile AND OR Kullanımı

CALCULATE fonksiyonunun Boolean tipinde filtreler kulllanıldığında yazımı şu şekilde: Bu yazım şeklinde filtrelerin 'Ürünler'[Renk] = "Kırmızı" veya 'Ürünler'[Fiyat] > 10 gibi olması gerektiğini daha önce belirtmiştim. Birden fazla filtre kullanıldığında, CALCULATE 'tin yukarıdaki yazım şekli, verilen filtreleri . Modelimizdeki markası "Contoso" VE rengi "siyah" olan ürünlerin satışlarını hesaplayalım. Bu metrikleri düşürdüğümüz matrisin satırında veya sütununda … Devamını Oku…

CALCULATE ve Filtre Koşulları

CALCULATE ile birlikte kullanabileceğimiz filtre koşullarıyla ilgili örnekleri biraz daha açalım: Önceki örneklerde ( 1, 2 ) yazdığımız filtre koşulları hep üzerinde çalışan filtrelerdi : gibi. Yazıların çoğunda kullandığım Contoso veritabanındaki 'Ürünler' tablosunun yapısı resimdeki gibi: Birim fiyatı birim maliyetinin 2 katından fazla olan ürünlerin satışlarını CALCULATE ve filtre koşulları yazarak hesaplamaya çalışalım. Önce temel … Devamını Oku…

CALCULATE ve Basit Filtreler

DAX'ın en önemli fonksiyonlarından olan CALCULATE ile ilgili örneklere devam ederken sık yapılan kalıp hatalarını da biraz açmaya çalışalım. Önceki giriş yazısına da göz atmak isteyebilirsiniz. 'Satışlar' tablosundaki [Tutar] sütununu toplayan temel metriğimizle birlikte iki farklı CALCULATE formülü yazalım: Her iki formül de, kullandığınız görsele ne düşürdüğünüze göre bazen aynı sonucu verebilir. Fakat her iki … Devamını Oku…

CALCULATE ve Sort By Column

CALCULATE fonksiyonuna bir sütun üzerinden filtre -ya da condition- verdiğimizde, ilgili sütun üzerindeki tablolar arası ilişkilerden gelen doğal filtreleri kaldırır ve yazdığımız filtreyi uygular. Verdiğim örneği tekrarlamak gerekirse: Bu metriği [Satışlar] metriği ile bir matrise düşürdüğümüzde aşağıdaki gibi bir görünüm elde ederiz. Arka planda tabular engine yukarıdaki formülü şu şekilde çalıştırır: üzerindeki doğal filtreleri ALL … Devamını Oku…

CALCULATE Fonksiyonuna Giriş

Bu yazı Power BI ve DAX'taki en önemli fonksiyonlardan biri olan CALCULATE 'e giriş yazısı. CALCULATE fonksiyonunun yaptığı birden fazla iş var: Bunlardan biri mevcut "context" i değiştirmek. ** "Context", DAX'taki en önemli kavramlardan biri, bu yazıya ve yazı içinde linkini verdiğim diğer yazılara göz atmanızı tavsiye ederim. CALCULATE ile ilgili birkaç yazıdan sonra context … Devamını Oku…

FILTER, ALL ve Context Etkileşimi

Önceki yazıda FILTER kullanımına örnekler vermiştim, kısaca özetlemek gerekirse: FILTER, mevcut context'e yeni bir "condition" ekleyerek tabular engine'in gördüğü veri setini daraltır. Kategorideki ürün sayısını ve siyah ürün sayısını hesaplamak üzere aşağıdaki gibi iki metriğimiz var. Her ikisini de bir matrise düşürüyorum, renk için "slicer" ekleyip herhangi bir seçim yapmıyorum. Daha önce yazdığım basit ama … Devamını Oku…

FILTER

FILTER tablo fonksiyonlarından biri, yani döndürdüğü şey bir tablo, aynı zamanda bir iterator. Yani üzerinde çalıştığı tablodaki her bir satır için işlem yapar. Yazımı gayet basit : FILTER'ın sonucunda geri dönen tablo, orijinal tabloyla aynı sütunlara sahip, fakat sadece verilen "condition"'a uyan satırların olduğu tablodur. FILTER, genellikle bizden bir tablo isteyen diğer fonksiyonlarla birlikte kullanılır. … Devamını Oku…

RELATED ve RELATEDTABLE

Daha önce iterator fonksiyonları, yani satır bazlı işlem yapan fonksiyonları SUMX üzerinden anlatırken, bu fonksiyonların tablolar arası ilişkilerin farkında olmadığını belirtmiştim. Fakat farketmelerini sağlayacak komutlar mevcut: RELATED ve RELATEDTABLE. Yazıda kullanacağım modelin tablolar arası ilişkileri ekteki gibi: Power BI'da en sık kullandığımız ilişki tipi One-to-Many: One tarafındaki her bir tekil varlık için, Many tarafındaki tabloda … Devamını Oku…