Ana içeriğe geç
Kesit Power BI
İleri · Vaka Çalışmaları

Vaka: İK analitiği

İK müdürü bütçe dönemi öncesi kadro ve ücret yapısını görmek istiyor. Departman başına çalışan, maaş dağılımı ve çeyrekler, kıdem grupları, unvan bazında maaş aralığı, yönetici başına ekip ve işe alım eğilimini çıkarırsın; ayrılış verisinin neden olmadığını ve nasıl ekleneceğini konuşursun.

Uygulamada aç, 5 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ç.

1. Şirketin sorusu ve brif

Kim soruyor? İK müdürü (Onur Özkan), genel müdüre sunum hazırlıyor. Yeni yılın ücret bütçesi ve işe alım planı konuşulacak.

Hangi karar? Hangi departmanlarda ücret düzenlemesi gerekiyor, yöneticilerin ekipleri dengeli mi, işe alım hangi hızda sürmeli? Ek olarak genel müdür “çalışan kaybımız ne durumda?” diye soracak; buna dürüst bir cevap gerekiyor.

Ebeveyn-çocuk yapısını (YoneticiNo, Yol) Hiyerarşiler dersinde gördün. Burada aynı tabloyu bir İK raporuna dönüştürüyoruz.

2. Veri ve model

Tabloİçerik
Calisanlar27 çalışan: unvan, maaş, işe giriş, kıdem yılı, seviye (1 genel müdür, 2 müdür, 3 uzman/temsilci), yönetici no, yol.
Departmanlar8 departman ve şehri. Calisanlar[DepartmanNo] ile çoka-bir ilişkili.

Veri sınırları:

3. Analiz adımları

Adım 1: Departman başına çalışan. Hazır [Çalışan Sayısı] ölçüsünü Departmanlar[Departman] ile matrise koy.

Bulgu: Satış 6, Veri Analitiği 5, Yazılım 5, Pazarlama 4, Finans 3, İnsan Kaynakları 3, Genel Müdürlük 1, Hukuk 0. Toplam maaş yükünde Satış (357.000 ₺, %19,2) ve Yazılım (356.000 ₺, %19,2) başta.

Adım 2: Maaş dağılımı: medyan ve çeyrekler. Ortalama tek başına yanıltır; çeyrekler dağılımın gövdesini gösterir.

Maaş 1. Çeyrek = PERCENTILE.INC(Calisanlar[Maas], 0.25)
Maaş 3. Çeyrek = PERCENTILE.INC(Calisanlar[Maas], 0.75)
Çeyrekler Arası Fark = [Maaş 3. Çeyrek] - [Maaş 1. Çeyrek]

Bulgu: Şirket geneli: ortalama 68.741 ₺, medyan 67.000 ₺, 1. çeyrek 54.500 ₺, 3. çeyrek 78.500 ₺. En düşük 38.000 ₺, en yüksek 145.000 ₺ (genel müdür). Ortalamanın medyandan yüksek olması tek bir yüksek maaşın etkisi.

DepartmanKişi1. çeyrekMedyan3. çeyrekEn yüksek / en düşük
İnsan Kaynakları369.50072.00081.0001,34
Yazılım566.00071.00075.0001,53
Finans366.00069.00075.5001,30
Veri Analitiği560.00060.00071.0002,02
Satış645.25055.00067.0002,53
Pazarlama444.00046.00056.7501,89

Pazarlama’nın medyanı şirket medyanının 21.000 ₺ altında. Satış’ta en yüksek maaş en düşüğün 2,53 katı: departman içi en geniş makas.

Adım 3: Kıdem grupları. KidemYil sütunundan grup üretmek için hesaplanmış sütun ya da gruplama (Group) kullanılabilir. Analiz için bir DAX sorgusu yeterli:

EVALUATE
VAR T =
    ADDCOLUMNS(
        Calisanlar,
        "Grup", SWITCH(TRUE(),
            Calisanlar[KidemYil] <= 1, "0-1 yıl",
            Calisanlar[KidemYil] <= 4, "2-4 yıl",
            Calisanlar[KidemYil] <= 7, "5-7 yıl",
            "8+ yıl")
    )
RETURN
    ADDCOLUMNS(
        DATATABLE("Grup", STRING, {{"0-1 yıl"}, {"2-4 yıl"}, {"5-7 yıl"}, {"8+ yıl"}}),
        "Kişi", VAR G = [Grup] RETURN COUNTROWS(FILTER(T, [Grup] = G)),
        "Medyan", VAR G = [Grup] RETURN MEDIANX(FILTER(T, [Grup] = G), Calisanlar[Maas])
    )

Bulgu: 0-1 yıl 5 kişi (medyan 58.000 ₺), 2-4 yıl 12 kişi (63.000 ₺), 5-7 yıl 5 kişi (71.000 ₺), 8+ yıl 5 kişi (90.000 ₺). Kadronun yarıya yakını (12 / 27) 2-4 yıllık: terfi ve ücret beklentisinin en yoğun olduğu grup.

Adım 4: Unvan ve seviye bazında maaş aralığı.

Maaş Aralığı = MAX(Calisanlar[Maas]) - MIN(Calisanlar[Maas])
Maaş Aralığı Oranı = DIVIDE(MAX(Calisanlar[Maas]), MIN(Calisanlar[Maas]))

