DAX

DAX nedir? Measure, context ve hesaplama mantığı

DAX, Power BI anlam modellerinde hesaplama geliştirmek için kullanılan formül dilidir. DAX’ı zorlaştıran şey fonksiyon sayısı değil, hesaplamanın hangi filtre bağlamında değerlendirildiğini anlamaktır.

11 dk okumaTürkçePower BI Bilgi Merkezi

Measure ve calculated column farkı

Calculated column veri yenilenirken satır bazında hesaplanır ve modelde saklanır. Measure ise sorgu anında mevcut filtre bağlamına göre değerlendirilir.

Toplam, oran, büyüme, dönem karşılaştırması ve KPI gibi analitik hesapların çoğu measure olarak tasarlanmalıdır.

Filter context neden önemlidir?

Bir görselde yıl, ürün, mağaza veya müşteri seçildiğinde Power BI measure’ı o filtreler altında yeniden değerlendirir. Aynı DAX ifadesinin farklı hücrelerde farklı sonuç üretmesinin temel nedeni budur.

CALCULATE, mevcut filter context’i değiştirebildiği için DAX’ın en temel yapı taşlarından biridir. ALL, REMOVEFILTERS ve KEEPFILTERS gibi filter modifier fonksiyonları bu davranışı kontrollü biçimde yönetmeye yardımcı olur.

Context transition nedir?

Satır bağlamının CALCULATE aracılığıyla filtre bağlamına dönüşmesi context transition olarak adlandırılır. Özellikle iterator içinde measure/ifade değerlendirilirken sonucun neden değiştiğini anlamak için bu kavram kritiktir.

Context transition ezberlenecek bir kuraldan çok, DAX ifadesinin hangi satır ve filtre bağlamında değerlendirildiğini adım adım okuyabilme becerisidir.

Iterator ve sanal tablolar neden önemlidir?

SUMX, AVERAGEX gibi iterator’lar bir tablo üzerinde satır satır ifade değerlendirir. FILTER, VALUES, ADDCOLUMNS veya SUMMARIZE gibi fonksiyonlarla birlikte kullanıldığında daha karmaşık iş hesapları kurulabilir.

Sanal tablo yaklaşımı; pay/oran, dinamik segmentasyon, sıralama ve özel toplam davranışları gibi ileri senaryoların temelidir.

Time intelligence nasıl sağlam kurulur?

YTD, önceki dönem veya rolling 12 ay gibi hesaplamaların güvenilir olması için doğru tarih tablosu, kesintisiz tarih aralığı ve model ilişkileri gerekir.

Hazır time intelligence fonksiyonları kadar mali takvim, özel dönem ve hareketli pencere senaryolarında filtre bağlamını doğru kurmak da önemlidir.

İyi ve performanslı DAX nasıl yazılır?

Önce doğru veri modeli kurulmalı, ardından ölçüler iş tanımlarına göre adlandırılmalıdır.

Değişkenler kullanılmalı, gereksiz tekrarlar azaltılmalı ve mümkün olduğunca iş mantığı semantik modelde merkezi tutulmalıdır.

Performans sorunu yalnızca DAX kodundan değil, yüksek kardinalite, gereksiz kolonlar ve kötü model tasarımından da kaynaklanabilir. Performance Analyzer ile sorunlu ölçüler ayrıştırılmalı ve model ile DAX birlikte değerlendirilmelidir.

Not: Power BI özellikleri ve lisanslama zaman içinde değişebilir. Üretim kararı verirken güncel Microsoft dokümantasyonuyla doğrulama yapılmalıdır.