EXCEL’DE POWER QUERY İLE VERİ TEMİZLEME AKIŞI KURMAK
Excel dosyaları büyüdükçe en çok zaman kaybettiren şey, aynı temizlik adımlarını her gün yeniden yapmak olur. Power Query, bu tekrarları bir “akış”a dönüştürerek tek tıkla yenilenebilir hâle getirmeyi sağlar.
Bu yazıda Power Query ile veri temizleme yaklaşımını uçtan uca ele alıp; ham veriyi içeri almak, tipleri düzeltmek, hataları yakalamak, birleştirmek, standardize etmek ve sonunda rapora hazır bir tablo üretmek için pratik bir yol haritası kuracağız.
Hedefimiz, kurumsal ekiplerin sıkça yaşadığı “versiyon karmaşası, manuel kopyala-yapıştır, kırılan formüller” gibi sorunları azaltıp izlenebilir ve tekrarlanabilir bir süreç oluşturmaktır.
Power Query mantığını doğru kurmak ve ilerlemek
Akış tasarımını en baştan planlamak ve başlamak
Power Query’de “akış” dediğimiz şey, sorgu içinde ardışık adımların (Applied Steps) kayıt altına alınmasıyla oluşur. Bu adımlar; sütun seçmek, tür dönüştürmek, satır filtrelemek, metin temizlemek gibi işlemleri sırayla tutar. Böylece veri kaynağı güncellendiğinde aynı adımlar tekrar uygulanarak çıktı tablo otomatik güncellenmiş olur.
Bu yaklaşım, özellikle ETL benzeri ihtiyaçlarda (Extract-Transform-Load) Excel’in sınırlarını genişletir. Kritik nokta, akışı “tek seferlik müdahale” gibi değil, her yenilemede çalışacak bir “pipeline” gibi kurgulamaktır. Bu yüzden adım isimlerini anlamlı tutmak, gereksiz adımları azaltmak ve dönüşümlerin sırasını doğru seçmek gerekir.
Kaynak bağımlılığını azaltmak için kural koymak
Ham dosyalar sık sık yer değiştiriyorsa veya isimleri değişiyorsa, sorgunun kırılması kaçınılmazdır. Bu riski azaltmak için dosya yolunu parametre yapmak, klasör bağlayıcılarını kullanmak ve mümkünse veri kaynağını tek bir “landing” klasöründe sabitlemek iyi bir pratiktir. Ayrıca gizlilik düzeyi (Privacy Levels) ayarlarının da veri birleştirme adımlarını etkileyebileceğini unutmamak gerekir.