Bulgu: Seviye 2’de (6 müdür) maaşlar 82.000–97.000 ₺, medyan 88.500 ₺. Seviye 3’te (20 kişi) 38.000–75.000 ₺, medyan 60.000 ₺: müdür medyanı uzman medyanının 1,48 katı. Birden fazla kişili unvanlarda en geniş aralık Satış Temsilcisi’nde: 52.000–70.000 ₺ (18.000 ₺ fark). Dikkat çeken iki nokta:

Adım 5: Yönetici başına ekip büyüklüğü. Doğrudan bağlıları saymak için bağlamdaki kişileri “yönetici” kabul edip tüm tabloda onlara bağlı olanları ararız:

Doğrudan Bağlı =
VAR Yoneticiler = VALUES(Calisanlar[CalisanNo])
RETURN COUNTROWS(FILTER(ALL(Calisanlar), Calisanlar[YoneticiNo] IN Yoneticiler))
Yönetici Sayısı = COUNTROWS(FILTER(VALUES(Calisanlar[CalisanNo]), [Doğrudan Bağlı] > 0))
Ortalama Ekip Büyüklüğü = DIVIDE([Doğrudan Bağlı], [Yönetici Sayısı])

Bulgu: 7 yönetici, 26 doğrudan bağlı, ortalama ekip 3,7 kişi. Genel müdür 6, Satış Müdürü 5, Analitik ve Yazılım müdürleri 4’er, Pazarlama 3, İK ve Finans 2’şer kişi yönetiyor. Ekip büyüklüğü sorunu yok; ama genel müdürün 6 doğrudan bağlısı tüm müdürler demek. Tüm alt ağaç (dolaylı bağlılar dâhil) için Hiyerarşiler dersindeki PATHCONTAINS kalıbını kullan.

Adım 6: İşe alım eğilimi. Calisanlar ile Tarih arasında ilişki yok. TREATAS sanal bir ilişki kurar (Tablo fonksiyonları, kümeler ve sanal ilişkiler dersi):

İşe Alım =
CALCULATE(COUNTROWS(Calisanlar), TREATAS(VALUES(Tarih[Tarih]), Calisanlar[IseGiris]))

Tarih tablosu 2022’de başladığı için önceki yıllar bu ölçüde görünmez. Tüm geçmiş için bir sorgu:

EVALUATE
ADDCOLUMNS(
    GENERATESERIES(2015, 2024, 1),
    "İşe giriş", VAR Y = [Value] RETURN COUNTROWS(FILTER(Calisanlar, YEAR(Calisanlar[IseGiris]) = Y))
)

Bulgu: 2015’ten 2021’e yılda 1–4 kişi alınmış; 2022’de 7 kişi (zirve), 2023’te 2, 2024’te 3. 2024’te alınan üç kişiden ikisi Pazarlama’da İçerik Uzmanı. Ancak ayrılış verisi olmadığı için bu “net büyüme” değildir: 2022’de alınıp ayrılan biri tabloda hiç görünmez.

Ayrılış analizi hangi veriyle yapılır?

Genel müdürün sorusuna cevap: bu modelle yapılamaz; şu veriler gerekir:

Bu veriler gelince örnek ölçü şöyle olur (bu modelde sütun olmadığından çalıştırılamaz):

Ayrılan Çalışan =
CALCULATE(
    COUNTROWS(Calisanlar),
    USERELATIONSHIP(Calisanlar[AyrilisTarihi], Tarih[Tarih])
)
Devir Oranı % = DIVIDE([Ayrılan Çalışan], [Ortalama Kadro])

4. Rapor sayfası taslağı

KonumGörselAlanlar
Üst şerit4 kartÇalışan (27), Medyan maaş (67.000 ₺), Ortalama kıdem (3,9 yıl), Ortalama ekip (3,7)
Sol ortaMatrisSatır: Departman; değerler: Çalışan, 1. çeyrek, Medyan, 3. çeyrek, Maaş Aralığı Oranı (koşullu biçim: 2’nin üstü uyarı rengi)
Sağ ortaSütun grafikX: kıdem grubu; Y: Çalışan Sayısı; araç ipucu: Medyan Maaş
Sol altAyrıştırma ağacı veya hiyerarşik tabloYol hiyerarşisi; Doğrudan Bağlı
Sağ altÇizgi grafikİşe giriş yılı; işe alım sayısı
Alt bilgiMetin kutusu“Ayrılış verisi modelde yok; devir oranı gösterilmiyor.”

5. Bulgu özeti ve öneri

  1. Pazarlama ücret seviyesi geride: medyan 46.000 ₺, şirket medyanı 67.000 ₺. Piyasa karşılaştırması yapılmadan işe alım zorlaşır.
  2. Satış’ta ücret makası en geniş (2,53 kat) ve aynı unvanda yeni gelen eskiden fazla alıyor. Satış Temsilcisi bandını 52.000–70.000 ₺ arasında yeniden tanımla.
  3. 2-4 yıl kıdemli 12 kişi kadronun %44’ü. Terfi kriterlerini bu grup için yazılı hâle getir.
  4. Ayrılış verisini topla: AyrilisTarihi ve AyrilisTuru sütunları ile aylık kadro anlık görüntüsü olmadan çalışan kaybı raporlanamaz.
  5. Hukuk departmanı tanımlı ama boş: ya kadro planına ekle ya da boyut tablosundan çıkar.
Alıştırmalara geç (5)