Power Query'de Hata Veren Satırları Bulmak ve Yönetmek
Bir sütunu sayıya çevirdiğinizde "NA" yazan tek bir hücre tüm sorguyu bozmak zorunda değil. Hataları görünür kılmayı, kaldırmayı, yedek değerle değiştirmeyi ve try ile kendi koşullu mantığınızı yazmayı öğrenirsiniz.
Bir bakışta
- Hata iki düzeyde görünür: adım hatası sorguyu durdurur, hücre hatası durdurmaz. Hücre hataları tabloda Error olarak işaretlenir ve yüklemeyi engellemez; ama sessizce eksik veri doğurabilir.
- Üç hazır komut vardır: hataları kaldır, değiştir, koru. Koru, düzeltmeden önce hangi satırların bozuk olduğunu denetlemek için en kullanışlısıdır.
- try otherwise, Excel'deki IFERROR mantığının Power Query karşılığıdır. Bir ifade hata verirse yedek bir ifade ya da değer kullanılır.
- Hata sebebine göre karar vermek için try ifadesinin kayıt çıktısı kullanılır. Kayıt, hata olup olmadığını, değeri ve hata ayrıntısını ayrı alanlarda verir.
- Hatayı örtmek çözüm değildir; kaynağı düzeltmek her zaman daha iyidir. Değiştir komutu yalnızca hatanın anlamı belliyse ve rapora zarar vermiyorsa kullanılmalıdır.
Hata türleri: adım düzeyi ve hücre düzeyi
Power Query'de iki farklı hata karşınıza çıkar. Adım düzeyinde hata, sorgunun yüklenmesini engeller ve hata bilgisi sarı bir bölmede görünür. Tipik örnek, adımın başvurduğu bir sütunun kaynakta artık bulunmamasıdır: sütun adı kaynakta elle değiştirilmişse yeniden adlandırma adımı "sütun bulunamadı" hatası verir. Çözüm genellikle adımı kaldırmak ya da sütun adını güncellemektir. Veri kaynağına ulaşılamaması (dosya taşınmış, başka bir kullanıcının sürücüsünde olmayan yol) da bu türdendir.
Hücre düzeyinde hata ise sorguyu durdurmaz. Hatalı hücre tabloda Error olarak görünür ve hücrenin boşluğuna tıkladığınızda alt bölmede hata nedeni, hata iletisi ve ayrıntısı çıkar. En yaygın sebep veri türü dönüşümüdür: bir sütunu metinden tam sayıya çevirdiniz, bir hücrede ise "NA" yazıyor. İkinci yaygın sebep desteklenmeyen işlemdir; metin ile sayıyı doğrudan birleştirmeye çalışmak gibi.
Sütun kalitesi göstergesini açmak, hücre hatalarını tek tek aramadan bulmanın en hızlı yoludur. Yüklemeye geçmeden önce her kritik sütunun hata oranına bakmak iyi bir alışkanlıktır.
Adım hatası sorguyu durdurur, hücre hatası sessizce yoluna devam eder
| Adım düzeyinde hata | Hücre düzeyinde hata | |
|---|---|---|
| Etkisi | Sorgu yüklenmez | Sorgu yüklenir, hücre Error görünür |
| Nasıl görünür | Sarı hata bölmesi | Hücrede Error, alt bölmede ayrıntı |
| Tipik sebep | Bulunamayan sütun, ulaşılamayan kaynak | Veri türü dönüşümü, desteklenmeyen işlem |
| Çözüm yolu | Adımı ya da kaynağı düzeltmek | Kaldır, değiştir, koru ya da try |
Hataları kaldırmak, değiştirmek ve korumak
Hücre hataları için üç hazır komut vardır. Hepsi önce hatalı sütunu seçmenizi ister.
- Hataları kaldır: Giriş sekmesinde satırları azalt grubundan satırları kaldır menüsünden "Remove errors" seçilir. Hata içeren satırlar tablodan çıkar. Hata, çok sayıda satırı etkilemiyorsa ve o satırlara gerçekten ihtiyaç yoksa uygundur; yoksa sessizce veri kaybedersiniz.
- Hataları değiştir: Dönüştür sekmesinde değerleri değiştir menüsünden "Replace errors" seçilir ve sabit bir değer yazılır. Örneğin satış sütunundaki "NA" hücrelerinin dönüşüm hatasını sıfırla ya da boş değerle değiştirebilirsiniz. Sıfır ile boş değer farklı davranır; ortalamaları ve toplamları etkiler, bu yüzden seçimi bilerek yapın.
- Hataları koru: Satırları tut menüsünden "Keep errors" seçilir. Yalnızca hatalı satırlar kalır. Hataları düzeltmeden önce neyin bozuk olduğunu görmek ve kaynak sahibine iletmek için denetim aracıdır.
Bu komutlar arayüz adlarıdır; Türkçe arayüzde aynı konumda karşılıklarını görürsünüz. Pratik sıra şudur: önce koru ile bozuk satırlara bakın, sonra sebebi kaynağa dönerek çözün, çözülemiyorsa değiştirin, kaldırma son seçenek olsun.
try otherwise ile yedek değer
Hata yönetimini formül düzeyinde yapmak için M dilindeki try ifadesi kullanılır. Excel'de IFERROR ne işe yarıyorsa, try otherwise Power Query'de aynı işi görür: ilk ifade hata verirse ikinci ifade kullanılır.
Microsoft belgesindeki örnek şudur. Tabloda bir standart oran ve bir özel oran sütunu vardır; standart oran sütununda bazı hücreler hatalıdır. Özel sütun eklemek için Sütun ekle sekmesinden Özel sütun komutunu seçin, sütuna Nihai Oran adını verin ve şu formülü yazın:
try [Standart Oran] otherwise [Özel Oran]
Formül önce standart oranı değerlendirir; hata yoksa onu, hata varsa özel oranı verir. Aynı işi catch anahtar sözcüğüyle de yazabilirsiniz:
try [Standart Oran] catch () => [Özel Oran]
İki yazım denktir. Belgeye göre catch, otherwise'dan sonra eklenmiş yeni bir sözdizimidir ve hata ayrıntısına da erişim sağlar. Yedek değer olarak başka bir sütunu, sabit bir değeri ya da başka bir ifadeyi kullanabilirsiniz. Önemli olan yedeğin iş anlamı taşımasıdır: boş bırakmanın, sıfırla değiştirmenin ve başka bir kaynaktan almanın sonuçları farklıdır.
Hatanın nedenine göre karar vermek
Bazen tüm hataları aynı şekilde ele almak istemezsiniz. Örneğin bir hata türü için yedek değer kullanmak, diğeri için boş bırakmak isteyebilirsiniz. Bunun için try ifadesini otherwise olmadan kullanırsınız. Yalnızca try [Standart Oran] yazarak özel bir sütun eklediğinizde sütun bir kayıt döndürür ve kayıt, genişletildiğinde şu alanları verir.
- HasError: ifadenin hata verip vermediği.
- Value: hata yoksa asıl değer; hata varsa boş.
- Error: hata varsa hata kaydı; hata yoksa boş. Bu kayıt da genişletildiğinde hata nedenini, hata iletisini ve ayrıntıyı verir.
Sonraki adımda koşullu sütun ekleyerek iş mantığınızı yazarsınız: hata iletisi boşsa standart değeri kullan; ileti belirli bir metne eşit değilse özel değeri kullan; diğer durumlarda boş bırak. Aynı mantığı tek formülde de yazabilirsiniz:
try [Standart Oran] catch (r) => if r[Message] <> "Invalid cell value '#REF!'." then [Özel Oran] else null
Bu örnek, Excel'den gelen başvuru hatalarını bilerek dışarıda bırakır ve diğer hatalarda özel oranı kullanır. Belge bunu yalnızca gösterim amacıyla verir; asıl ders, hata alanlarından istediğinize göre karar verebilmenizdir.
Hatayı ne yapacağınız, hatanın ne anlama geldiğine bağlıdır
- Önce neyin bozuk olduğunu görmek istiyorumHataları koruYalnızca hatalı satırlar kalır; kaynak sahibine iletmek için idealdir.
- Hatalı satırlar anlamsız ve gereksizHataları kaldırVeri kaybını sayıp doğrulayın.
- Hata varken yedek bir değer anlamlıHataları değiştir ya da try otherwiseYedeğin toplamları nasıl etkilediğini düşünün.
- Hata türüne göre farklı davranmalıyımtry ve hata kaydıMessage, Reason ve ayrıntı alanlarına göre koşul kurun.
Hataları önlemek: türler ve temizlik
En iyi hata yönetimi, hatanın hiç oluşmamasıdır. Sütun türünü dönüştürmeden önce metni temizlemek, hataların büyük kısmını önler. Sayıya çevireceğiniz sütunda "NA", "-", boşluk ya da "yok" gibi metinleri önce boş değer yapın, ondan sonra dönüştürün. Binlik ve ondalık ayırıcıların yerel ayara göre okunması da sık bir hata kaynağıdır; dönüşüm adımında kültür seçeneğini kullanmak sorunu çözer.
İkinci ilke, adım sırasıdır. Türü değiştiren adımı filtreleme ve temizlik adımlarından sonraya koyun. Üçüncü ilke, otomatik eklenen son tür değiştirme adımını denetlemektir: sütun adları değişirse bu adım adım düzeyinde hata verir ve tablo görünmez.
Kaynaktan gelen Excel hata değerleri de (başvuru hatası, sıfıra bölme gibi) Power Query'ye Error olarak taşınır. Kaynak dosyada düzeltilmeleri, yedek değerle örtülmelerinden her zaman daha sağlıklıdır. Düzenli raporlarda her yenilemeden sonra hata sayısını kontrol eden bir tablo tutmak da erken uyarı sağlar: hatalı satırları koru ile ayrı bir sorguya alıp panoda sayıyı gösterin.
Sık yapılan hatalar
- Hatayı kaldırıp haber vermemek: kaybolan satırlar toplamları sessizce değiştirir. Kaldırmadan önce koru ile bakın.
- Değiştir komutunda sıfır ile boş değer arasındaki farkı düşünmemek: sıfır ortalamayı aşağı çeker, boş değer çoğu hesapta yok sayılır.
- try otherwise'ı her hatayı gizlemek için kullanmak: gerçek kaynak sorunları (bozulmuş dosya, yanlış sütun) görünmez olur.
- Türü değiştirme adımını temizlikten önce yapmak: hatayı kendi ellerinizle üretirsiniz.
- Adım düzeyinde hatayı hücre hatası gibi çözmeye çalışmak: sütun bulunamıyorsa değiştir komutu yardımcı olmaz, adımı ya da kaynağı düzeltmeniz gerekir.
- Hata kaydını genişletmeden yalnızca ilk satıra bakmak: bir kerede tek hücre seçilebildiği için her hatanın nedeni aynı olmayabilir.
- Gerekli olmayan sütunlardaki hatalar yüzünden sorguyu karmaşıklaştırmak: kullanılmayan sütunları önce kaldırın.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Uygulamalı Power BI ile Veri Analitiği ve Görselleştirme Sertifika Programı, veri analizi ve işleme teknikleri, veri modelleme ve yönetimi ile Power BI ile veri entegrasyonu başlıklarını içerir. Kaynaktan gelen kirli veriyi raporlamaya hazırlayan analistler ve BI geliştiricileri, hata yönetimi alışkanlığını bu başlıklarla birlikte oturtabilir.
İlgili Mindset programı
Uygulamalı Power BI ile Veri Analitiği ve Görselleştirme Sertifika Programı
Sık sorulan sorular
Power Query'de hatalı satırları nasıl hızlıca bulurum?
Hatalı sütunu seçip satırları tut menüsünden hataları koru komutunu kullanın; yalnızca hatalı satırlar kalır. Ayrıca sütun kalitesi göstergesini açarak her sütundaki hata oranını görebilirsiniz. Hücreye tıkladığınızda alt bölmede hata nedeni ve iletisi çıkar.
try otherwise ile try catch arasında ne fark var?
Basit yedek değer için ikisi denktir. Catch, hata kaydını bir parametre olarak alıp ileti ve neden gibi alanlara göre koşul yazmanıza imkân verir. Belgeye göre catch sonradan eklenmiş yeni bir sözdizimidir; eski sürümlerde yalnızca otherwise çalışabilir.
Excel'deki IFERROR işlevinin Power Query karşılığı nedir?
try otherwise ifadesidir. Microsoft belgesi de bu benzetmeyi yapar: Excel ve DAX'taki IFERROR mantığı Power Query'de kendi sözdizimiyle sunulur. Formülü Özel sütun penceresine yazarsınız.
Hataları değiştirmek mi kaldırmak mı daha doğru?
Hatalı satırın iş anlamı varsa ve toplamlara katkısı gerekiyorsa değiştirmek, satır tamamen anlamsızsa kaldırmak mantıklıdır. Karar vermeden önce hataları koruyup kaç satırın etkilendiğini görün. Kaynaktaki hatayı düzeltmek her ikisinden de iyidir.
Sorgu hata verdiği için hiç yüklenmiyorsa ne yapmalıyım?
Bu büyük olasılıkla adım düzeyinde bir hatadır. Sarı bölmedeki hata nedenine, iletiye ve ayrıntıya bakın. Bulunamayan sütun için adımı güncelleyin, ulaşılamayan kaynak için yolu ve yetkiyi kontrol edin, gerekirse hatalı adımı kaldırıp yeniden kurun.
İlgili rehberler
Kategori: Veri Analitiği ve İş Zekası