DAX Nedir, Nasıl Çalışır, Zor mu?
Power BI ile çalışmaya başlayanların kısa süre içinde karşılaştığı kavramlardan biri DAX’tır. İlk bakışta Excel formüllerine benzeyen DAX, aslında ilişkisel bir veri modeli üzerinde çalışan ve raporun filtre bağlamına göre hesaplama yapan bir ifade dilidir. Bu nedenle DAX öğrenirken yalnızca fonksiyonların ne yaptığını bilmek yeterli değildir; veri modeli, ilişkiler, satır bağlamı ve filtre bağlamı da anlaşılmalıdır.
DAX nedir?
DAX, Data Analysis Expressions ifadesinin kısaltmasıdır. Power BI ve Microsoft’un tablo tabanlı veri modelleme teknolojilerinde hesaplamalar oluşturmak için kullanılır. Özellikle ölçüler, hesaplanmış sütunlar ve hesaplanmış tablolar oluştururken karşımıza çıkar.
DAX Excel formüllerinden neden farklıdır?
Excel’de çoğu hesaplama hücre ve hücre aralıkları üzerinden düşünülür. DAX’ta ise tablolar, sütunlar, ilişkiler ve rapora uygulanan filtreler birlikte değerlendirilir. Aynı ölçü, rapordaki ürün, müşteri veya tarih seçimine göre farklı sonuç üretebilir.
Ölçü ile hesaplanmış sütun arasındaki fark
Ölçü, kullanıldığı rapor bağlamında dinamik olarak hesaplanır. Hesaplanmış sütun ise veri modeli oluşturulurken satır bazında hesaplanır ve modelin bir parçası olur. Bu iki yapının kullanım amacı aynı değildir.
Filter context nedir?
Filter context, bir DAX ifadesinin hangi veri kümesi üzerinde hesaplandığını belirleyen bağlamdır. Slicer seçimleri, sayfa filtreleri, görsel filtreleri ve görseldeki alanlar bu bağlamı etkileyebilir.
Row context nedir?
Row context, DAX’ın belirli bir satır üzerinde çalıştığı bağlamdır. Özellikle hesaplanmış sütunlarda ve SUMX gibi iterator fonksiyonlarında önemlidir.
DAX zor mu?
Temel DAX fonksiyonlarıyla başlamak genellikle kolaydır. Zorluk, fonksiyon sayısından çok bağlam yönetiminden kaynaklanır. CALCULATE, FILTER, iterator fonksiyonları ve zaman zekâsı konuları ilerledikçe DAX’ın mantığı daha belirgin hale gelir.
DAX öğrenmeye nereden başlanmalı?
Önce SUM, COUNTROWS, DISTINCTCOUNT, DIVIDE gibi temel fonksiyonlar; ardından ölçüler, filter context, CALCULATE, FILTER ve iterator fonksiyonları öğrenilebilir. Daha sonra zaman zekâsı ve gelişmiş modelleme senaryolarına geçmek daha sistematik bir yol sağlar.
İlk DAX ölçünüz: satış ve sipariş sayısı
Örneği Power BI Desktop üzerinde uygulamak için Satis adlı tabloda Tutar ve SiparisNo sütunlarının bulunduğunu varsayalım. Her satır bir sipariş kalemi olabilir; bu nedenle sipariş sayısını satır sayısıyla karıştırmamak gerekir. Modelleme menüsünden Yeni ölçü seçeneğini kullanın ve aşağıdaki ölçüleri ayrı ayrı oluşturun. Kodlarda virgül ayırıcı kullanılmıştır; yerel DAX ayarınız noktalı virgül gerektiriyorsa ayırıcıları uyarlayın.
Toplam Satış = SUM(Satis[Tutar])
Sipariş Sayısı = DISTINCTCOUNT(Satis[SiparisNo])
Ortalama Sipariş Tutarı =
DIVIDE([Toplam Satış], [Sipariş Sayısı])
Örnek veride A siparişinin iki kalemi 100 ve 200 TL, B siparişinin tek kalemi 300 TL olsun. Toplam Satış 600 TL, Sipariş Sayısı 2 ve Ortalama Sipariş Tutarı 300 TL olur. COUNTROWS kullanılsaydı sonuç 3 kalem olurdu. SiparisNo alanında boş değer bulunmaması bu örneğin veri kalitesi varsayımıdır.
Aynı ölçü neden farklı hücrelerde farklı görünür?
Matrise ürün kategorisini eklediğinizde her satır o kategorinin filtre bağlamını oluşturur. Urun tablosundan Satis tablosuna aktif bir ilişki varsa kategori filtresi satışlara aktarılır. Toplam satırı ise ölçüyü bütün görünür kategorilerin ortak bağlamında yeniden hesaplar. Özellikle ortalama ve oranlarda bu sonuç, satır sonuçlarının toplamı değildir. Örneği önce kartta, sonra kategorili matriste deneyerek bağlamın etkisini gözlemleyebilirsiniz.
Sonuç
Power BI’da DAX konusunda başarılı olmak, yalnızca fonksiyonları ezberlemekten çok veri modelini ve hesaplama bağlamını anlamayı gerektirir. Gerçek projelerde doğru DAX; doğru model, doğru veri kaynağı ve doğru rapor tasarımıyla birlikte ele alındığında daha sürdürülebilir sonuç verir.
Sık Sorulan Sorular
DAX sadece Power BI’da mı kullanılır?
Hayır. DAX, Microsoft’un tablo tabanlı veri modeli kullanan farklı ürün ve teknolojilerinde de kullanılabilir.
DAX öğrenmek için SQL bilmek gerekir mi?
Zorunlu değildir; ancak SQL ve ilişkisel veri modeli bilgisi DAX öğrenmeyi kolaylaştırır.
DAX öğrenmek ne kadar sürer?
Süre kişiye ve hedeflenen seviyeye bağlıdır. Temel ölçüler kısa sürede öğrenilebilir; ileri seviye bağlam ve performans konuları ise uygulama gerektirir.
Danışmanlık
Power BI raporlarınızda DAX, veri modeli veya performans sorunları yaşıyorsanız mevcut yapınızı inceleyerek raporlama mimarisi, DAX optimizasyonu ve performans analizi konusunda danışmanlık desteği alabilirsiniz.
Kaynak
Power BI ve DAX danışmanlığı için iletişime geçin.
DAX serisinde okumaya devam edin
CALCULATE Nasıl Çalışır? · ALL, ALLEXCEPT ve REMOVEFILTERS Arasındaki Farklar · Power BI’da YTD, MTD ve QTD Hesaplamaları