DAX Serisi #1 – CALCULATE() Fonksiyonu: DAX'ın Kalbi

Barış CihanBarış Cihan
2 min read

Power BI dünyasında bazı fonksiyonlar vardır ki onlar olmadan gelişmiş analizler yapmak neredeyse imkânsızdır.
İşte CALCULATE() fonksiyonu da tam olarak böyle bir fonksiyondur.

Peki CALCULATE() nedir, ne işe yarar ve neden bu kadar önemlidir? Hadi adım adım anlayalım.


📌 CALCULATE() Nedir?

CALCULATE(), bir ölçüyü (measure) farklı filtrelerle yeniden hesaplamak için kullanılır.
Yani veriye yeni bir “bakış açısı” kazandırır.

Bir nevi:
🧠 “Bu hesabı yap ama sadece şu koşullarda yap” demenin DAX’teki karşılığıdır.


🧪 Basit Bir Örnek

Varsayalım ki bir Sales tablon var ve toplam satışları hesapladın:

DAXKopyalaDüzenleTotal Sales = SUM(Sales[Amount])

Bu tüm satışları toplar.
Ama şimdi diyelim ki sadece Türkiye satışlarını hesaplamak istiyorsun:

DAXKopyalaDüzenleTotal Sales TR = CALCULATE([Total Sales], Sales[Country] = "Turkey")

Ne yaptık?
Total Sales ölçüsünü aldık ama sadece Country = Turkey olanlar için yeniden hesapladık.


🧠 CALCULATE() Ne Zaman Kullanılır?

  • Belirli bir filtreyle hesaplama yapmak istediğinizde

  • Zaman karşılaştırmaları yaparken (örneğin geçen yıl, bu yıl)

  • Koşullu KPI'lar oluştururken

  • Farklı kullanıcı rollerine özel görünümler sağlarken


🏗️ CALCULATE() Söz Dizimi

DAXKopyalaDüzenleCALCULATE(<expression>, <filter1>, <filter2>, ...)
  • expression: Hesaplanacak değer (genelde bir measure olur)

  • filter: Uygulanacak filtre koşulları

Filtreler tek tek yazılabilir, birden fazla filtreyi birleştirmek mümkündür.


🔍 Gerçek Hayattan Bir Senaryo

Bir giyim markası Power BI'da raporlama yapıyor.
Pazarlama ekibi sadece kadın ürün kategorisindeki ciroları görmek istiyor.

DAXKopyalaDüzenleFemale Category Sales = 
CALCULATE([Total Sales], Products[Category] = "Kadın")

Aynı formülle başka segmentleri de oluşturabiliriz:

  • Erkek kategorisi

  • Bebek kategorisi

  • Ya da belirli bir indirim oranı üzerindeki satışlar


⚠️ Dikkat Edilmesi Gereken Noktalar

  • CALCULATE() filtre bağlamını değiştirir. Bu yüzden bazı görsellerde beklenmedik sonuçlar çıkabilir.

  • CALCULATE() içinde kullanılan filtreler mevcut filtreleri değiştirir veya kaldırır.

  • Eğer ALL() gibi fonksiyonlarla birlikte kullanılırsa tüm filtreler sıfırlanabilir (örneğin yüzde oranı hesaplamak için).


👨‍🏫 İpucu: CALCULATE() + FILTER() Birlikteliği

Daha gelişmiş filtreler için FILTER() fonksiyonunu CALCULATE() içinde kullanabiliriz:

DAXKopyalaDüzenleHigh Value Sales = 
CALCULATE([Total Sales], 
   FILTER(Sales, Sales[Amount] > 1000)
)

Bu ölçü sadece tutarı 1000’den büyük satışları hesaplar.


✍️ Sonuç

CALCULATE(), Power BI’ın veriye hükmetmenizi sağlayan anahtarıdır.
Sadece bir hesap değil, hesaplama bağlamını da yönetmenizi sağlar.

İyi bir DAX yazarı olmak istiyorsanız, CALCULATE() fonksiyonunu çok iyi öğrenmelisiniz. Çünkü çoğu gelişmiş analiz onunla başlar.


👉 Serimizin bir sonraki yazısında FILTER() fonksiyonunu detaylıca inceleyeceğiz.

📌 Takipte kalın ve Power BI becerilerinizi DAX ile üst seviyeye taşıyın.

0
Subscribe to my newsletter

Read articles from Barış Cihan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Barış Cihan
Barış Cihan