2026'da Excel Power Query: Veri Analistleri için ETL ve Mülakat Soruları

ETL işlemleri, veri dönüşümü ve M dili temelleri için Excel Power Query'de ustalaşma. Veri analisti pozisyonları için pratik örnekler ve yaygın mülakat soruları.

Excel Power Query ETL tutorial 2026

Excel Power Query, veri analistlerinin ETL (Çıkar, Dönüştür, Yükle) iş akışlarını doğrudan Excel içinde gerçekleştirme biçimini dönüştürür. Manuel kopyala-yapıştır veya karmaşık VBA makroları yerine, Power Query tek tıklamayla yenilenen tekrarlanabilir veri dönüşümlerini mümkün kılan M dili tarafından desteklenen görsel bir arayüz sunar.

Power Query kullanılabilirliği

Power Query, Excel 365, Excel 2021, Excel 2019 ve Excel 2016'da yerleşik olarak bulunur. Önceki sürümlerde "Power Query for Excel" adlı ücretsiz bir eklenti olarak mevcuttu. Aynı motor Power BI Desktop veri akışlarını da çalıştırır.

Power Query veri analistleri için neyi çözer

Veri analistleri veri hazırlığına önemli zaman harcar: farklı kaynaklardan dosyaları birleştirmek, tutarsız formatları temizlemek, alakasız satırları filtrelemek ve tabloları analiz için yeniden şekillendirmek. Power Query, her dönüşüm adımını kaydeden bir sorgu düzenleyicisi aracılığıyla bu görevleri ele alır. Kaynak veriler değiştiğinde, tüm pipeline otomatik olarak yeniden çalışır.

İş akışı üç aşamayı takip eder: veri kaynaklarına bağlanma, dönüşümleri uygulama ve sonuçları Excel tablolarına veya veri modeline yükleme. Her adım, gelişmiş senaryolar için doğrudan düzenlenebilen M dili sözdizimi kullanılarak formül çubuğunda kaydedilir.

Bu yaklaşım geleneksel Excel formüllerinden farklıdır. Formüller hücreleri yeniden hesaplarken, Power Query çalışma sayfasına ulaşmadan önce tüm tablolar üzerinde çalışır. 50 CSV dosyasını birleştiren, yinelenenleri kaldıran ve sütunları ters pivotlayan bir sorgu bir kez çalışır ve çalışma kitabını yavaşlatan karmaşık iç içe formüller oluşturmak yerine temiz bir tablo üretir.

Veri Al ile veri kaynaklarına bağlanma

Power Query dosyalara (CSV, Excel, JSON, XML), veritabanlarına (SQL Server, MySQL, PostgreSQL, Oracle), bulut hizmetlerine (SharePoint, Azure, Salesforce) ve web sayfalarına bağlantıları destekler. Bağlantı türü, hangi kimlik doğrulama ve içe aktarma seçeneklerinin görüneceğini belirler.

plaintext
// Power Query'de yaygın veri kaynakları
Veri > Veri Al > Dosyadan > CSV'den
Veri > Veri Al > Veritabanından > SQL Server Veritabanından
Veri > Veri Al > Diğer Kaynaklardan > Web'den
Veri > Veri Al > Klasörden (birden çok dosya)

"Klasörden" seçeneği birden çok dosyayı birleştirmek için özellikle kullanışlıdır. Her dosyayı ayrı ayrı içe aktarmak yerine, Power Query bir klasörü tarar, eşleşen tüm dosyaları listeler ve bunları tek bir sorguda birleştirir. Klasöre yeni bir dosya eklemek, sonraki yenilemede otomatik olarak dahil edilir.

Bir SQL veritabanına bağlanırken, Power Query sorgu katlama yoluyla dönüşüm mantığını sunucuya itebilir. Filtreler ve sütun seçimleri SQL WHERE ve SELECT cümleciklerine dönüştürülür ve Excel'e aktarılan veri miktarını azaltır. Formül çubuğu, katlama aktifken "Yerel Sorguyu Görüntüle" seçeneğini gösterir.

Sorgu Düzenleyicisinde temel dönüşümler

Sorgu Düzenleyicisi yaygın işlemler için şerit komutları sağlar, ancak altta yatan M kodunu anlamak özelleştirmeler gerektiğinde yardımcı olur. Her dönüşüm "Uygulanan Adımlar" bölmesine bir adım ekler ve denetlenebilir bir dizi oluşturur.

Satırları filtreleme ve sıralama

Filtreleme, ölçütleri karşılamayan satırları kaldırır. Sütun başlığı açılır menüsü hızlı filtreler sağlarken, "Satırları Filtrele" iletişim kutusu AND/OR mantığıyla karmaşık koşulları destekler.

m
// M dilinde FilteredRows adımı
let
    Source = Excel.CurrentWorkbook(){[Name="SalesData"]}[Content],
    FilteredRows = Table.SelectRows(Source, each [Region] = "EMEA" and [Amount] > 1000)
in
    FilteredRows

Table.SelectRows fonksiyonu bir tablo ve bir koşul alır. each anahtar kelimesi _'nin geçerli satırı temsil ettiği bir fonksiyon oluşturur ve alan erişimi köşeli parantez notasyonu [Region] kullanır. Birden çok koşul and veya or operatörleriyle birleştirilir.

Sütunları kaldırma ve yeniden adlandırma

Veri kaynakları genellikle analiz için gerekli olmayan sütunlar içerir. Bunları erken kaldırmak bellek kullanımını azaltır ve sonraki adımları basitleştirir.

m
// Sütunları kaldır, ardından kalanları yeniden adlandır
let
    Source = Excel.CurrentWorkbook(){[Name="RawData"]}[Content],
    RemovedColumns = Table.RemoveColumns(Source, {"TempID", "InternalNotes", "Debug"}),
    RenamedColumns = Table.RenameColumns(RemovedColumns, {{"Cust_Name", "CustomerName"}, {"Amt", "Amount"}})
in
    RenamedColumns

Sütun listesi birden çok öğe için süslü parantez {} kullanır. Yeniden adlandırma, her çiftin eski adı ve yeni adı içerdiği bir çift listesi alır. Sorgular arasında tutarlı adlandırma kuralları, veri kümelerini birleştirmeyi kolaylaştırır.

Sütunları bölme ve birleştirme

Metin sütunları sıklıkla ayrıştırma gerektirir. Bir "FullName" sütununun ad ve soyada bölünmesi gerekebilir veya ayrı tarih ve saat sütunlarının birleştirilmesi gerekebilir.

m
// FullName'i ayırıcıyla iki sütuna böl
let
    Source = Excel.CurrentWorkbook(){[Name="Contacts"]}[Content],
    SplitColumn = Table.SplitColumn(Source, "FullName", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"FirstName", "LastName"})
in
    SplitColumn

Splitter.SplitTextByDelimiter fonksiyonu ayrıştırma mantığını işler. Daha karmaşık desenler için Splitter.SplitTextByEachDelimiter veya Splitter.SplitTextByPositions ek kontrol sunar. Sonuç sütun sayısı değiştiğinde, Power Query sütunları dinamik olarak oluşturur.

Tür dönüşümleri ve veri kalitesi

Power Query içe aktarma sırasında sütun türlerini tahmin eder, ancak açık tür ataması hataları erken yakalar. Sayısal ID'ler içeren bir metin sütunu, başındaki sıfırlar önemliyse metin olarak kalmalıdır. Metin olarak içe aktarılan tarih sütunları sıralama sorunlarına neden olur.

m
// Açık tür atamaları
let
    Source = Csv.Document(File.Contents("C:\\Data\\transactions.csv")),
    TypedColumns = Table.TransformColumnTypes(Source, {
        {"TransactionID", type text},
        {"Date", type date},
        {"Amount", type number},
        {"IsProcessed", type logical}
    })
in
    TypedColumns

type anahtar kelimesi hedef türü belirtir. Mevcut türler text, number, date, datetime, datetimezone, time, duration, logical ve binary içerir. Tür hataları hücrelerde "Error" değerleri olarak görünür ve veri kalitesi sorunlarını analizden önce görünür kılar.

