DAX nedir?
DAX (Data Analysis Expressions), Power BI modelindeki hesapların dilidir. Excel formüllerine benzer ama hücreyle değil tablolar ve sütunlarla çalışır. Bir DAX formülü üç şeyden birini üretir:
| Ölçü (measure) | Hesaplanmış sütun | Hesaplanmış tablo | |
|---|---|---|---|
| Ne zaman hesaplanır? | Görsel her çizildiğinde, o anki filtrelere göre | Yenileme sırasında, her satır için bir kez | Yenileme sırasında |
| Nerede saklanır? | Saklanmaz (yalnızca formül) | Modelde, bellekte yer kaplar | Modelde |
| Tipik kullanım | Toplamlar, oranlar, büyüme | Satırı sınıflandırmak (Yaş grubu, Fiyat bandı) | Tarih tablosu, yardımcı tablolar |
| Örnek | Toplam Satış = SUM(Satislar[Tutar]) | Tutar = Satislar[Adet] * Satislar[BirimFiyat] | Tarih = CALENDAR(...) |
Yazım kuralları
- Ölçü adı, eşittir, ifade:
Toplam Satış = SUM(Satislar[Tutar]) - Sütunlar her zaman tablo adıyla:
Satislar[Tutar]. Boşluklu tablo adı tek tırnakla:'Satış Tablosu'[Tutar]. - Ölçüler tablo adı olmadan, köşeli parantezle:
[Toplam Satış]. Böylece okuyan kişi sütun ile ölçüyü ayırt eder. - Metinler çift tırnakla:
"Web". Bağımsız değişkenler virgülle ayrılır. - Satır sonları ve girinti serbesttir; okunabilirlik için kullan. Yorum:
// açıklama
İlk ölçün
Toplam Satış = SUM(Satislar[Tutar])
Bu ölçüyü bir karta koyarsan tüm satışların toplamını, kategoriye göre bir sütun grafiğine koyarsan her kategorinin toplamını görürsün. Formül aynı, sonuç bağlama göre değişir. DAX'ın en önemli fikri budur; Orta seviyedeki Filtre bağlamı dersinde ayrıntısıyla göreceğiz.
Alıştırmalarda yalnızca ifadeyi yazman yeterli; ölçü adı verilmiştir. İstersen Ad = önekini de yazabilirsin. Sonucun, toplamda ve kategori / yıl kırılımlarında doğru çözümle karşılaştırılır.
Ölçünü adım adım oluştur
- Veri bölmesinde ölçünün “yaşayacağı” tabloya sağ tıkla → Yeni ölçü. Şeritte Giriş ya da Modelleme sekmesindeki Yeni ölçü düğmesi de aynı işi yapar.
- Şeridin altında formül çubuğu açılır.
Ölçü = ...yazısını sil, kendi formülünü yaz. - Enter ile onayla. Birden çok satır yazmak için Shift + Enter.
- Ölçü seçiliyken Ölçü araçları sekmesinden biçimi (para birimi, yüzde, ondalık) ayarla.
- Ölçüyü bir karta ya da tabloya koyup sonucu kontrol et.
Formül yazarken Power BI öneri listesi açar. [ yazınca ölçüler, tablo adını yazınca o tablonun sütunları listelenir. Listeden seçmek yazım hatalarını önler.
Ölçüler nerede yaşar?
Ölçü verinin içinde saklanmaz; yalnızca formülü saklanır. Hangi tablonun altında göründüğü (giriş tablosu) sadece düzen içindir, hesabı değiştirmez. Çok ölçülü modellerde ekipler boş bir “_Ölçüler” tablosu açıp tüm ölçüleri orada toplar ve klasörlere ayırır. Her ölçüye bir açıklama yazarsan, ölçünün üzerine gelen kişi “bu iptalleri içeriyor mu?” sorusunun cevabını hemen görür.
İşleçler: dört işlem ve fazlası
| İşleç | Anlamı | Örnek |
|---|---|---|
+ - * / | Dört işlem | SUM(Satislar[Tutar]) / 1000 |
& | Metinleri birleştirir | "Yıl: " & 2024 |
= <> > < >= <= | Karşılaştırma | Satislar[Durum] <> "İptal" |
&& ve || | VE / VEYA | Satislar[Adet] > 1 && Satislar[Kanal] = "Web" |
Yönetim kurulu sunumunda sayılar binlik gösterilmek isteniyor. Bir ölçüyle bunu yapabilirsin:
Satış (Bin) = SUM(Satislar[Tutar]) / 1000
Bu modelde sonuç yaklaşık 1.346,2 olur; yani iptaller dahil toplam tutar 1.346.190 ₺. Aynı işi ölçünün biçim ayarıyla (görüntü birimi: Bin) da yapabilirsin. Fark şu: biçim yalnızca görünüşü değiştirir, bölme ise sayının kendisini değiştirir. Başka bir ölçü bu ölçüyü kullanacaksa biçim ayarı daha güvenlidir.
İlk hata mesajların
| Ne yazdın? | Ne oldu? | Çözüm |
|---|---|---|
Satır Tutarı = Satislar[Tutar] | “Tek bir değer belirlenemiyor” hatası | Ölçü tek bir sayı döndürmeli. Sütunu bir toplayıcıya sar: SUM(Satislar[Tutar]). |
SUM(Satis[Tutar]) | Tablo ya da sütun bulunamadı | Adı öneri listesinden seç; tablonun adı Satislar. |
SUM(Satislar[Tutar] | Söz dizimi hatası | Her açılan parantez kapanmalı. |
Satır Tutarı = Satislar[Tutar] -- hatalı: ölçüde çıplak sütun
Neden hata? Bir ölçü bir kartta tek bir sayı göstermek zorundadır. Satislar[Tutar] ise 1.620 satırlık bir sütundur; Power BI hangisini göstereceğini bilemez. Aynı ifade bir hesaplanmış sütunda çalışır, çünkü orada her satır kendi değerini alır. Bu farkın adı satır bağlamıdır; Filtre bağlamı ve satır bağlamı dersinde ayrıntısıyla göreceksin.