Veri dünyasında ister bir Excel uzmanı olun ister Power BI dashboard’ları hazırlayan ya da Python ile veri analitiği yapan biri... İşin özü değişmez: Veriyi getirmek, temizlemek, gruplamak ve şartlara göre süzmek.
Excel’deki klasik formüllere hakim olmak harika bir temeldir. Ancak verinizin boyutu büyüdükçe veya raporlarınızı otomatize edip BI araçlarına taşıdığınızda, bu mantıkların DAX (Power BI) ve Python (Pandas) karşılıklarını bilmek tam anlamıyla bir "süper güç" kazandırır.
İşte kurumsal hayatta ve veri analizinde en çok kullanılan 10 hayat kurtaran Excel formülü ve bunların DAX ile Python’daki birebir karşılıkları!
1. DÜŞEYARA (VLOOKUP) / XLOOKUP (ÇAPRAZARA)
Ne Yapar? Başka bir tablodan eşleşen değeri arar ve ilgili sütundaki veriyi getirir.
- Excel:
=DÜŞEYARA(A2; Müşteriler!A:B; 2; YANLIŞ) - DAX:
- Kod snippet'i
Müşteri Adı = RELATED(Müşteriler[MüşteriAdı]) -- Veya ilişkisiz tablolar için: LOOKUPVALUE(Müşteriler[MüşteriAdı], Müşteriler[MüşteriID], Siparişler[MüşteriID])
- Python (Pandas):
- Python
df = df_siparisler.merge(df_musteriler[['MüşteriID', 'MüşteriAdı']], on='MüşteriID', how='left')
2. EĞER (IF)
Ne Yapar? Belirli bir koşula göre mantıksal kontrol yapar (Doğruysa A, Yanlışsa B).
- Excel:
=EĞER(A2>=100; "Hedef Aşıldı"; "Hedef Altında") - DAX:
- Kod snippet'i
Hedef Durumu = IF(Sales[Amount] >= 100, "Hedef Aşıldı", "Hedef Altında")
- Python (Pandas):
- Python
import numpy as np df['Hedef_Durumu'] = np.where(df['Amount'] >= 100, 'Hedef Aşıldı', 'Hedef Altında')
3. ÇOKEĞERSAY (COUNTIFS)
Ne Yapar? Birden fazla koşulu sağlayan hücrelerin sayısını verir.
- Excel:
=ÇOKEĞERSAY(A:A; "İstanbul"; B:B; "Tamamlandı") - DAX:
- Kod snippet'i
Tamamlanan Istanbul =
CALCULATE(
COUNTROWS(Siparişler),
Siparişler[Şehir] == "İstanbul",
Siparişler[Durum] == "Tamamlandı"
)
- Python (Pandas):
- Python
len(df[(df['Şehir'] == 'İstanbul') & (df['Durum'] == 'Tamamlandı')])
4. ETOPLA / ÇOKETOPLA (SUMIFS)
Ne Yapar? Belirli şart veya şartları sağlayan değerleri toplar.
- Excel:
=ÇOKETOPLA(C:C; A:A; "Marmara"; B:B; 2026) - DAX:
- Kod snippet'i
Marmara 2026 Satış =
CALCULATE(
SUM(Satışlar[Tutar]),
Satışlar[Bölge] == "Marmara",
Satışlar[Yıl] == 2026
)
- Python (Pandas):
- Python
df[(df['Bölge'] == 'Marmara') & (df['Yıl'] == 2026)]['Tutar'].sum()
5. BIRLEŞTIR (CONCATENATE) / METİNBİRLEŞTİR (TEXTJOIN)
Ne Yapar? Farklı hücrelerdeki metinleri tek bir hücrede birleştirir.
- Excel:
=METİNBİRLEŞTİR("-"; DOĞRU; A2; B2)(Veya=A2 & "-" & B2) - DAX:
- Kod snippet'i
Kod = COMBINEVALUES("-", Siparişler[Kategori], Siparişler[ID])
-- Veya basitçe: Siparişler[Kategori] & "-" & Siparişler[ID]
- Python (Pandas):
- Python
df['Kod'] = df['Kategori'].astype(str) + '-' + df['ID'].astype(str)
6. KIRP (TRIM) & TEMİZLE (CLEAN)
Ne Yapar? Metinlerin başındaki/sonundaki gereksiz boşlukları ve gizli karakterleri siler.
- Excel:
=KIRP(A2) - DAX:
- Kod snippet'i
Temiz Metin = TRIM(Müşteriler[İsim])
- Python (Pandas):
- Python
df['İsim'] = df['İsim'].str.strip()
7. BENZERSİZ (UNIQUE)
Ne Yapar? Bir listedeki tekrarlayan verileri süzüp sadece benzersiz (unique) olanları getirir.
- Excel:
=BENZERSİZ(A2:A100) - DAX:
- Kod snippet'i
-- Yeni tablo olarak: Benzersiz Müşteriler = DISTINCT(Siparişler[MüşteriID]) -- Veya sayısal adedi için: Tekil Müşteri Sayısı = DISTINCTCOUNT(Siparişler[MüşteriID])
- Python (Pandas):
- Python
# Liste olarak benzersiz değerler: benzersiz_liste = df['MüşteriID'].unique() # Sayısal adedi: tekil_sayi = df['MüşteriID'].nunique()
8. BUL / MBUL (FIND / SEARCH)
Ne Yapar? Bir metin içerisinde aranan karakterin kaçıncı sırada olduğunu bulur.
- Excel:
=MBUL("@"; A2)(Harf büyüklüğüne duyarsız arama) - DAX:
- Kod snippet'i
At Konumu = SEARCH("@", Müşteriler[Eposta], 1, 0)
- Python (Pandas):
- Python
df['At_Konumu'] = df['Eposta'].str.find('@')
9. ÖZET TABLO GRUPLAMA (PIVOT TABLE / GROUP BY)
Ne Yapar? Veriyi belirli kategorilere göre gruplayıp ortalama, toplam veya adet hesabı çıkarır.
- Excel: Arayüz üzerinden Ekle > Özet Tablo (Pivot Table) kullanılarak yapılır.
- DAX:
- Kod snippet'i
Kategori_Özeti =
SUMMARIZE(
Satışlar,
Satışlar[Kategori],
"Toplam Satış", SUM(Satışlar[Tutar]),
"Ortalama Satış", AVERAGE(Satışlar[Tutar])
)
- Python (Pandas):
- Python
df.groupby('Kategori').agg({'Tutar': ['sum', 'mean']}).reset_index()
10. EĞERHATA (IFERROR)
Ne Yapar? Formül bir hata üretirse (örn:#BÖL/0!,#N/A), hata yerine belirlediğiniz bir değeri yazdırır.
- Excel:
=EĞERHATA(A2/B2; 0) - DAX:
- Kod snippet'i
Güvenli Bölüm = IFERROR(DIVIDE(Satışlar[Kâr], Satışlar[Maliyet]), 0) -- Not: DAX'ta DIVIDE fonksiyonu zaten varsayılan olarak hatada 0 veya BLANK döner.
- Python (Pandas):
- Python
# Numpy yardımıyla sıfıra bölünme hatalarını yönetme: df['Oran'] = (df['Kâr'] / df['Maliyet']).replace([np.inf, -np.inf], np.nan).fillna(0)
Özet: Hangi Aracı Ne Zaman Seçmeli?
- Excel: Hızlı ad-hoc analizler, küçük-orta boyutlu tablolar ve anlık hesaplamalar için rakipsizdir.
- DAX (Power BI): İlişkisel veri modelleri, büyük veri kütleleri ve dinamik interaktif raporlar için şarttır.
- Python (Pandas): Veri kazıma (scraping), büyük ölçekli veri temizleme, makine öğrenimi ve otomasyon süreçlerinin merkezidir.
Mantık her platformda aynı; sadece "sözdizimi" (syntax) değişiyor. Excel'deki düşünme yapınızı bu araçlara adapte ettiğinizde veri analitiğinde seviye atlamış olursunuz!