Null değerlerin işlenmesi açık mantık gerektirir. Table.ReplaceValue fonksiyonu null'ları varsayılanlarla değiştirirken, [Column] <> null ile Table.SelectRows bunları filtreler.

Grupla ile gruplama ve toplama

Verileri kategorilere göre toplamak sık bir gereksinimdir. "Grupla" dönüşümü aynı anahtar değerlerini paylaşan satırları daraltır ve toplama fonksiyonları uygular.

m
// Satışları bölge ve yıla göre grupla, toplam ve sayı hesapla
let
    Source = Excel.CurrentWorkbook(){[Name="Sales"]}[Content],
    Grouped = Table.Group(Source, {"Region", "Year"}, {
        {"TotalSales", each List.Sum([Amount]), type number},
        {"OrderCount", each Table.RowCount(_), Int64.Type},
        {"AvgOrderValue", each List.Average([Amount]), type number}
    })
in
    Grouped

Gruplama sütunları önce görünür, ardından toplama tanımları gelir. Her toplama yeni bir sütun adı, bir toplama fonksiyonu ve isteğe bağlı bir sonuç türü belirtir. each anahtar kelimesi her grup için alt tabloyu temsil eder ve herhangi bir tablo veya liste fonksiyonuna izin verir.

İç içe toplamalar, sonraki bir adımda hem satır değerine hem de grup toplamına başvurarak "grup toplamının yüzdesi" gibi hesaplamaları mümkün kılar.

Data Analytics mülakatlarında başarılı olmaya hazır mısın?

İnteraktif simülatörler, flashcards ve teknik testlerle pratik yap.

Verileri yeniden şekillendirmek için pivotlama ve ters pivotlama

Pivotlama satır değerlerini sütunlara dönüştürür ve çapraz tablo düzeni oluşturur. Ters pivotlama, normalleştirilmiş yapılar için sütunları satırlara dönüştürerek tersini yapar.

m
// Ay sütunlarını satırlara ters pivotla
let
    Source = Excel.CurrentWorkbook(){[Name="MonthlySales"]}[Content],
    // Orijinal: Product, Jan, Feb, Mar, Apr sütunları
    Unpivoted = Table.UnpivotOtherColumns(Source, {"Product"}, "Month", "Sales")
    // Sonuç: Product, Month, Sales sütunları
in
    Unpivoted

Table.UnpivotOtherColumns fonksiyonu belirtilen sütunları sabit tutar ve geri kalanları ters pivotlar. Bu, ters pivotlanacak tüm sütunları listelemekten daha güvenlidir çünkü yeni ay sütunları eklemek bunları otomatik olarak dahil eder. Son iki parametre öznitelik sütununu ("Month") ve değer sütununu ("Sales") adlandırır.

Pivotlama, aynı satır-sütun kombinasyonu için birden çok değer olduğunda bir toplama fonksiyonuyla Table.Pivot kullanır:

m
// Satışları bölgeye göre pivotla
let
    Source = Excel.CurrentWorkbook(){[Name="DetailedSales"]}[Content],
    Pivoted = Table.Pivot(Source, List.Distinct(Source[Region]), "Region", "Amount", List.Sum)
in
    Pivoted

Sorguları birleştirme ve ekleme

Birden çok kaynaktan verileri birleştirmek, Power Query'nin manuel çabayı azalttığı yerdir. Birleştirme, eşleşen sütunlara dayalı olarak iki tablo arasında bir join gerçekleştirir. Ekleme tabloları dikey olarak yığınlar.

m
// Left join: Müşteri detaylarıyla Siparişler
let
    Orders = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
    Customers = Excel.CurrentWorkbook(){[Name="Customers"]}[Content],
    Merged = Table.NestedJoin(Orders, {"CustomerID"}, Customers, {"ID"}, "CustomerDetails", JoinKind.LeftOuter),
    Expanded = Table.ExpandTableColumn(Merged, "CustomerDetails", {"Name", "Email"})
in
    Expanded

Table.NestedJoin fonksiyonu eşleşen satırları içeren iç içe bir tablo sütunu oluşturur. Table.ExpandTableColumn fonksiyonu daha sonra iç içe yapıyı normal sütunlara düzleştirir. Join türleri Inner, LeftOuter, RightOuter, FullOuter, LeftAnti ve RightAnti içerir.

Table.Combine ile ekleme eşleşen sütun adları gerektirir. Şemalar farklı olduğunda, birleştirmeden önce her kaynakta Table.SelectColumns tutarlılık sağlar:

m
// Tutarlı sütunlarla iki satış tablosunu ekle
let
    Sales2024 = Table.SelectColumns(Source2024, {"Date", "Product", "Amount"}),
    Sales2025 = Table.SelectColumns(Source2025, {"Date", "Product", "Amount"}),
    Combined = Table.Combine({Sales2024, Sales2025})
in
    Combined

Özel sütunlar ve koşullu mantık

"Sütun Ekle > Özel Sütun" özelliği M ifadeleri kullanarak hesaplanmış alanlara izin verir. Koşullu mantık if-then-else sözdizimi kullanır.

m
// Koşullu mantıkla hesaplanmış bir sütun ekle
let
    Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
    AddedColumn = Table.AddColumn(Source, "OrderCategory", each 
        if [Amount] >= 10000 then "Enterprise"
        else if [Amount] >= 1000 then "Business"
        else "Consumer",
        type text
    )
in
    AddedColumn

if ifadesi hem then hem de else dallarını içermelidir. İç içe koşullar else if ile zincirlenir. Son parametre sütun türünü belirtir, performansı iyileştirir ve tür çıkarım sorunlarını önler.

Karmaşık dönüşümler için let bloğunda tanımlanan yardımcı fonksiyonlar kodu okunabilir tutar:

m
let
    // Mali çeyrek için yardımcı fonksiyon
    GetFiscalQuarter = (date as date) as text =>
        let
            month = Date.Month(date),
            fiscalQ = if month >= 4 and month <= 6 then "Q1"
                     else if month >= 7 and month <= 9 then "Q2"
                     else if month >= 10 and month <= 12 then "Q3"
                     else "Q4"
        in
            fiscalQ,
    
    Source = Excel.CurrentWorkbook(){[Name="Transactions"]}[Content],
    AddedQuarter = Table.AddColumn(Source, "FiscalQuarter", each GetFiscalQuarter([Date]), type text)
in
    AddedQuarter

Power Query'de hata işleme

Dönüşüm hataları tüm sorguyu başarısız kılmak yerine hücrelerde "Error" değerleri olarak görünür. try-otherwise yapısı hataları zarif bir şekilde işler:

m
// Potansiyel bölme hatalarını işle
let
    Source = Excel.CurrentWorkbook(){[Name="Metrics"]}[Content],
    AddedRatio = Table.AddColumn(Source, "Ratio", each 
        try [Value1] / [Value2] otherwise null,
        type number
    )
in
    AddedRatio

try anahtar kelimesi ifadeyi dener ve HasError ve Value alanlarına sahip bir kayıt döndürür. otherwise cümleciği HasError doğru olduğunda bir geri dönüş sağlar. Daha fazla kontrol için try Expression ile hata ayrıntılarına erişin:

m
// Hata ayrıntılarını yakala
let
    result = try SomeRiskyFunction(),
    output = if result[HasError] then "Error: " & result[Error][Message] else result[Value]
in
    output

Veri analistleri için Power Query mülakat soruları

Mülakatçılar hem pratik becerileri hem de Power Query'nin bir iş akışına ne zaman uyduğunun anlaşılmasını değerlendirir. Bu sorular veri analisti mülakatlarında sıkça görülür.

Sorgu katlama nedir ve neden önemlidir?

Sorgu katlama, Power Query dönüşümlerini veri kaynağı için yerel sorgulara çevirir. SQL Server'a bağlanırken, bir filtre adımı sunucuda yürütülen bir WHERE cümleciğine dönüşür ve ağ transferini azaltır. Tüm dönüşümler katlanmaz: özel M fonksiyonları, belirli tarih manipülasyonları ve katlanmayan bir adımdan sonraki işlemler zinciri kırar. Bir adıma sağ tıklayıp "Yerel Sorguyu Görüntüle" arayarak katlama durumunu kontrol edin.

