Ana içeriğe geç
Kesit Power BI
Orta · Veri Modelleme

Hedef ve gerçekleşen: farklı ayrıntı düzeyleri

Günlük satışla aylık hedefi aynı görselde göstermek; ortak boyutlar ve doğru kategori sütunu.

Uygulamada aç, 8 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Sorun: iki olgu, iki tanecik

Satislar sipariş satırı düzeyinde ve günlük; Hedefler ise ay × kategori düzeyinde. İkisini tek tabloya birleştirmek yerine her iki olguyu da ortak boyutlara bağlarız:

Böylece Kategoriler[Kategori] ve Tarih[YilAy] ile kurulan bir matris hem [Net Satış]'ı hem [Hedef]'i doğru gösterir.

Yanlış sütunu seçmenin bedeli

Matrise kategori olarak Urunler[Kategori] koyarsan satış doğru kırılır ama hedef her satırda aynı toplamı gösterir. Çünkü Urunler'deki filtre Hedefler'e ulaşamaz: filtreler yalnızca bir taraftan çok tarafa akar, Urunler ise Kategoriler'in çok tarafıdır.

KuralBirden çok olguyu birlikte kesen nitelikleri paylaşılan boyuttan al. Olgu tablolarından ya da yalnızca bir olguya bağlı boyutlardan alma.

Gün düzeyinde hedef?

Hedef aylık olduğu için günlük grafikte hedef yalnızca ayın ilk gününde görünür. Ay altı düzeyde göstermemek için:

Hedef (ay düzeyi) =
IF(HASONEVALUE(Tarih[Tarih]), BLANK(), [Hedef])

Basit yol: hedef görsellerinde tarih eksenini ay ve üstüyle sınırlı tut.

Uzmanlaş

Hedefe ulaşma oranı: oranların ortalaması değil

Satış direktörü yıl sonu sunumu için “2024’te hedefin yüzde kaçını tutturduk?” diye soruyor. İki ekip iki cevap getiriyor:

Gerçekleşme (doğru) = DIVIDE([Net Satış], [Hedef])

Aylık Oranların Ortalaması = AVERAGEX(VALUES(Tarih[YilAy]), [Hedef Gerçekleşme %])

2024 için ilki %97,9, ikincisi %97,4 verir. Fark küçük, ama yön farkı önemlidir. Oranların ortalaması, hedefi 30.000 ₺ olan bir ay ile 90.000 ₺ olan bir ayı eşit sayar. Doğru cevap her zaman toplam gerçekleşen / toplam hedef’tir. Bu, Yineleyiciler dersindeki ağırlıklı ortalama kuralının hedefteki karşılığıdır.

Yılbaşından bugüne gerçekleşme

Mayıs 2024 satırında aylık gerçekleşme %96,7. YTD gerçekleşme ise 235.863 ₺ / 243.300 ₺ = %96,9. Yönetim toplantısında genellikle ikincisi sorulur: “Yılın bu noktasında planın neresindeyiz?” İki ölçü yan yana konunca okuyucu hem ayın performansını hem yılın gidişatını görür.

Kategori düzeyinde tablo netleşir. Hediye kategorisi tüm dönemde hedefinin yalnızca %68,9’unu tutturmuş, diğer kategoriler %95–99 arasında. Bir “hedefe kalan” sütunu bu açığı tutar olarak gösterir:

Hedefe Kalan =
IF([Net Satış] < [Hedef], [Hedef] - [Net Satış], 0)

Tüm dönemde Elektronik’in açığı 12.496 ₺, Hediye’ninki 7.830 ₺. Oran olarak Hediye çok daha kötü, tutar olarak Elektronik’in açığı daha büyük. İkisini birlikte göstermek önceliklendirmeyi kolaylaştırır.

Ay içinde günlük hedef payı

Ayın 15’inde bölge müdürü panoyu açıyor ve tarih dilimleyicisinde 1–15 Mart 2024’ü seçiyor. Ekranda şu var:

ÖlçüDeğerYorum
[Net Satış]36.217 ₺15 günlük satış
[Hedef]63.700 ₺Mart’ın tüm hedefi
[Hedef Gerçekleşme %]%56,9Yanlış alarm

Hedef ayın ilk gününe bağlı olduğu için 1 Mart seçimdeyse ayın tamamı gelir. Seçim 2 Mart’ta başlasaydı hedef BLANK olurdu. İki durumda da sayı anlamsızdır. Çözüm, aylık hedefi görünen gün sayısına göre paylaştırmaktır:

Gün Payına Göre Hedef =
SUMX(
    VALUES(Tarih[YilAy]),
    VAR AyHedef = CALCULATE([Hedef], ALLEXCEPT(Tarih, Tarih[YilAy]))
    VAR GorunenGun = CALCULATE(COUNTROWS(Tarih))
    VAR AyGunu = CALCULATE(COUNTROWS(Tarih), ALLEXCEPT(Tarih, Tarih[YilAy]))
    RETURN AyHedef * DIVIDE(GorunenGun, AyGunu)
)

Mekanizma adım adım:

  1. SUMX(VALUES(Tarih[YilAy]), …) görünen her ayı ayrı ele alır. Seçim iki aya yayılırsa iki ayın payı toplanır.
  2. ALLEXCEPT(Tarih, Tarih[YilAy]) gün filtresini kaldırır ama ayı korur. Böylece AyHedef ayın tam hedefini, AyGunu ayın gün sayısını verir.
  3. GorunenGun ise seçimdeki gün sayısıdır: 15.

Sonuç: 63.700 × 15 / 31 = 30.823 ₺. Gerçekleşme 36.217 / 30.823 = %117,5. Bölge, ayın ilk yarısında planın önünde. Tam ay ya da yıl seçildiğinde ölçü [Hedef] ile aynı sonucu verir (2024: 763.200 ₺). Yani bu ölçü [Hedef]’in yerine güvenle kullanılabilir.

Takvim günü mü, iş günü mü?Mağaza satışları hafta sonu artıyorsa, kurumsal satış ise hafta içi yoğunsa takvim günüyle paylaştırma adil olmaz. COUNTROWS yerine CALCULATE(COUNTROWS(Tarih), Tarih[HaftaSonu] = "Hayır") yazarak iş günü bazlı pay kurarsın. Daha ileri bir yöntem, geçmiş yılların gün bazlı satış dağılımını ağırlık olarak kullanmaktır.

Kaç ay hedefi tuttuk?

Bir başka sık soru başarının oranı değil sıklığıdır:

Hedefi Tutan Ay =
COUNTROWS(FILTER(VALUES(Tarih[YilAy]), [Net Satış] >= [Hedef]))

2023’te 5 ay, 2024’te yalnızca 2 ay hedef tutturuldu. Ama 2024’ün yıllık gerçekleşmesi 2023’ten çok farklı değil (%97,9’a karşı %99,6). Yani 2024’te çoğu ay hedefe yakın kalıp aşamamış. Kategori kırılımında Giyim 36 ayın 13’ünde, Hediye 7’sinde hedefi tutmuş. Oran ve sıklık birlikte okununca hikâye tamamlanır.

Kontrol listesi: hedef görseli1) Gerçekleşme oranı toplam/toplam mı? 2) Kategori ve tarih paylaşılan boyutlardan mı geliyor? 3) Ay içi seçimlerde hedef gün payına göre mi? 4) YTD gerçekleşme aylık gerçekleşmenin yanında mı? 5) Oran ile tutar açığı birlikte mi gösteriliyor?
Alıştırmalara geç (8)