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

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

تابع CALCULATETABLE در Power BI

تابع CALCULATETABLE در Power BI

تابع CALCULATETABLE در Power BI

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

نکته : تابع CALCULATE نیز وجود دارد. این تابع دقیقاً همان عملکرد را انجام می‌دهد، با این تفاوت که زمینه فیلتر اعمال شده بر عبارتی که یک مقدار اسکالر برمی‌گرداند را تغییر می‌دهد.

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

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

Syntax

DAX
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

Parameters

Term تعریف
expression عبارت جدولی که قرار است ارزیابی شود.
filter1, filter2,… (اختیاری) عبارات بولی یا عبارات جدولی که فیلترها یا توابع اصلاح‌کننده فیلتر را تعریف می‌کنند.

عبارتی که به عنوان پارامتر اول استفاده می‌شود باید یک جدول مدل یا تابعی باشد که یک جدول را برمی‌گرداند.

فیلترها می‌توانند عبارتند از:

  • عبارات فیلتر بولی (Boolean)
  • عبارات فیلتر جدول
  • توابع اصلاح فیلتر

وقتی چندین فیلتر وجود دارد، آنها با استفاده از عملگر منطقی AND ارزیابی می‌شوند. این بدان معناست که همه شرایط باید همزمان TRUE باشند.

عبارات فیلتر بولی ( Boolean filter expressions)

یک فیلتر عبارت بولی، عبارتی است که به TRUE یا FALSE ارزیابی می‌شود. چندین قانون وجود دارد که باید رعایت شوند:

  • آنها فقط می‌توانند به یک ستون واحد ارجاع دهند.
  • آنها نمی‌توانند به معیارها ارجاع دهند.
  • آنها نمی‌توانند از یک تابع محاسبه تو در تو استفاده کنند.

از انتشار سپتامبر 2021 Power BI Desktop، موارد زیر نیز اعمال می‌شود:

  • آنها نمی‌توانند از توابعی که جدول را اسکن می‌کنند یا برمی‌گردانند استفاده کنند، مگر اینکه به عنوان آرگومان به توابع تجمیع ارسال شوند.
  • آنها می‌توانند شامل یک تابع تجمیع باشند که یک مقدار اسکالر برمی‌گرداند.

عبارات فیلتر جدول (Table filter expression)

یک فیلتر عبارت جدولی، یک شیء جدول را به عنوان فیلتر اعمال می‌کند. این می‌تواند یک ارجاع به یک جدول مدل باشد، اما به احتمال زیاد تابعی است که یک شیء جدول را برمی‌گرداند. می‌توانید از تابع FILTER برای اعمال شرایط فیلتر پیچیده، از جمله مواردی که نمی‌توان آنها را با یک عبارت فیلتر بولی تعریف کرد، استفاده کنید.

توابع اصلاح فیلتر (Filter modifier functions)

توابع اصلاح‌کننده فیلتر به شما امکان می‌دهند کارهای بیشتری نسبت به اضافه کردن فیلترها انجام دهید. آن‌ها هنگام تغییر زمینه فیلتر، کنترل بیشتری در اختیار شما قرار می‌دهند.

Function هدف
REMOVEFILTERS تمام فیلترها، یا فیلترها را از یک یا چند ستون یک جدول، یا از تمام ستون‌های یک جدول واحد حذف کنید.
ALL 1, ALLEXCEPT, ALLNOBLANKROW فیلترها را از یک یا چند ستون یا از تمام ستون‌های یک جدول واحد حذف کنید.
KEEPFILTERS اضافه کردن فیلتر بدون حذف فیلترهای موجود در همان ستون‌ها.
USERELATIONSHIP یک رابطه غیرفعال بین ستون‌های مرتبط ایجاد کنید، در این صورت رابطه فعال به طور خودکار غیرفعال می‌شود.
CROSSFILTER جهت فیلتر را تغییر دهید (از هر دو به تکی، یا از تکی به هر دو) یا یک رابطه را غیرفعال کنید.

1 تابع ALL و انواع آن هم به عنوان اصلاح‌کننده‌های فیلتر و هم به عنوان توابعی که اشیاء جدول را برمی‌گردانند، عمل می‌کنند. اگر تابع REMOVEFILTERS توسط ابزار شما پشتیبانی می‌شود، بهتر است از آن برای حذف فیلترها استفاده کنید.

مقدار بازگشتی
جدولی از مقادیر.

نکات

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

مثال

مثال زیر از تابع CALCULATETABLE برای بدست آوردن مجموع فروش اینترنتی برای سال ۲۰۰۶ استفاده می‌کند. این مقدار بعداً برای محاسبه نسبت فروش اینترنتی در مقایسه با کل فروش برای سال ۲۰۰۶ استفاده می‌شود.

فرمول زیر:

DAX
= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)

در جدول زیر نتیجه می‌شود:

Row Labels Internet SalesAmount_USD CalculateTable 2006 Internet Sales Internet Sales to 2006 ratio
2005 $2,627,031.40 $5,681,440.58 0.46
2006 $5,681,440.58 $5,681,440.58 1.00
2007 $8,705,066.67 $5,681,440.58 1.53
2008 $9,041,288.80 $5,681,440.58 1.59
Grand Total $26,054,827.45

 

استفاده در توابع دیگر

تابع CALCULATETABLE اغلب در ترکیب با توابعی مانند SUMX, COUNTROWS, FILTER, و ADDCOLUMNS استفاده می‌شود.

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

DAX
TotalElectronicsSales =
SUMX(
    CALCULATETABLE(
        Sales,
        Products[Category] = "Electronics"
    ),
    Sales[Amount]
)

 تفاوت CALCULATE و CALCULATETABLE

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

نکات مهم

  • فیلترها می‌توانند از نوع شرط ساده، جدول فیلترشده، یا توابع پیچیده مانند ALL, FILTER, VALUES باشند.
  • CALCULATETABLE فقط در زمینه‌هایی که جدول مورد نظر قابل ارزیابی باشد کاربرد دارد.
  • اگر فیلترها به‌درستی اعمال نشوند، ممکن است جدول خالی یا خطا بازگردانده شود.

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

  • ساخت جدول‌های سفارشی برای تحلیل‌های خاص
  • فیلتر کردن داده‌ها بر اساس شرایط پویا
  • استفاده در معیارهای پیچیده و KPIها
  • ترکیب با توابع پیمایشی برای محاسبات گروهی

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

DAX
VIPCustomerOrders =
CALCULATETABLE(
    Orders,
    Customers[VIPStatus] = TRUE(),
    Orders[Amount] > 500000
)

در این مثال، فقط سفارش‌هایی از مشتریان VIP با مبلغ بالا استخراج می‌شود.

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

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

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

 

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

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

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