Power Query veri dönüşümü için Excel formüllerinden nasıl farklıdır?

Excel formülleri çalışma sayfasında hücre hücre çalışır ve her değişiklikte yeniden hesaplanır. Power Query, çalışma sayfasına ulaşmadan önce tablolar üzerinde çalışır ve yenileme sırasında verileri toplu olarak işler. Ters pivotlama, yinelenen kaldırma veya dosya birleştirme gibi dönüşümler için Power Query, mantığı iç içe INDEX-MATCH veya yardımcı sütunlardan daha doğrudan ifade eder.

ETL için Power Query yerine Power BI'ı ne zaman tercih edersiniz?

Excel'deki Power Query, analistlerin ad-hoc analiz, pivot tablolar veya Power BI erişimi olmayan kullanıcılarla paylaşım için elektronik tablo formunda dönüştürülmüş verilere ihtiyaç duyduğu senaryolara uygundur. Power BI daha zengin görselleştirme, daha büyük veri kapasitesi ve kurumsal paylaşım özellikleri sağlar. Aynı M kodu her iki araçta da çalışır, bu nedenle Excel'de geliştirilen sorgular yeniden yazmadan Power BI Desktop'a taşınabilir.

Tabloları eklerken veri türü uyumsuzluklarını nasıl işlersiniz?

Table.Combine ile birleştirmeden önce her kaynak tabloda açık türler ayarlayın. Bir sütun bir kaynakta metin ve diğerinde sayı ise, ekleme başarısız olur veya hatalar üretir. Tutarlı türleri zorlamak için her iki kaynakta da Table.TransformColumnTypes kullanın. try-otherwise deseni, belirli değerler için dönüşümün başarısız olduğu uç durumları işler.

Power Query'de Birleştirme ve Ekleme arasındaki farkı açıklayın.

Birleştirme, SQL JOIN'e benzer şekilde eşleşen anahtar sütunlarına dayalı yatay bir join gerçekleştirir. Ekleme, SQL UNION ALL'a benzer şekilde birden çok tablodan satırların dikey birleşimini gerçekleştirir. Birleştirme eşleştirme için en az bir ortak sütun gerektirir. Ekleme, düzgün hizalanması için aynı isimlere sahip sütunlar gerektirir.

Power Query becerilerini tamamlayan SQL kavramlarında daha derin hazırlık için SQL pencere fonksiyonları modülü sıralama ve toplama desenlerini kapsar, SQL alt sorgular ve CTE'ler modülü ise sorgu yapılandırma tekniklerini ele alır.

Yükleme seçenekleri ve yenileme stratejileri

Dönüşümlerden sonra "Kapat ve Yükle" düğmesi yükleme seçenekleri sunar: çalışma sayfası tablosuna yükle, yalnızca veri modeline yükle (Power Pivot) veya yalnızca bağlantı sorgusu oluştur. Yalnızca bağlantı sorguları, çalışma sayfası alanı tüketmeden diğer sorgular için hazırlama adımları olarak hizmet eder.

Yenileme davranışı yükleme hedefine bağlıdır. Çalışma sayfası tabloları "Tümünü Yenile" düğmesiyle yenilenir veya dosya açılışında yenilenecek şekilde ayarlanabilir. Veri modeli tabloları çalışma kitabının veri modeli yenileme döngüsüne katılır. Harici veritabanlarına bağlı sorgular için, kayıtlı kimlik bilgileri yoksa yenilemede kimlik bilgisi istemleri görünebilir.

Arka plan yenilemesi, veri yüklenirken çalışma kitabının kullanılabilir kalmasını sağlar, ancak aşağı akış formülleri yenilenen verilere bağlı olduğunda karmaşıklık yaratır. Sorgu özelliklerindeki "Arka plan yenilemesini etkinleştir" seçeneği bu davranışı kontrol eder. Kritik raporlar için arka plan yenilemesini devre dışı bırakmak sıralı yürütmeyi sağlar.

