Yazılarımız

Veri Akademi

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.

Excel tablolarını Power Query adımlarıyla standardize edip hataları ayıklamayı anlatan çalışma düzeni

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
    Typed

Bu ö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
    ReplaceErrors

Bu 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.

Sorgu birleştirme adımıyla müşteri master tablosundan alanları güvenli eşleştirmeyi anlatan akış

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.

Yenileme düğmesi ve adım listesini izleyerek rapora hazır tablo üretmeyi anlatan çalışma ekranı

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.

 CADSAY