Hata işleme
Excel ve DAX dilinin işlevine IFERROR
benzer şekilde, Power Query'nin hataları test etmek ve yakalamak için kendi söz dizimi vardır.
Power Query'deki hatalarla ilgilenme makalesinde belirtildiği gibi, hatalar adım veya hücre düzeyinde görünebilir. Bu makale, kendi mantığınıza göre hataları nasıl yakalayabileceğinize ve yönetebileceğinize odaklanır.
Not
Bu kavramı göstermek için, bu makalede veri kaynağı olarak bir Excel Çalışma Kitabı kullanılır. Burada sergilenen kavramlar, yalnızca Excel Çalışma Kitabı'ndan gelenler için değil, Power Query'deki tüm değerler için geçerlidir.
Bu gösterim için örnek veri kaynağı, aşağıdaki tabloya sahip bir Excel Çalışma Kitabıdır.
Excel Çalışma Kitabı'ndaki bu tabloda Standart Fiyat sütununda #NULL!, #REF! ve #DIV/0! gibi Excel hataları vardır. Bu tabloyu Power Query düzenleyicisine aktardığınızda, aşağıdaki görüntüde nasıl göründüğü gösterilir.
Excel çalışma kitabındaki hataların her hücredeki değerle [Error]
nasıl gösterildiğine dikkat edin.
Bu makalede, bir hatayı başka bir değerle değiştirmeyi öğreneceksiniz. Ayrıca, bir hatayı yakalamayı ve kendi mantığınız için kullanmayı da öğrenirsiniz.
Bu durumda hedef, örnek veri kaynağında Standart Fiyat sütunundaki değerleri kullanan yeni bir Son Fiyat sütunu oluşturmaktır. Herhangi bir hata varsa ilgili Özel Oran sütunundaki değeri kullanır.
Yeni bir özel sütun oluşturmak için Sütun ekle menüsüne gidin ve Özel sütun'u seçin. Özel sütun penceresinde formülünü try [Standard Rate] otherwise [Special Rate]
girin. Bu yeni sütunu Son Fiyat olarak adlandır.
Bu formül Standart Oran sütununu değerlendirmeye çalışır ve hata bulunmazsa değerini verir. Standart Oran sütununda hatalar bulunursa çıkış, deyiminden otherwise
sonra tanımlanan değerdir ve bu durumda Özel Oran sütunudur.
Tablodaki tüm sütunlara doğru veri türlerini ekledikten sonra, aşağıdaki görüntüde son tablonun nasıl göründüğü gösterilir.
Not
Alternatif bir yaklaşım olarak, önceki formülle try [Standard Rate] catch ()=> [Special Rate]
eşdeğer olan ancak catch anahtar sözcüğünü parametre gerektirmeyen bir işlevle birlikte kullanarak formülünü de girebilirsiniz.
Anahtar catch
sözcük, Mayıs 2022'de Power Query'ye tanıtıldı.
Önceki bölümle aynı örnek veri kaynağını kullanarak yeni hedef, Son Fiyat için yeni bir sütun oluşturmaktır. Standart Oran'dan gelen değer varsa, bu değer kullanılır. Aksi takdirde, hata #REF!
içeren satırlar dışında Özel Oran sütunundaki değer kullanılır.
Not
Hatayı dışlamanın #REF!
tek amacı tanıtım amaçlıdır. Bu makaledeki kavramlarla, hata kaydından istediğiniz alanları hedefleyebilirsiniz.
Hata değerinin yanındaki boşluklardan herhangi birini seçtiğinizde ekranın alt kısmındaki ayrıntılar bölmesine ulaşabilirsiniz. Ayrıntılar bölmesi hem hata nedenini hem DataFormat.Error
de hata iletisini Invalid cell value '#REF!'
içerir:
Bir kerede yalnızca bir hücre seçebilirsiniz, bu nedenle aynı anda yalnızca bir hata değerinin hata bileşenlerini etkili bir şekilde inceleyebilirsiniz. Bu noktada yeni bir özel sütun oluşturup ifadesini kullanırsınız try
.
Yeni bir özel sütun oluşturmak için Sütun ekle menüsüne gidin ve Özel sütun'u seçin. Özel sütun penceresinde formülünü try [Standard Rate]
girin. Bu yeni sütuna Tüm Hatalar adını verin.
İfade, try
değerleri ve hataları, ifadenin try
bir hatayı işleyip işlemediğini ve doğru değeri veya hata kaydını gösteren bir kayıt değerine dönüştürür.
Yeni oluşturulan bu sütunu kayıt değerleriyle genişletebilir ve sütun üst bilgisinin yanındaki simgeyi seçerek genişletilecek kullanılabilir alanlara bakabilirsiniz.
Bu işlem üç yeni alanı kullanıma sunar:
- Tüm Errors.HasError— Standart Oran sütunundaki değerin hata içerip oluşmadığını görüntüler.
- Tüm Errors.Value— Standart Fiyat sütunundaki değerde hata yoksa, bu sütun Standart Fiyat sütunundaki değeri görüntüler. Hata içeren değerler için bu alan kullanılamaz ve genişletme işlemi sırasında bu sütunda değerler bulunur
null
. - Tüm Hatalar.Hata— Standart Fiyat sütunundaki değerde hata varsa, bu sütun Standart Fiyat sütunundaki değerin hata kaydını görüntüler. Hatasız değerler için bu alan kullanılamaz ve genişletme işlemi sırasında bu sütunda değerler bulunur
null
.
Daha fazla araştırma yapmak için Tüm Hatalar.Hata sütununu genişleterek hata kaydının üç bileşenini alabilirsiniz:
- Hata nedeni
- Hata İletisi
- Hata ayrıntısı
Genişletme işlemini yaptıktan sonra, Tüm Hatalar.Hata.İleti alanında, her hücrede tam olarak hangi Excel hatası olduğunu belirten belirli bir hata iletisi görüntülenir. Hata iletisi, hata kaydının Hata İletisi alanından türetilir.
Artık her hata iletisi yeni bir sütunda yer alırsa, Son Hız adını ve aşağıdaki yan tümceleri içeren yeni bir koşullu sütun oluşturabilirsiniz:
- Tüm Hatalar.Hatalar.İleti sütunundaki değer değerine eşitse
null
çıkış, Standart Oran sütunundaki değerdir. - Aksi takdirde, Tüm Hatalar.Hatalar.İleti sütunundaki değer eşit
Invalid cell value '#REF!'.
değilse çıkış, Özel Oran sütunundaki değerdir. - Else, null.
Yalnızca Account, Standard Rate, Special Rate ve Final Rate sütunlarını koruyarak ve her sütun için doğru veri türünü ekledikten sonra, aşağıdaki görüntüde son tablonun nasıl göründüğü gösterilir.
Alternatif olarak, ve catch
anahtar sözcüklerini kullanarak try
yeni bir özel sütun da oluşturabilirsiniz.
try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null