تابع REMOVEFILTERS در Power BI

اخیرا ماکروسافت تابع جدیدی به نام REMOVEFILTERS را به مجموعه توابع DAX در Power BI اضافه نموده است. تابع REMOVEFILTERS‌ که خوشبختانه نام مناسبی برای آن برگزیده شده و نام آن متناسب با کارکرد آن است. این تابع به عنوان پارامتر فیلتر در تابع CALCULATE به کار می رود. در این مطلب به معرفی تابع REMOVEFILETRS در Power BI و تفاوت های آن با ALL پرداخته شده است.

معرفی

ابتدا مقایسه ای بین ALL و REMOVEFILTERS داشته باشیم. به نظر می رسد این ۲ تابع مشابه هم عمل می کنند. حتما می دانید که تابع ALL برای صرف نظر از در نظر گرفتن فیلترهایی از سوی برخی ستون ها و جداول است.به طور مثال ALL(Categories) بدین معنی است که تمامی فیلترهای اعمال شده از سوی جدول Categories نادیده گرفته شود.

به مثال زیر توجه کنید. در این جدول ۳ Measure مورد استفاده قرار گرفته است.  اولی میزان فروش، دومی میزان فروش و نادیده گرفتن تمام فیلترهای جدول Categories با استفاده از تابع ALL و سومی با استفاده از تابع REMOVEFILTERS است.

مژر اول به صورت زیر نوشته شده است.

  Screenshot 1083 - تابع REMOVEFILTERS در Power BI

 

مژر دوم به صورت زیر نوشته شده است.

Screenshot 1081 - تابع REMOVEFILTERS در Power BI

 

 

مژر سوم به صورت زیر نوشته شده است.

Screenshot 1082 - تابع REMOVEFILTERS در Power BI

 

 

در نهایت نتایج این محاسبات در جدول زیر قابل مشاهده است.

Screenshot 1080 - تابع REMOVEFILTERS در Power BI

همان طور که مشاهده می کنید اعداد برای دو ستون برابر شده است چرا که ما در فرمول خود خواسته ایم که تمامی فیلترهای مربوط به جدول Categories نادیده گرفته شوند.

نقش های ALL

ALL هم می تواند به عنوان Table Function ایفای نقش کند هم به عنوان اصلاح کننده (modifier) در CALCULATE. به مثال زیر توجه کنید. در این مثال ALL به عنوان یک Table Function ایفای نقش می کند.

فرض کنید می خواهیم تعداد مشتریان را به تفکیک عنوان شغلی محاسبه کنیم و در نهایت درصد هر شغل را محاسبه کنیم.

مژر ابتدایی تعداد مشتریان را به تفکیک عنوان شغلی محاسبه می کند

 Screenshot 1085 - تابع REMOVEFILTERS در Power BI

 

در مژر دوم ALL در نقش Table Function ظاهر شده و کل مشتریان را محاسبه می کند.

Screenshot 1084 - تابع REMOVEFILTERS در Power BI

 

 

مژر سوم حاصل تقسیم مژر اول بر مژر دوم است.

Screenshot 1087 - تابع REMOVEFILTERS در Power BI

 

و در نهایت خروجی زیر حاصل می شود.

Screenshot 1088 - تابع REMOVEFILTERS در Power BI

تابع REMOVEFILTERS نمی تواند در نقش Table Function به جای ALL مورد استفاده قرار گیرد. همان طور که مشاهده می کنید در صورتی که از این تابع در نقش Table Function استفاده کنیم با خطا مواجه خواهیم شد.

Screenshot 1089 - تابع REMOVEFILTERS در Power BI

 

 

حال به نقش ALL به عنوان modifier بپردازیم. فرض کنید می خواهیم همان محاسبات را با استفاده از تابع CALCULATE انجام دهیم.

مژر اول به صورت زیر تعداد مشتریان را به تفکیک شغل نشان می دهد.

Screenshot 1085 - تابع REMOVEFILTERS در Power BI

 

 

مژر دوم تعداد کل مشتریان را محاسبه می کند و در این جا ALL به عنوان modifier ایفای نقش می کند.

Screenshot 1090 - تابع REMOVEFILTERS در Power BI

 

 

مژر سوم از حاصل تقسیم دو مژر بر یکدیگر به دست می آید.

Screenshot 1087 - تابع REMOVEFILTERS در Power BI

 

 

در نهایت خروجی به صورت زیر قابل مشاهده است.

Screenshot 1091 - تابع REMOVEFILTERS در Power BI

در اینجا تابع REMOVEFILTERS می تواند به عنوان جانشین ALL و به عنوان یک Modifier ایفای نقش کند. شما می توانید این تابع را جایگزین ALL کنید.  به کد زیر توجه کنید.

Screenshot 1092 - تابع REMOVEFILTERS در Power BI

 

 

و در نهایت خروجی عینا تکرار می شود.

Screenshot 1093 - تابع REMOVEFILTERS در Power BI

شما می توانید بسته به نتیجه مورد نیاز خود از یک جدول، یک یا چند ستون به عنوان آرگومان REMOVEFILTERS استفاده کنید یا آن را بدون آرگومان به کار ببرید.

جمع بندی

تابع REMOVEFILTERS کاری مشابه با ALL انجام می دهد. حتی می توان گفت ALL در موارد بیشتری کاربرد دارد. ضمن اینکه ALL توابع هم خانواده ی بسیاری مانند ALLSELECTED و ALLEXCEPT دارد که این توابع هنوز برای REMOVEFILTERS ارائه نشده اند. لذا توصیه می شود از تابع REMOVEFILTERS به عنوان Modifier به عنوان جایگزین ALL استفاده نمایید و در موارد دیگر از ALL استفاده کنید.

ضمنا به این نکته توجه نمایید که تابع REMOVEFILTERS در Power BI ارائه شده است و در Excel Power pivot قابل استفاده نمی باشد.




6b77990865d588b48d7f55a013cdd7ec?s=300&d=mm&r=g - تابع REMOVEFILTERS در Power BI

حسین وثوقی

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

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

avatar
  عضویت  
به دوستتان خبر دهید.