Veri kaynağını güvenli almak ve bağlamak
Dosya ve tablo seçiminde sürdürülebilir bağ kurmak
Power Query’ye giriş, “Veri Al” seçenekleriyle başlar: CSV, Excel, klasör, SharePoint, SQL gibi kaynaklar seçilebilir. Kurumsal senaryolarda, kaynağın sabit ve erişilebilir olması kadar, formatının da tutarlı olması önemlidir. Örneğin CSV’de ayraç değişimi, tarih formatının bölgesel ayarlara göre farklılaşması gibi durumlar akışı bozabilir.
Bu nedenle ilk adımda “Source” adımını sade tutmak, ham veriyi mümkün olduğunca değiştirmeden bir sonraki aşamaya taşımak önerilir. Dönüşümleri, kaynaktan ziyade Power Query içinde tanımlamak daha izlenebilir bir yapı sağlar.
Gizlilik ve kimlik doğrulamayı düzgün yönetmek ve sürdürmek
Birden fazla kaynağı (ör. Excel + web servisi) birleştiriyorsanız, gizlilik düzeyleri sorgunun katlama (query folding) davranışını ve yenileme başarısını etkileyebilir. Kurum içinde, kimlik doğrulama yöntemleri (Windows, OAuth, Basic) ile yenileme senaryosu (masaüstü, Power BI, Gateway) uyumlu olacak şekilde seçilmelidir. Aksi hâlde sorgu, sizin bilgisayarınızda çalışıp paylaşımda kırılabilir.
Kolon türlerini ve kaliteyi netleştirmek ve düzeltmek
Veri türünü erken belirlemek ve sabitlemek
En sık yapılan hata, veri türlerini (tarih, sayı, metin) rastgele bırakmaktır. Power Query otomatik algılama yapsa da, bu algı kaynağın ilk satırlarına göre yanlış karar verebilir. Bu da raporda toplama hatalarına, tarih sıralamasında bozulmalara ve join işlemlerinde eşleşme sorunlarına yol açar.
Pratik bir yaklaşım; önce gerekli sütunları seçmek, sonra türleri bilinçli şekilde ayarlamak ve tür dönüşümünü mümkün olduğunca erken uygulamaktır. Böylece bir sonraki adımlarda daha az sürpriz yaşanır.
Boşluk, satır sonu ve görünmez karakterleri temizlemek ve gidermek
Kurumsal verilerde “aynı görünen ama eşleşmeyen” değerlerin büyük kısmı, baştaki/sondaki boşluk, satır sonu veya görünmez karakterlerden kaynaklanır. Metin alanlarında Trim ve Clean
let
Source = Excel.Workbook(File.Contents("C:\Data\HamVeri.xlsx"), null, true),
Table1 = Source{[Item="Siparisler",Kind="Table"]}[Data],
Selected = Table.SelectColumns(Table1, {"SiparisNo","Musteri","Tarih","Tutar","Sehir"}),
CleanText = Table.TransformColumns(Selected, {
{"Musteri", each Text.Clean(Text.Trim(_)), type text},
{"Sehir", each Text.Upper(Text.Clean(Text.Trim(_))), type text}
}),
Typed = Table.TransformColumnTypes(CleanText, {{"Tarih", type date}, {"Tutar", type number}, {"SiparisNo", type text}})
in
TypedBu örnekte önce kolon seçilerek gereksiz yük azaltılır, sonra metin alanlarında trim/clean uygulanır, en sonda türler sabitlenir. Böyle bir sıralama, akışın daha stabil çalışmasını sağlar.
Satır filtreleme ve dönüşüm sırasını doğru seçmek
Filtreyi erken uygulamak ve maliyeti düşürmek
Veri seti çok büyükse, gereksiz satırları en başta elemek performansı ciddi biçimde iyileştirir. Örneğin yalnızca son 12 ayı istiyorsanız, filtreyi rapor tarafında değil sorgu tarafında uygulamak daha doğru olur. Ayrıca veri kaynağı bir veritabanıysa, query folding sayesinde filtre sunucuya itilerek daha hızlı çalışabilir.
Hata satırlarını ayıklamak ve güvenle ilerlemek
Tür dönüşümü sonrasında bazı satırlarda hata oluşabilir (ör. “Tutar” alanında metin). Power Query, hatalı satırları işaretler. Burada iki yaklaşım vardır: hatalı satırları kaldırmak veya hatayı yakalayıp varsayılan değer atamak. Kurumsal raporlamada çoğu zaman “hatanın görünür kalması” istenir; çünkü veri kalitesini ölçmek gerekir.
let
Source = Excel.CurrentWorkbook(){[Name="tblHam"]}[Content],
Typed = Table.TransformColumnTypes(Source, {{"Tutar", type number}, {"Tarih", type date}}),
AddErrorFlag = Table.AddColumn(Typed, "KaliteDurumu", each if [Tutar] = null then "KontrolEt" else "OK", type text),
ReplaceErrors = Table.ReplaceErrorValues(AddErrorFlag, {{"Tutar", null}, {"Tarih", null}})
in
ReplaceErrorsBu senaryoda “ReplaceErrorValues” ile akışın kırılması engellenirken, “KaliteDurumu” kolonu ile veri kalitesi için işaretleme bırakılmış olur. Böylece operasyon ekipleri hatayı saklamak yerine izleyebilir.
Birleştirme ve eşleştirme adımlarını sağlamlaştırmak
Anahtar kolonları standardize etmek ve eşleştirmek
Power Query ile veri birleştirme (Merge) yapılırken, en kritik konu anahtar kolonların tutarlılığıdır. Örneğin müşteri kodu bir tabloda “00123”, diğerinde “123” olabilir; veya biri metin diğeri sayı olabilir. Bu tür farklar, eşleşmeyi görünmez biçimde bozar ve eksik kayıtlar üretir.
Çözüm olarak anahtar alanları tek tipe dönüştürmek, soldan sıfır doldurmak (pad), trim/clean yapmak ve gerekiyorsa tek bir normalizasyon fonksiyonu tanımlamak iyi olur. Özellikle CRM/ERP kaynaklı verilerde bu adımı atlamak raporun güvenilirliğini düşürür.
Birden fazla kaynağı yönetmek için model kurmak
Kurumsal senaryolarda “Siparişler” tablosuna “Müşteri Master” ve “Ürün Master” bağlamak yaygındır. Merge sonrası genişletme (Expand) ile sadece gerekli kolonları almak, akışı sadeleştirir. Ayrıca join türünü (Left Outer, Inner vb.) bilinçli seçmek gerekir: raporlama için genelde Left Outer tercih edilir; çünkü siparişler ana tablo kabul edilir.

