توابع مدیریت خطا در Power BI

در این مطلب با توابع مدیریت خطا در Power BI آشنا خواهیم شد. معمولا در Power BI با خطاهایی مواجه می شویم که می توانیم برخی از آن ها را با استفاده از زبان DAX مدیریت کنیم. خطاهایی که گاها حتی کار اجرای کد را با توقف مواجه نمی کنند. برخی از خطاها اجرای کد را متوقف می کنند. در مطلب زیر می توانید برخی از این خطاها را مشاهده کنید.

 برخی از خطا ها مثل خطای تقسیم عدد بر صفر اجرای کد را با خطا مواجه نمی کنند. اما بهتر است آن ها را مدیریت نموده و از ایجاد آن ها جلوگیری کنیم (Error Handling).

 

خطای تقسیم عدد بر صفر

جدولی با ۲ ستون ایجاد نمودیم و اعدادی را به عنوان نمونه در این ۲ ستون وارد کردیم. در تصویر زیر این جدول را مشاهده می کنید.

2019 10 21 10 38 07 - توابع مدیریت خطا در Power BI

حال می خواهیم این ۲ ستون را به سادگی بر هم تقسیم کنیم. یک ستون محاسباتی (Calculated Column) ایجاد کرده و به راحتی با علامت / عمل تقسیم را انجام می دهیم. اما همان طور که مشاهده می کنید با خطای تقسیم بر صفر مواجه می شویم. این خطا اجرای کد را متوقف نمی کند ولی با علامت ∞ (infinity) به ما نشان می دهد که یک خطای ریاضی اتفاق افتاده است.

= ‘Values'[A]/’Values'[B]

2019 10 21 10 41 44 - توابع مدیریت خطا در Power BI

توابع مدیریت خطا در DAX

تابع DIVIDE

یکی از توابع مدیریت خطا در Power BI، تابع DIVIDE می باشد. همان طور که در تصویر مشاهده می کنید تابع DIVIDE، دو ورودی اجباری و یک ورودی اختیاری دارد. ورودی اول، صورت کسر، ورودی دوم مخرج کسر و ورودی سوم مقدار دلخواه برای نمایش در صورت مواجهه با خطای ریاضی، است.

DIVIDE(<numerator>, <denominator> [ ,<alternateresult>])

Screenshot 1213 - توابع مدیریت خطا در Power BI

حال با استفاده از تابع DIVIDE، عمل تقسیم را انجام می دهیم و عدد ۹۹۹۹۹ را به عنوان عدد دلخواه برای نمایش در صورت خطا در نظر می گیریم. همان طور که مشاهده می کنید دیگر با خطای ریاضی مواجه نخواهیم شد. توجه کنید در صورتی که ورودی سوم را خالی بگذارید برای مقادیر دارای خطا، مقداری نمایش داده نمی شود.

= DIVIDE(‘Values'[A] , ‘Values'[B])

2019 10 21 12 57 47 - توابع مدیریت خطا در Power BI

تابع IF

تابع IF تابعیست که می توانید به وسیله آن عبارات شرطی بنویسید. اگر فلان اتفاق افتاد پس این کار را بکن!!!!! اگر مخرج صفر بود اعلام خطا کن.

پس کافیست این شرط را بنویسیم.

Screenshot 1214 - توابع مدیریت خطا در Power BI

پس عبارت شرطی خود را به این صورت می نویسیم. اگر مخرج صفر بود عدد ۹۹۹۹۹ را نمایش بده وگرنه، صورت را بر مخرج تقسیم کن.

