تابع CALCULATE در زبان DAX
تابع CALCULATE یکی از توابع کاربردی در زبان DAX می باشد کاربرد ان برای محاسبات می باشد و به شما این امکان را میدهد تا فیلدی را که در آن محاسبه انجام میشود، تغییر دهید و رفتار پیشفرض محاسبات را فیلتر، اصلاح یا لغو کنید.
در این مطلب میخواهیم به معرفی تابعCALCULATE و استفاده از توابع متفاوت در آن بپردازیم.
برای استفاده از این تابع ابتدا یک Measure ایجاد و سپس از الگو زیر برای فرمول نویسی استفاده می کنیم.
همان طور که در عکس بالا مشاهده می کنید تابع Calculate از یک Expression و چندین آرگومان جهت فیلترگذاری استفاده می شود.
به عنوان مثال فرض می کنیم دو جدول داریم که مربوط به فروش کالا و مشخصات کالا می باشند. حال میخواهیم مبلغ فاکتورهایی که کالای آنها به رنگ آبی هستند را محاسبه کنیم. برای این کار ابتدا یک Measure ایجاد می کنیم و در قسمت فرمول آن عبارت زیر را قرار می دهیم.
Measure = Calculate(invoice[total] , Product[Color] =”Blue”)
تابع CALCULATE و ALL
تابع دیگری به عنوان All وجود دارد که میتواند با این تابع ترکیب شود. در صورتی که از این دو تابع در کنار هم استفاده کنیم، تابع All همه فیلتر ها را نادیده می گیرد.
Measure = Calculate(invoice[total],all(invoice))
نتیجه گیری
بنابراین تابع calculate تابعی است که به ما کمک می کند که محاسبات را به همراه فیلتر انجام دهیم و پرکاربردترین تابع در dax میباشد. می توانید در این تابع چندین نوع فیلتر مختلف از جداول مختلف استفاده کنید. فیلترها باید برمبنای مقادیر ستونها و مقادیر مشخص باشد.
نکته مهم : اگر در تابعcalculate خواستید فیلتری بر مبنای مژر داشته باشید ابتدا مقدار measure را داخل یک متغیر ریخته و سپس آن متغیر را در فیلتر تابع calculate استفاده کنید.