Yenileme, parametre ve dokümantasyonla sürdürülebilir kılmak
Parametre kullanarak dosya yolunu yönetmek ve kolaylaştırmak
Dosya yolunu parametre yapmak, farklı ortamlar (test/üretim) arasında geçişi kolaylaştırır. Ayrıca klasör bağlantısı kullanıyorsanız, en güncel dosyayı adına göre seçmek gibi senaryolar da mümkündür. Bu yaklaşım, manuel müdahaleyi azaltıp kontrolü artırır.
Adım adım açıklamak için isimlendirme yapmak
Applied Steps listesindeki adımların “Changed Type”, “Removed Columns” gibi otomatik isimlerle kalması, ekip içi devri zorlaştırır. Adımları “TürleriDuzeltmek”, “BosluklariTemizlemek”, “MasterIleEslestirmek” gibi amaç odaklı adlandırmak, sorgunun okunabilirliğini yükseltir. Bu basit alışkanlık, hata ayıklamayı da hızlandırır.
Çıktıyı modele uygun yüklemek ve rapora hazırlamak
Çıktı tabloyu nereye yükleyeceğiniz de akışın parçasıdır. Excel içine tablo olarak yükleyebilir, yalnızca bağlantı olarak bırakabilir veya veri modeline ekleyebilirsiniz. Kurumsal raporlama tarafında, çoğu zaman bağlantı + model yaklaşımı daha ölçeklenebilir olur. Yenileme zamanını doğru kurgulamak da önemlidir; özellikle paylaşımlı dosyalarda yenileme sırasında kilitlenmeler yaşanabilir.
- Kaynak adımını sade tutmak ve dönüşümü sorguya taşımak
- Türleri erken sabitlemek ve hata riskini azaltmak
- Anahtarları normalize etmek ve merge güvenilirliğini artırmak
- Parametre kullanmak ve ortam geçişini kolaylaştırmak
- Adımları adlandırmak ve ekip içi devri hızlandırmak
Bu yapıyı kurarken daha geniş bir temel için Excel eğitimi içeriğine de göz atarak; veri modeli, pivot, Power Pivot ve raporlama pratiklerini tamamlayabilirsiniz.

Kurumsal senaryolarda kalite ve yönetişimi artırmak
Veri kalite metriklerini görünür tutmak ve izlemek
Power Query sadece “temizlemek” için değil, aynı zamanda kaliteyi ölçmek için de kullanılabilir. Örneğin boş değer sayısı, beklenmeyen formatlar, tekrar eden anahtarlar gibi göstergeleri yardımcı kolonlarla işaretleyebilirsiniz. Bu sayede veri sahipleri hangi sistemin hangi alanı bozduğunu daha hızlı görür. Şeffaflık burada önemlidir; sorunları saklamak yerine raporlamak uzun vadede daha doğru bir yönetişim sağlar.
Versiyonlama ve paylaşımı disipline etmek ve standartlaştırmak
Bir sorgu akışı oluşturduğunuzda, bunun “tek kişilik bir sihir” olmasını istemezsiniz. Sorgu adımlarını ve varsayımlarınızı (hangi kolonlar zorunlu, hangi değerler normalleştiriliyor, join anahtarları neler) kısa bir dokümanla desteklemek iyi olur. Excel dosyası bir ekip tarafından kullanılıyorsa, paylaşım alanı, dosya kilidi ve yenileme sorumluluğu netleşmelidir.
Power Query’nin M dili, gerektiğinde gelişmiş senaryolar için esneklik sunar; ancak amaç her şeyi kodlamak değil, bakımı kolay bir akış kurmaktır. En iyi pratik, “en basit çalışan çözümü” kurup sonra ihtiyaç oldukça iyileştirmeler eklemektir.