= IF(‘Values'[B] = 0 , 99999, ‘Values’ [A] / ‘Values’ [B])

2019 10 21 13 20 22 - توابع مدیریت خطا در Power BI

اگر می خواهید در صورت خطا مقداری نمایش داده نشود کافیست فرمول خود را به صورت زیر بنویسید. اگر مخرج مخالف صفر بود عمل تقسیم را انجام بده! در غیر اینصورت هیچ کاری نکن!

= IF(‘Values’ [B] <> 0, ‘Values’ [A] / ‘Values’ [B])

2019 10 21 13 25 16 - توابع مدیریت خطا در Power BI

تابع ISERROR

تابع ISERROR، تابعیست که به شما اطلاع می دهد آیا خطایی اتفاق افتاده است یا خیر؟ همان طور که مشاهده می کنید در ۲ جا، مقدار True نمایش داده می شود که نشان دهنده خطا است.

= ISERROR(‘Values'[A]/’Values'[B])

2019 10 21 13 44 46 - توابع مدیریت خطا در Power BI

حال می توانیم با ترکیب IF و ISERROR به نتیجه مورد نظر خود دست پیدا کنیم.

= IF(ISERROR(‘Values'[A]/’Values'[B]),99999,’Values'[A]/’Values'[B])

2019 10 21 13 50 16 - توابع مدیریت خطا در Power BI

تابع IFERROR

تابع IFERROR ترکیبی از تابع IF و ISERROR است. با این ۲ تابع می توانید به همان نتیجه دلخواه برسید. کافی است فرمول را در ورودی اول وارد کنیم و برای ورودی دوم بگوییم مقدار مورد انتظار در صورت خطا چه باشد.

= IFERROR(‘Values'[A]/’Values'[B],99999)

2019 10 21 13 58 55 - توابع مدیریت خطا در Power BI

همان طور که می بینید تقسیم انجام می شود و در صورتی که با خطا همراه بود عدد ۹۹۹۹۹ نمایش داده می شود.

در این مطلب با نحوه کار با توابع مدیریت خطا در Power BI آشنا شدیم. حال به بررسی مثال دیگری می پردازیم.

خطا در تبدیل نوع داده ها (Data Type) به یکدیگر

گاهی اوقات با خطای تبدیل انواع داده به یکدیگر مواجه می شویم. جدولی مطابق تصویر زیر ایجاد نمودیم. همان طور که مشاهده می کنید اگر چه اکثر مقادیر موجود در ستون به صورت عددی هستند اما به دلیل وجود یک مقدار رشته ای (A) در میان آن ها، به طور خودکار نوع داده کل ستون به صورت Text در نظر گرفته شده است.

2019 10 21 15 21 30 - توابع مدیریت خطا در Power BI

حال با یک فرمول ساده سعی می کنیم ستونی ایجاد کنیم و آن را به صورت عددی در نظر بگیریم. تابع VALUE تابعی است که این کار را برای ما انجام می دهد.

= VALUE(‘Values'[Value])

Screenshot 1215 - توابع مدیریت خطا در Power BI

بعد از اجرای فرمول با خطایی مواجه می شوید که می گوید امکان تبدیل A به عدد را ندارد و خب حق هم دارد!

2019 10 21 15 28 07 - توابع مدیریت خطا در Power BI

حال می توانید با استفاده از تابع IFERROR این موضوع را مدیریت کنید.

= IFERROR(VALUE(‘Values'[Value]),99999)

در واقع می گویید اگر توانستی تبدیل به عدد کنی تبدیل کن و اگر نتوانستی ۹۹۹۹۹ را نمایش بده! نتیجه این کد به صورت زیر قابل نمایش است. همان طور که مشاهده می کنید Data Type این ستون به صورت عددی تبدیل شده است.

2019 10 21 15 39 06 - توابع مدیریت خطا در Power BI

 





6b77990865d588b48d7f55a013cdd7ec?s=300&d=mm&r=g - توابع مدیریت خطا در Power BI

حسین وثوقی

دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...

4
دیدگاه بگذارید

avatar
2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
moslemحسین وثوقیmr.mahlouji Recent comment authors
  عضویت  
جدید ها قدیمی ها بیشترین رای
به دوستتان خبر دهید.
mr.mahlouji
مهمان
mr.mahlouji

سلام
اراتمندم
عالی مثل همیشه
تشکر

moslem
مهمان
moslem

بسیار عالی پاینده باشید