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

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

تابع ALL در DAX

تابع ALL در DAX

تابع ALL در Power BI

تابع ALL در زبان DAX یکی از توابع مهم و پرکاربرد در Power BI است که برای حذف فیلترها و بازگرداندن تمام ردیف‌های یک جدول یا تمام مقادیر یک ستون استفاده می‌شود. این تابع نقش کلیدی در کنترل زمینه فیلتر (Filter Context) دارد و معمولاً در محاسباتی مانند درصد سهم، مقایسه با کل، و تحلیل‌های سطح بالا استفاده می‌شود.

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

تعریف تابع ALL

Syntax

DAX
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
  • اگر نام یک جدول را وارد کنید، تمام فیلترهای اعمال‌شده روی آن جدول حذف می‌شوند.
  • اگر نام یک ستون را وارد کنید، فقط فیلترهای آن ستون حذف می‌شوند و تمام مقادیر منحصربه‌فرد آن ستون بازگردانده می‌شود.

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

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

✅ مثال ساده

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

DAX
TotalSalesAllRegions =
CALCULATE(
    SUM(Sales[Amount]),
    ALL(Sales[Region])
)

در این مثال، تابع ALL فیلترهای اعمال‌شده روی ستون Region را حذف می‌کند و مجموع فروش برای همه مناطق محاسبه می‌شود.

 تفاوت ALL با REMOVEFILTERS

تابع عملکرد
ALL حذف فیلترها و بازگرداندن تمام مقادیر منحصربه‌فرد
REMOVEFILTERS فقط حذف فیلترها بدون بازگرداندن مقادیر

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

  • محاسبه درصد سهم از کل (مانند سهم فروش هر منطقه نسبت به کل کشور)
  • ساخت معیارهای مقایسه‌ای
  • حذف فیلترهای گزارش برای محاسبه در سطح کلی‌تر
  • استفاده در توابعی مانند CALCULATE, SUMX, DIVIDE, FILTER

مثال پیشرفته: درصد فروش هر منطقه نسبت به کل

DAX
RegionSalesPercentage =
DIVIDE(
    SUM(Sales[Amount]),
    CALCULATE(
        SUM(Sales[Amount]),
        ALL(Sales[Region])
    )
)

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

⚠️ نکات مهم

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

ملاحضات

  • این تابع به خودی خود استفاده نمی‌شود، بلکه به عنوان یک تابع واسطه عمل می‌کند که می‌تواند برای تغییر مجموعه نتایجی که محاسبات دیگری روی آنها انجام می‌شود، استفاده شود.
  • رفتار عادی عبارات DAX حاوی تابع ALL() این است که هر فیلتر اعمال شده نادیده گرفته می‌شود. با این حال، برخی سناریوها وجود دارند که به دلیل auto-exist، که یک فناوری DAX است که فیلتر کردن را بهینه می‌کند تا میزان پردازش مورد نیاز برای برخی از پرس‌وجوهای DAX را کاهش دهد، این مورد صدق نمی‌کند. مثالی که auto-exist و ALL() نتایج غیرمنتظره‌ای ارائه می‌دهند، زمانی است که روی دو یا چند ستون از یک جدول یکسان فیلتر انجام می‌شود (مانند استفاده از slicers)، و یک معیار در همان جدول وجود دارد که از ALL() استفاده می‌کند. در این حالت، auto-exist چندین فیلتر را در یک فیلتر ادغام می‌کند و فقط روی ترکیبات موجود از مقادیر فیلتر می‌کند. به دلیل این ادغام، معیار روی ترکیبات موجود از مقادیر محاسبه می‌شود و نتیجه به جای تمام مقادیر مورد انتظار، بر اساس مقادیر فیلتر شده خواهد بود.
  • جدول زیر نحوه استفاده از توابع ALL و ALLEXCEPT را در سناریوهای مختلف شرح می‌دهد.

تابع ALL

  • Function and usage توضیحات
    ALL() همه فیلترها را در همه جا حذف می‌کند. تابع ALL() فقط می‌تواند برای پاک کردن فیلترها استفاده شود، اما نمی‌تواند جدول را برگرداند.
    ALL(Table) تمام فیلترها را از جدول مشخص شده حذف می‌کند. در واقع، ALL(Table) تمام مقادیر موجود در جدول را برمی‌گرداند و هر فیلتری را از زمینه‌ای که در غیر این صورت ممکن است اعمال شده باشد، حذف می‌کند. این تابع زمانی مفید است که با سطوح مختلف گروه‌بندی کار می‌کنید و می‌خواهید محاسبه‌ای ایجاد کنید که نسبت یک مقدار تجمیع شده به کل مقدار را ایجاد کند. مثال اول این سناریو را نشان می‌دهد.
    ALL (Column[, Column[, …]]) تمام فیلترها را از ستون‌های مشخص‌شده در جدول حذف می‌کند؛ تمام فیلترهای دیگر روی ستون‌های دیگر جدول همچنان اعمال می‌شوند. تمام آرگومان‌های ستون باید از همان جدول باشند. نوع ALL(Column) زمانی مفید است که می‌خواهید فیلترهای زمینه را برای یک یا چند ستون خاص حذف کنید و تمام فیلترهای زمینه دیگر را نگه دارید. مثال‌های دوم و سوم این سناریو را نشان می‌دهند.
    ALLEXCEPT(Table, Column1 [,Column2]…) تمام فیلترهای زمینه‌ای جدول را به جز فیلترهایی که روی ستون‌های مشخص‌شده اعمال شده‌اند، حذف می‌کند. این یک میانبر مناسب برای موقعیت‌هایی است که می‌خواهید فیلترها را روی بسیاری از ستون‌های یک جدول، اما نه همه آنها، حذف کنید.
  • این تابع برای استفاده در حالت DirectQuery، هنگام استفاده در ستون‌های محاسبه‌شده یا قوانین امنیتی سطح ردیف (RLS) پشتیبانی نمی‌شود.

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

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

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

 

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

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

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