Büyük veri kümeleri için performans değerlendirmeleri

Power Query milyonlarca satırı işleyebilir, ancak çalışma kitabı yanıt verebilirliği verilerin nasıl yüklendiğine bağlıdır. Çalışma sayfası tabloları yerine veri modeline yüklemek Excel'in satır sınırını aşar ve pivot tablo performansını iyileştirir. Gereksiz sütunları erken kaldırmak bellek ayak izini azaltır.

Birkaç dakika süren sorgular için Sorgu Düzenleyicisindeki "Veri önizlemesi" yalnızca bir örnek gösterir. Dönüşümler yenileme sırasında tam veri kümesine uygulanır. Önizlemede görünen hatalar sorunları gösterir, ancak bazı hatalar yalnızca tam verilerle görünür. Bir alt kümede test yenilemesi çalıştırmak, her şeyi işlemeden önce sorguyu doğrular.

Birçok dosyayı birleştirirken, Power Query'nin ikili birleştirme özelliği dosyaları paralel olarak işler. Bir dosyayı dönüştüren bir fonksiyon tanımlamak, ardından dosya listesindeki her satır için çağırmak, varsayılan birleştirme yaklaşımından daha fazla kontrol sağlar.

Power Query en iyi uygulamaları hakkındaki Microsoft belgeleri, sorgu bağımlılık yapıları ve arabellek kullanımı dahil olmak üzere optimizasyon tekniklerini ayrıntılı olarak açıklar.

Tekrarlanabilir ETL pipeline'ları için Power Query

Power Query'deki kaydedilen adımlar dönüşüm mantığının dokümantasyonunu oluşturur. Gereksinimler değiştiğinde, bir adımı değiştirmek tüm aşağı akış adımlarını otomatik olarak günceller. Bu, kaynak veriler değiştiğinde sıfırdan yeniden oluşturmayı gerektiren ad-hoc Excel manipülasyonlarıyla tezat oluşturur.

Ekipler bağlantıları dışa aktararak veya sorgu M kodunu sürüm kontrolünde saklayarak sorguları paylaşabilir. Gelişmiş Düzenleyici (Görünüm > Gelişmiş Düzenleyici) başka bir çalışma kitabına kopyalanıp yapıştırılabilen tam M betiğini görüntüler. Kurumsal senaryolar için Power BI veri akışları ve Fabric merkezi sorgu yönetimi sağlar.

  • Power Query, kaydedilen, tekrarlanabilir dönüşüm adımlarını kullanarak Excel içinde ETL'i işler
  • Görsel arayüzün altında yatan M dili, şerit komutlarının ötesinde özelleştirmelere olanak tanır
  • Sorgu katlama, daha iyi performans için filtreleri ve projeksiyonları kaynak veritabanlarına iter
  • Birleştirme tablolar arasında join'ler gerçekleştirir, Ekleme tabloları dikey olarak yığınlar
  • Tür atamaları ve hata işleme sessiz veri kalitesi sorunlarını önler
  • Yalnızca bağlantı sorguları, çalışma sayfası çıktısı olmadan yeniden kullanılabilir hazırlama adımları oluşturur
  • Mülakat soruları sorgu katlama, formül karşılaştırması ve birleştirme ile ekleme ayrımlarına odaklanır

Pratik yapmaya başla!

Mülakat simülatörleri ve teknik testlerle bilgini test et.

Günün meydan okuması

Data Analytics kodundaki hatayı bulabilir misin?

Gerçek bir kod parçası, gizli bir hata, günde bir deneme. Denemek için hesap gerekmez.

Anthony Fillion-Maillet

Yazan:

Anthony Fillion-Maillet

SharpSkill kurucusu

10 yılı aşkın süredir fullstack geliştirici. SharpSkill’i yönetiyor ve burada yayımlanan her şeyden sorumlu.

20 Eylül 2026 tarihinde güncellendi

Etiketler

#excel
#power-query
#etl
#data-analytics
#m-dili

Paylaş

İlgili makaleler