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

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.
Subscribe to my newsletter
Read articles from Barış Cihan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
