تابع REMOVEFILTERS در Power BI
تابع REMOVEFILTERS در زبان DAX یکی از توابع مهم برای کنترل زمینه فیلتر (Filter Context) در Power BI است. این تابع به شما امکان میدهد تا فیلترهای اعمالشده روی یک یا چند ستون یا جدول را حذف کنید و محاسبات را در زمینهای بدون فیلتر انجام دهید.
Syntax
REMOVEFILTERS([<table> | <column>[, <column>[, <column>[,…]]]])
Parameters
| Term | تعریف |
|---|---|
| table | جدولی که میخواهید فیلترهای آن را پاک کنید. |
| column |
مقدار برگشتی
N/A. به توضیحات مراجعه کنید.
توضیحات
- REMOVEFILTERS فقط میتواند برای پاک کردن فیلترها استفاده شود اما نمیتواند جدول را برگرداند.
- این تابع برای استفاده در حالت DirectQuery هنگام استفاده در ستونهای محاسبهشده یا قوانین امنیتی سطح ردیف (RLS) پشتیبانی نمیشود.
مثال 1
DAX query
DEFINE
MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount])
MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales], CALCULATE([TotalSales],REMOVEFILTERS()))
EVALUATE
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL(DimProductCategory[EnglishProductCategoryName], "IsGrandTotal"),
"TotalSales", [TotalSales],
"%Sales", [%Sales]
)
ORDER BY
[IsGrandTotal] DESC, [TotalSales] DESC
بازگشتها
| DimProductCategory[EnglishProductCategoryName] | [IsGrandTotal] | [TotalSales] | [%Sales] |
|---|---|---|---|
| Row1 | True | 29358677.2207 | 1 |
| Bikes | False | 28318144.6507 | 0.964557920570538 |
| Accessories | False | 700759.96 | 0.023868921434441 |
| Clothing | False | 339772.61 | 0.0115731579950215 |
مثال 2
DAX query
DEFINE
MEASURE FactInternetSales[TotalSales] = SUM(FactInternetSales[SalesAmount])
MEASURE FactInternetSales[%Sales] = DIVIDE([TotalSales], CALCULATE([TotalSales],REMOVEFILTERS(DimProductSubcategory[EnglishProductSubcategoryName])))
EVALUATE
SUMMARIZECOLUMNS(
DimProductCategory[EnglishProductCategoryName],
DimProductSubcategory[EnglishProductSubcategoryName],
"TotalSales", [TotalSales],
"%Sales", [%Sales]
)
ORDER BY
DimProductCategory[EnglishProductCategoryName] ASC,
DimProductSubcategory[EnglishProductSubcategoryName] ASC
بازگشتها
| DimProductCategory [EnglishProductCategoryName] | DimProductSubcategory [EnglishProductSubcategoryName] | [TotalSales] | [%Sales] |
|---|---|---|---|
| Accessories | Bike Racks | 39360 | 0.05616759 |
| Accessories | Bike Stands | 39591 | 0.05649723 |
| Accessories | Bottles and Cages | 56798.19 | 0.08105228 |
| Accessories | Cleaners | 7218.6 | 0.0103011 |
| Accessories | Fenders | 46619.58 | 0.06652717 |
| Accessories | Helmets | 225335.6 | 0.3215589 |
| Accessories | Hydration Packs | 40307.67 | 0.05751994 |
| Accessories | Tires and Tubes | 245529.32 | 0.35037578 |
| Bikes | Mountain Bikes | 9952759.564 | 0.35146228 |
| Bikes | Road Bikes | 14520584.04 | 0.51276608 |
| Bikes | Touring Bikes | 3844801.05 | 0.13577164 |
| Clothing | Caps | 19688.1 | 0.05794493 |
| Clothing | Gloves | 35020.7 | 0.10307099 |
| Clothing | Jerseys | 172950.68 | 0.5090189 |
| Clothing | Shorts | 71319.81 | 0.20990453 |
| Clothing | Socks | 5106.32 | 0.01502864 |
| Clothing | Vests | 35687 | 0.10503201 |
عملکرد چگونه است؟
در Power BI، هنگام استفاده از توابعی مانند CALCULATE، زمینه فیلتر نقش مهمی در نتیجه نهایی دارد. تابع REMOVEFILTERS به شما اجازه میدهد تا فیلترهای موجود را نادیده بگیرید و محاسبه را در سطح کلیتری انجام دهید.
مثال ساده
فرض کنید میخواهید مجموع فروش را بدون در نظر گرفتن فیلتر روی ستون منطقه (Region) محاسبه کنید:
TotalSalesAllRegions =
CALCULATE(
SUM(Sales[Amount]),
REMOVEFILTERS(Sales[Region])
)
در این مثال، حتی اگر در گزارش فیلتر منطقه اعمال شده باشد، این معیار مجموع فروش را برای همه مناطق محاسبه میکند.
تفاوت REMOVEFILTERS با سایر توابع مشابه
| تابع | عملکرد |
|---|---|
REMOVEFILTERS |
حذف کامل فیلترها از ستون یا جدول |
ALL |
حذف فیلترها و بازگرداندن تمام مقادیر منحصربهفرد |
ALLEXCEPT |
حذف همه فیلترها بهجز فیلترهای مشخصشده |
ALLSELECTED |
حفظ فیلترهای انتخابشده توسط کاربر در گزارش |
نکات مهم
- این تابع فقط در توابعی مانند
CALCULATE,CALCULATETABLE, و توابع پیمایشی کاربرد دارد. - اگر روی جدول اعمال شود، تمام فیلترهای ستونهای آن جدول حذف میشود.
- اگر روی یک ستون خاص اعمال شود، فقط فیلتر آن ستون حذف میشود.
کاربردهای رایج
- محاسبه مجموع یا میانگین بدون در نظر گرفتن فیلترهای گزارش
- ساخت معیارهای مقایسهای مانند درصد سهم از کل
- تحلیل دادهها در سطح کلیتر (مثلاً کل کشور بدون توجه به استان)
مثال پیشرفته: درصد فروش هر منطقه نسبت به کل
RegionSalesPercentage =
DIVIDE(
SUM(Sales[Amount]),
CALCULATE(
SUM(Sales[Amount]),
REMOVEFILTERS(Sales[Region])
)
)
در این مثال، مقدار فروش هر منطقه بر مجموع فروش کل کشور تقسیم میشود تا درصد سهم منطقه محاسبه شود.
برای خرید لایسنس نرم افزار Power BI ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.
میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download
