DAX Temelleri — İlk Formülleriniz

DAX Nedir

DAX (Data Analysis Expressions); Power Pivot, Power BI ve Analysis Services ürünlerinde veri modeli üzerinde formül yazmak için kullanılan ifade dilidir. Klasik Excel formüllerinden farklı olarak hücre değil tablo ve sütun düzeyinde çalışır. Bir DAX ifadesi yazdığınızda Excel tek bir hücreye değil; milyonlarca satıra aynı anda uygulanan kuralı tanımlamış olursunuz. Bu yazıda yeni başlayanlar için temel mantığı, ilk fonksiyonları ve sık yapılan hataları inceleyeceğiz.

Excel Formülünden Farkı

Klasik Excel formülünde =B2*1,18 şeklinde tek hücreye bakarsınız. DAX dünyasında ise sütunun tamamına şu şekilde refere edersiniz:

NetTutar = Satışlar[BirimFiyat] * Satışlar[Adet]

Burada Satışlar[BirimFiyat]; Satışlar tablosunun BirimFiyat sütunu demektir. Excel; bu ifadeyi her satır için ayrı ayrı hesaplar ama söylemi tek seferdir. Klasik formül hücresel düşünür, DAX sütunsal düşünür.

İki Yer Tipi — Sütun ve Ölçü

DAX iki farklı bağlamda yazılır:

  • Hesaplanmış Sütun: Tablonun yeni bir sütunu olarak yazılır. Her satır için değer üretilir, modelde yer kaplar.
  • Ölçü: Tablonun altında bir hücreye yazılır. Yalnızca rapor çekildiğinde hesaplanır, modelde yer kaplamaz.

Bir oranı Net Tutar / Brüt Tutar şeklinde yazacaksanız bunu sütun olarak yazmak yanlıştır; her satırda hesap doğru çıkmaz. Ölçü olarak yazıldığında hangi filtre uygulanırsa o filtreye göre toplamlardan oran hesaplanır.

İlk Fonksiyon — SUM

ToplamSatis = SUM(Satışlar[NetTutar])

Bu ölçü Satışlar tablosundaki NetTutar sütununun toplamını verir. PivotTable üzerinde hangi şehri seçerseniz seçin filtre otomatik uygulanır. Klasik Excel TOPLA fonksiyonuna en yakın akrabadır ama hücre yerine sütun bekler.

Sayma — COUNTROWS

SiparisSayısı = COUNTROWS(Satışlar)

Tablodaki satır sayısını verir. Klasik COUNT fonksiyonundan farkı; bir sütun değil tablo bekler. Aktif filtre uygulandığında yalnızca filtreye uyan satırları sayar.

Filtreli Hesap — CALCULATE

DAX dünyasının en önemli fonksiyonu CALCULATE'tır. Mevcut filtre bağlamını değiştirip yeni bir hesap yapılmasını sağlar.

IstanbulSatis = CALCULATE(SUM(Satışlar[NetTutar]); Müşteriler[Şehir]="Istanbul")

Bu ölçü; hangi filtre uygulanmış olursa olsun yalnızca İstanbul müşterilerinin toplamını verir. CALCULATE öğrenildiğinde DAX kapısı tamamen aralanır; bu fonksiyona hakim olmadan ileri DAX yazılamaz.

Geçen Yıl Karşılaştırması

GectenYil = CALCULATE(SUM(Satışlar[NetTutar]); SAMEPERIODLASTYEAR(Tarih[Tarih]))

Tarih tablosu işaretlenmişse bu ölçü; aktif dönemin geçen yıl aynı tarihiyle karşılaştırma yapar. Klasik PivotTable bu kıyaslamayı yapamaz; DAX zaman zekasını işin içine katar.

İlişkili Tablo — RELATED

SehirAdi = RELATED(Müşteriler[Şehir])

İki tablo arasında ilişki kuruluysa Satışlar tablosundan Müşteriler tablosundaki şehir bilgisini alıp aynı satıra yazabilirsiniz. Klasik DÜŞEYARA yerine geçer; çok daha hızlı ve esnektir.

Akıl Tablosu — Filtreyi Kaldırma

GenelToplam = CALCULATE(SUM(Satışlar[NetTutar]); ALL(Satışlar))

ALL fonksiyonu; CALCULATE içinde tablonun tüm filtrelerini kaldırır. Bunu raporda kullandığınızda; filtreden bağımsız bir genel toplam alır, satır bazlı yüzdeleri hesaplayabilirsiniz.

Yüzde Hesaplama — Oran

Pay = DIVIDE(SUM(Satışlar[NetTutar]); CALCULATE(SUM(Satışlar[NetTutar]); ALL(Satışlar)))

Bu ölçü; her satırın genel toplam içindeki yüzdesini verir. DIVIDE fonksiyonu sıfıra bölme hatasını otomatik ele alır; klasik / işareti yerine tercih edin.

Karşılaştırma Tablosu

Excel KarşılığıDAXAçıklama
TOPLASUMSütun toplamı
BAĞ_DEĞ_DOLU_SAYCOUNTROWSTablo satır sayısı
DÜŞEYARARELATEDİlişkili tabloya bakma
EĞERIFKoşullu değer
YokCALCULATEFiltre değiştirme
YokSAMEPERIODLASTYEARZaman zekası

Yeni Başlayanların En Sık Hatası

Yeni öğrenenler ölçüye benzer şekilde sütun yazıp hesabın bozuk çıkmasına şaşırır. Bir oranı sütun olarak yazarsanız her satırda paydaki ve paydadaki tek satır değerini bölmüş olursunuz; sonra PivotTable o oranları toplar; mantıksız sonuç çıkar. Toplam, ortalama, oran gibi özetler her zaman ölçü olarak yazılmalıdır.

Sonuç

DAX; klasik Excel formüllerinden ilk bakışta tanıdık görünse de düşünme biçimi tamamen farklıdır. Sütun ve ölçü ayrımını, CALCULATE mantığını ve filtre bağlamını kavradığınızda kapı sonuna kadar açılır. Bu rehberdeki on iki örneği sırayla denerseniz iki haftada gerçek dünya raporlarını yazacak seviyeye gelirsiniz. Modern Excel çağında DAX bilmek; klasik fonksiyonları bilmek kadar değerlidir.