تابع CALCULATE یک عبارت را در فیلتر context اصلاح شده ارزیابی می کند.
توجه داشته باشید
همچنین عملکرد CALCULATETABLE وجود دارد. این عملکرد دقیقاً مشابه را انجام می دهد ، با این تفاوت که زمینه فیلتر اعمال شده روی عبارتی را که یک شی جدول را برمی گرداند ، تغییر می دهد.
Syntax
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Parameters
عبارتی که به عنوان اولین پارامتر استفاده می شود در اصل همان اندازه گیری است.
فیلترها می توانند عبارتند از:
- عبارات فیلتر Boolean
- عبارات فیلتر جدول
- توابع اصلاح فیلتر
هنگامی که چندین فیلتر وجود دارد ، می توان آنها را با استفاده از عملگر منطقی AND (&&) ارزیابی کرد ، بدین معنی که همه شرایط باید TRUE باشند ، یا توسط عملگر منطقی OR (||) ، به این معنی که هر یک از شرایط می تواند درست باشد.
عبارات فیلتر Boolean
فیلتر بیان Boolean عبارتی است که به TRUE یا FALSE ارزیابی می شود. چندین قانون وجود دارد که آنها باید رعایت کنند:
- آنها می توانند ستون ها را از یک جدول منفرد ارجاع دهند.
- آنها نمی توانند به معیارها ارجاع دهند.
- نمی توانند از یک تابع CALCULATE تو در تو استفاده کنند.
- آنها نمی توانند از توابعی که جدول را اسکن یا برمی گرداند استفاده کنند مگر اینکه به عنوان آرگومان به توابع تجمع ارسال شوند.
- آنها می توانند حاوی یک تابع تجمع باشند که یک مقدار اسکالر را برمی گرداند. مثلا،
Total sales on the last selected date =
CALCULATE (
SUM ( Sales[Sales Amount] ),
‘Sales'[OrderDateKey] = MAX ( ‘Sales'[OrderDateKey] )
)
بیان فیلتر جدول (Table filter)
فیلتر عبارت جدول یک شی جدول را به عنوان فیلتر اعمال می کند. این می تواند مرجعی برای یک جدول مدل باشد ، اما به احتمال زیاد این یک تابع است که یک شی جدول را برمی گرداند.
می توانید از تابع FILTER برای اعمال شرایط پیچیده فیلتر ، از جمله شرایطی که با عبارت فیلتر Boolean تعریف نمی شوند ، استفاده کنید.
توابع اصلاح کننده فیلتر (Filter modifier)
توابع اصلاح کننده فیلتر به شما این امکان را می دهد که کارهای بیشتری از افزودن فیلترها انجام دهید. آنها هنگام اصلاح زمینه فیلتر، کنترل بیشتری در اختیار شما قرار می دهند.
تابع | هدف |
---|---|
REMOVEFILTERS | تمام فیلترها یا فیلترها را از یک یا چند ستون یک جدول یا از همه ستون های یک جدول حذف کنید |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | فیلترها را از یک یا چند ستون یا از تمام ستون های یک جدول حذف کنید |
KEEPFILTERS | بدون حذف فیلترهای موجود در همان ستون ها، فیلتر را اضافه کنید |
USERELATIONSHIP | یک رابطه غیر فعال بین ستون های مرتبط ایجاد کنید، در این صورت رابطه فعال به طور خودکار غیرفعال می شود |
CROSSFILTER | جهت فیلتر را تغییر دهید (از هر دو به تک، یا از تک به هر دو) یا یک رابطه را غیرفعال کنید |
1 تابع ALL و انواع آن هم به عنوان اصلاح کننده فیلتر و هم به عنوان توابعی که اشیاء جدول را برمی گردانند ، رفتار می کنند.اگر عملکرد REMOVEFILTERS توسط ابزار شما پشتیبانی می شود ، بهتر است از آن برای حذف فیلترها استفاده کنید.
مقدار بازگشتی
مقدار حاصل از عبارت است.
ملاحظات
- هنگامی که عبارات فیلتر ارائه می شود، تابع CALCULATE زمینه فیلتر را برای ارزیابی عبارت تغییر می دهد. برای هر عبارت فیلتر، زمانی که عبارت فیلتر در تابع KEEPFILTERS پیچیده نشده باشد، دو نتیجه استاندارد ممکن وجود دارد:
- اگر ستونها (یا جداول) در زمینه فیلتر نباشند، فیلترهای جدیدی برای ارزیابی عبارت به بافت فیلتر اضافه میشوند.
- اگر ستونها (یا جداول) از قبل در زمینه فیلتر باشند، فیلترهای موجود توسط فیلترهای جدید برای ارزیابی عبارت CALCULATE بازنویسی میشوند.
- تابع CALCULATE که بدون فیلتر استفاده می شود به یک نیاز خاص دست می یابد. متن ردیف را به زمینه فیلتر منتقل می کند. زمانی که یک عبارت (نه یک معیار مدل) که دادههای مدل را خلاصه میکند، باید در زمینه ردیف ارزیابی شود، لازم است.
این سناریو می تواند در یک فرمول ستون محاسبه شده یا زمانی که یک عبارت در یک تابع تکرار کننده ارزیابی می شود اتفاق بیفتد. توجه داشته باشید که وقتی یک معیار مدل در زمینه ردیف استفاده می شود، انتقال متن به صورت خودکار انجام می شود.
- این تابع برای استفاده در حالت DirectQuery هنگامی که در ستون های محاسبه شده یا قوانین امنیت سطح ردیف (RLS) استفاده می شود پشتیبانی نمی شود.
برای مشاهده ویدیوی آموزشی Add New Column در یوتیوب لینک زیر را کلیک کنید ⇓
⇐ ⇐ Add New Column From an Example in Power Query
مثال ها
جدول اندازه گیری جدول فروش زیر نتیجه درآمد ایجاد می کند ، اما فقط برای محصولاتی که رنگ آبی دارند.
تابع CALCULATE مجموع ستون میزان فروش جدول فروش را در زمینه فیلتر اصلاح شده ارزیابی می کند.
یک فیلتر جدید به ستون رنگ جدول محصول اضافه می شود – یا فیلتر هر فیلتری را که قبلاً روی ستون اعمال شده است رونویسی می کند.
جدول اندازه گیری فروش زیر ، نسبت فروش به فروش را برای همه کانال های فروش ایجاد می کند.
تابع CALCULATE
تابع DIVIDE عبارتی را که مقدار ستون میزان فروش جدول فروش را (در زمینه فیلتر) با همان عبارت در زمینه فیلتر اصلاح شده جمع می کند ، تقسیم می کند.
این تابع CALCULATE است که با استفاده از تابع REMOVEFILTERS ، که یک تابع اصلاح کننده فیلتر است ، زمینه فیلتر را تغییر می دهد. این فیلترها را از ستون جدول سفارش فروش حذف می کند.
جدول ستون محاسبه شده در جدول زیر مشتریان را در یک طبقه وفاداری طبقه بندی می کند.
این یک سناریوی بسیار ساده است: هنگامی که درآمد تولید شده توسط مشتری کمتر از 2500 دلار باشد ، آنها به عنوان کم طبقه بندی می شوند. وگرنه آنها بالا هستند.
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
“Low”,
“High”
)
در این مثال ، زمینه سطر به زمینه فیلتر تبدیل می شود. به عنوان انتقال زمینه شناخته می شود. تابع ALLEXCEPT فیلترها را از همه ستون های جدول مشتری به جز ستون CustomerKey حذف می کند.
به دنبال این هستید که داده های خود را از طریق تجزیه و تحلیل بصری به نمایش بذارید ؟ با ما در داده کاوی ویستا ارتباط برقرار کنید.
با یکی از کارشناسان داده ما تماس بگیرید و صحبت کنید، و ما به هر سوالی که ممکن است داشته باشید پاسخ خواهیم داد.
دوره آموزشی هوش تجاری با Power BI »کلیک کنید« یک برنامه جامع است که بر توسعه مهارت در تجزیه و تحلیل دادهها، تجسم و گزارش سازی و گزارش دهی و دشبوردسازی با استفاده از ابزار Power BI تمرکز دارد.
سپاسگذاریم از وقتی که برای خواندن این مقاله گذاشتید
.
برای خرید لایسنس پاور بی ای Power BI کلیک کنید
.
برای مشاهده ویدیوهای آموزشی داده کاوی و هوش تجاری ما را در شبکه های اجتماعی دنبال کنید
Youtube Chanel :VISTA Data Mining
Aparat Chanel: VISTA Data Mining
Instagram Chanel: VISTA Data Mining
Telegram Chanel: VISTA Data Mining
Linkedin Chanel: VISTA Company