Hata işlevlerinin uygun kullanımı

Veri modelleyicisi olarak, değerlendirme zamanı hatası oluşturabilecek bir DAX ifadesi yazdığınızda, iki yararlı DAX işlevi kullanmayı düşünebilirsiniz.

Ancak, bu işlevler yararlı olabilir ve anlaşılması kolay ifadeler yazmaya katkıda bulunabilir, ancak hesaplamaların performansını önemli ölçüde düşürebilir. Bu işlevler gereken depolama altyapısı taramalarının sayısını artırdığından bu durum oluşabilir.

Değerlendirme zamanı hatalarının çoğu beklenmeyen BLANK'lardan veya sıfır değerlerden ya da geçersiz veri türü dönüştürmeden kaynaklanıyor.

Öneriler

ISERROR ve EĞERHATA işlevlerini kullanmaktan kaçınmak daha iyidir. Bunun yerine, modeli geliştirirken ve ifadeler yazarken savunma stratejileri uygulayın. Stratejiler şunları içerebilir:

  • Kaliteli verilerin modele yüklendiğinden emin olun: Geçersiz veya eksik değerleri kaldırmak veya değiştirmek ve doğru veri türlerini ayarlamak için Power Query dönüşümlerini kullanın. Power Query dönüşümü, geçersiz veri dönüştürme gibi hatalar oluştuğunda satırları filtrelemek için de kullanılabilir.

    Veri kalitesi, model sütunu Null atanabilir özelliği Kapalı olarak ayarlanarak da denetlenebilir. Bu özellik, BLANK'larla karşılaşılması durumunda veri yenileme işleminin başarısız olmasını sağlar. Bu hata oluşursa, başarılı bir yenilemenin sonucu olarak yüklenen veriler tablolarda kalır.

  • EĞER işlevini kullanma: EĞER işlevi mantıksal test ifadesi bir hata sonucunun oluşup oluşmayacağını belirleyebilir. ISERROR ve EĞERHATA işlevleri gibi bu işlevin de ek depolama altyapısı taramalarına neden olabileceğini, ancak hatanın tetiklenmesi gerekmediğini unutmayın.

  • Hataya dayanıklı işlevleri kullanma: Bazı DAX işlevleri hata koşullarını test eder ve telafi eder. Bu işlevler bunun yerine döndürülecek alternatif bir sonuç girmenizi sağlar. DIVIDE işlevi bu tür örneklerden biridir. Bu işlev hakkında ek yönergeler için DAX: DIVIDE işlevi ve bölme işleci (/) makalesini okuyun.

Örnek

Aşağıdaki ölçü ifadesi bir hata oluşturulup oluşturulmayacağını test eder. Bu örnekte BLANK döndürür (IF işlevini bir value-if-false ifadesiyle sağlamadığınızda bu durum geçerlidir).

Profit Margin
= IF(ISERROR([Profit] / [Sales]))

Ölçü ifadesinin bu sonraki sürümü, EĞER ve EĞERHATA işlevlerinin yerine EĞERHATA işlevi kullanılarak geliştirilmiştir.

Profit Margin
= IFERROR([Profit] / [Sales], BLANK())

Ancak, ölçü ifadesinin bu son sürümü aynı sonuca ulaşır, ancak daha verimli ve zarif bir şekilde elde edilir.

Profit Margin
= DIVIDE([Profit], [Sales])