فروش لایسنس Power BI

با ما داده های خود را درک کنید تا برای آینده کسب و کارتان بهتر تصمیم گیری کنید.

تابع CALCULATE در Power BI

تابع CALCULATE در Power BI

تابع CALCULATE در DAX

تابع CALCULATE در زبان DAX یکی از مهم‌ترین و پرکاربردترین توابع در Power BI است. این تابع به شما امکان می‌دهد تا محاسبات عددی (Scalar) را در زمینه‌ای فیلترشده انجام دهید. به‌عبارت ساده‌تر، CALCULATE به شما اجازه می‌دهد تا مقدار یک عبارت را با اعمال فیلترهای دلخواه محاسبه کنید.

تعریف تابع CALCULATE

DAX
CALCULATE(<expression>, <filter1>, <filter2>, ...)
  • expression: عبارتی که باید محاسبه شود (مانند مجموع، میانگین، شمارش و غیره)
  • filter: یک یا چند شرط فیلتر که بر روی داده‌ها اعمال می‌شود

عملکرد تابع چگونه است؟

تابع CALCULATE ابتدا فیلترهای مشخص‌شده را اعمال می‌کند، سپس عبارت عددی را در زمینه فیلترشده ارزیابی می‌کند. این تابع برای ساخت معیارهای پویا، تحلیل‌های مقطعی، و ایجاد KPIهای سفارشی بسیار کاربردی است.

مثال ساده

فرض کنید می‌خواهید مجموع فروش فقط برای محصولات الکترونیکی را محاسبه کنید:

DAX
TotalElectronicsSales =
CALCULATE(
    SUM(Sales[Amount]),
    Products[Category] = "Electronics"
)

در این مثال، فقط ردیف‌هایی که دسته‌بندی آن‌ها “Electronics” است در محاسبه لحاظ می‌شوند.

استفاده در معیارهای پویا

تابع CALCULATE اغلب در ترکیب با توابعی مانند SUM, AVERAGE, COUNT, و FILTER استفاده می‌شود.

مثال: میانگین فروش در سال 2025

DAX
AverageSales2025 =
CALCULATE(
    AVERAGE(Sales[Amount]),
    YEAR(Sales[Date]) = 2025
)

تفاوت CALCULATE و CALCULATETABLE

تابع خروجی کاربرد
CALCULATE() مقدار منفرد (Scalar) محاسبه عددی با فیلتر
CALCULATETABLE() جدول استخراج مجموعه داده با فیلتر

 نکات مهم

  • CALCULATE فقط در صورتی کار می‌کند که عبارت ورودی قابل ارزیابی عددی باشد.
  • فیلترها می‌توانند شامل توابع پیچیده مانند FILTER, ALL, VALUES باشند.
  • CALCULATE زمینه ارزیابی (Context) را تغییر می‌دهد، بنابراین درک درست از زمینه بسیار مهم است.

کاربردهای رایج

  • ساخت KPIهای سفارشی
  • تحلیل فروش بر اساس منطقه، زمان یا دسته‌بندی
  • مقایسه عملکرد در بازه‌های زمانی مختلف
  • اعمال فیلترهای پویا بر اساس انتخاب کاربر

مثال پیشرفته: فروش مشتریان VIP در سال جاری

DAX
VIPSalesThisYear =
CALCULATE(
    SUM(Sales[Amount]),
    Customers[VIPStatus] = TRUE(),
    YEAR(Sales[Date]) = YEAR(TODAY())
)

ملاحظات

  • هنگامی که عبارات فیلتر ارائه می‌شوند، تابع CALCULATE زمینه فیلتر را برای ارزیابی عبارت تغییر می‌دهد. برای هر عبارت فیلتر، دو نتیجه استاندارد ممکن وجود دارد که عبارت فیلتر در تابع KEEPFILTERS قرار نمی‌گیرد:
    • اگر ستون‌ها (یا جداول) در زمینه فیلتر نباشند، فیلترهای جدید برای ارزیابی عبارت به زمینه فیلتر اضافه می‌شوند.
    • اگر ستون‌ها (یا جداول) از قبل در زمینه فیلتر باشند، فیلترهای موجود توسط فیلترهای جدید برای ارزیابی عبارت CALCULATE رونویسی می‌شوند.
  • تابع CALCULATE که بدون فیلتر استفاده می‌شود، یک الزام خاص را برآورده می‌کند. این تابع زمینه ردیف را به زمینه فیلتر منتقل می‌کند. زمانی که یک عبارت (نه یک معیار مدل) که داده‌های مدل را خلاصه می‌کند، نیاز به ارزیابی در زمینه ردیف داشته باشد، لازم است. این سناریو می‌تواند در یک فرمول ستون محاسبه شده یا زمانی که یک عبارت در یک تابع تکرارگر ارزیابی می‌شود، اتفاق بیفتد. توجه داشته باشید که وقتی یک معیار مدل در زمینه ردیف استفاده می‌شود، انتقال زمینه به صورت خودکار انجام می‌شود.
  • این تابع برای استفاده در حالت DirectQuery در هنگام استفاده در ستون‌های محاسبه شده یا قوانین امنیتی سطح ردیف (RLS) پشتیبانی نمی‌شود.

برای خرید لایسنس نرم افزار Power BI ، می‌توانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.

فرم درخواست لایسنس Power BI

میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا