Hızlı ölçüler
Modelleme → Hızlı ölçü (ya da bir ölçüye sağ tık → Yeni hızlı ölçü). Bir hesaplama türü seçip alanları kutulara sürüklersin; Power BI DAX'ı yazar.
| Kategori | Örnekler |
|---|---|
| Kategori başına toplama | Kategori başına ortalama, varyans, maksimum |
| Filtreler | Filtrelenmiş değer, filtrelenmiş değerden fark, yüzde fark, yeni müşterilerin satışı |
| Zaman zekâsı | YTD, QTD, MTD, yıldan yıla değişim, hareketli ortalama |
| Toplamlar | Kümülatif toplam, kategori toplamı |
| Matematik | Toplama, çıkarma, çarpma, bölme, yüzde fark, korelasyon katsayısı |
| Metin | Yıldız derecelendirmesi, değer listesi (birleştirilmiş) |
Oluşan ölçü normal bir ölçüdür: formül çubuğunda açıp okuyabilir, değiştirebilirsin. Örneğin “Yıldan yıla değişim” şuna benzer bir kod üretir:
Net Satış YoY% = VAR __PREV_YEAR = CALCULATE([Net Satış], DATEADD(Tarih[Tarih], -1, YEAR)) RETURN DIVIDE([Net Satış] - __PREV_YEAR, __PREV_YEAR)
Copilot ile DAX
DAX sorgu görünümünde ve ölçü düzenleyicide Copilot'a doğal dille istek yazarsın (“geçen yılın aynı dönemine göre büyüme”). Copilot ölçüyü önerir, açıklar; DAX sorgu görünümünde test edip modele ekleyebilirsin. Ayrıca Copilot rapor sayfası önerebilir, anlatı görseli oluşturabilir ve anlam modelini özetleyebilir (PL-300'de bu beceriler ölçülüyor).
Kontrol listesi
- Doğru temel ölçüyü mü kullanıyor? (
[Toplam Satış]mı[Net Satış]mı?) - Tarih tablosundaki sütunu mu kullanıyor, olgu tablosundakini mi?
- Toplam satırında ve boş dönemlerde ne veriyor?
- Adını ve biçimini ekip standardına göre düzelt (ör.
__PREV_YEARyerineGecenYil).
Hızlı ölçünün ürettiği kodu okumak
Hızlı ölçü (Quick measure) kodu sen yazmasan da sorumluluğu sende. Üretilen kod genellikle doğrudur, ama modelini tanımaz. Üç tipik kalıbı okuyup iyileştirelim.
1. Kategori başına ortalama
“Kategori başına ortalama” hızlı ölçüsüne Satislar[Tutar] sütununu ve Urunler[Kategori] alanını sürüklersen şuna benzer bir kod alırsın:
Tutar ortalaması Kategori başına =
AVERAGEX(
KEEPFILTERS(VALUES(Urunler[Kategori])),
CALCULATE(SUM(Satislar[Tutar]))
)
Okuma: kategorileri dolaş (KEEPFILTERS dış kategori filtresini koru demek), her kategoride tutarı topla, ortalamasını al. Sorunlar modelle ilgili: SUM(Satislar[Tutar]) iptalleri de içerir; sonuç 192.313 ₺. Şirketin kuralına uyan [Net Satış] ile 178.682 ₺. Ayrıca Urunler[Kategori] hedef tablosunu süzmez; hedefle aynı görselde kullanılacaksa paylaşılan Kategoriler boyutu gerekir (Hedef ve gerçekleşen dersi). İyileştirilmiş hâli:
Kategori Başına Ortalama = AVERAGEX(VALUES(Kategoriler[Kategori]), [Net Satış])
2. Filtrelenmiş değerden yüzde fark
“Web kanalına göre yüzde fark” hızlı ölçüsü, temel değeri ve karşılaştırılan değeri iki değişkene koyar:
Tutar Web’den fark % =
VAR __BASELINE_VALUE = CALCULATE(SUM(Satislar[Tutar]), Satislar[Kanal] IN { "Web" })
VAR __VALUE_TO_COMPARE = SUM(Satislar[Tutar])
RETURN
IF(NOT ISBLANK(__VALUE_TO_COMPARE), DIVIDE(__VALUE_TO_COMPARE - __BASELINE_VALUE, __BASELINE_VALUE))
Yapı doğru, ama yine ham tutar kullanılmış. Mobil satırında +%23,0 gösterir; net satışla doğru değer +%31,2. Mağaza’da −%59,5 yerine −%57,7. Fark küçük görünebilir, ama yönetim sunumunda “Mobil, Web’den %23 büyük” ile “%31 büyük” farklı kararlara götürür. İyileştirme: SUM(Satislar[Tutar]) yerine [Net Satış], değişken adlarında da ekip standardı (WebSatisi, Satis).
3. Kümülatif toplam
Kümülatif toplam hızlı ölçüsü ALLSELECTED ve ISONORAFTER ile bir filtre kurar. Aynı mantığı daha okunur şekilde şöyle yazabilirsin:
Seçim İçi Kümülatif =
CALCULATE(
[Net Satış],
FILTER(ALLSELECTED(Tarih[Tarih]), Tarih[Tarih] <= MAX(Tarih[Tarih]))
)
Önemli davranış: ALLSELECTED yüzünden toplam, kullanıcının seçtiği dönemin başından başlar. Dilimleyicide 2023–2024 seçiliyse 2024 satırı 1.147.935 ₺ gösterir. Hazır [Kümülatif Satış] ise ALL kullandığı için 2022’yi de katar ve 1.250.772 ₺ gösterir. Hızlı ölçü sana hangisini istediğini sormaz; sen karar ver.
Copilot ile ölçü yazdırıp denetlemek
DAX sorgu görünümünde Copilot (Ctrl+I) doğal dilden sorgu yazabilir, seçili bir sorguyu açıklayabilir (“Explain this query”) ve bir DAX kavramını anlatabilir. Önerilen sorguyu çalıştırır (Run), beğenirsen sekmeye eklersin (Keep query). Bu özellik Fabric kapasitesi ve yönetici ayarları gerektirir.
Copilot modelin meta verisini görür: tablo, sütun ve ölçü adları ile açıklamaları. Verinin kendisini okumaz. Bu yüzden iki şey çok önemli:
- Açıklamalar: ölçü ve sütun açıklamalarına iş kuralını yaz: “Net satış: iptal edilen siparişler hariç tutar”. Açıklamanın yalnızca ilk 200 karakteri kullanılır; kuralı başa koy.
- Yapay zekâ için verileri hazırla (Prep data for AI): modele yapay zekâ talimatları ekleyerek “satış dendiğinde [Net Satış] ölçüsünü kullan” gibi kuralları Copilot’a kalıcı olarak öğretebilirsin.
İyi bir istem, modelin adlarını kullanır ve beklenen sonucu tarif eder: “[Net Satış] ölçüsünü kullanarak her kategori için Web kanalının payını hesaplayan bir ölçü yaz; payda kategorinin tüm kanallardaki net satışı olsun.” Sonra öneriyi bilinen bir sayıyla test et:
EVALUATE
SUMMARIZECOLUMNS(
Satislar[Kanal],
"Net", [Net Satış],
"Web'e göre fark %", DIVIDE([Net Satış] - CALCULATE([Net Satış], Satislar[Kanal] = "Web"), CALCULATE([Net Satış], Satislar[Kanal] = "Web"))
)
[Net Satış] mı, ham sütun mu)? 2) Boyut sütunu paylaşılan boyuttan mı? 3) Bilinen bir sayıyla eşleşiyor mu (ör. toplam net satış 1.250.772 ₺)? 4) Toplam satırında ve boş dönemde ne veriyor? 5) Dilimleyici seçimi davranışı (ALL mı, ALLSELECTED mı) bilinçli mi? 6) Adı, biçimi ve açıklaması ekip standardına uygun mu?