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

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

تابع ALLSELECTED در DAX

تابع ALLSELECTED در DAX

تابع ALLSELECTED در Power BI

تابع ALLSELECTED در زبان DAX یکی از توابع مهم برای کنترل زمینه فیلتر (Filter Context) در Power BI است. این تابع به شما اجازه می‌دهد تا فیلترهای انتخاب‌شده توسط کاربر در گزارش (مانند Slicerها یا Visualهای تعاملی) را حفظ کرده و از آن‌ها در محاسبات استفاده کنید، حتی اگر فیلترهای دیگر در مدل وجود داشته باشند.

تعریف تابع ALLSELECTED

DAX
ALLSELECTED(<tableName or columnName>)
  • اگر نام یک جدول را وارد کنید، تمام فیلترهای انتخاب‌شده روی آن جدول حفظ می‌شوند.
  • اگر نام یک ستون را وارد کنید، فقط فیلترهای انتخاب‌شده روی آن ستون حفظ می‌شوند.

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

در Power BI، کاربران می‌توانند از طریق Slicerها یا Visualهای تعاملی، فیلترهایی را انتخاب کنند. تابع ALLSELECTED این فیلترهای انتخاب‌شده را حفظ می‌کند و در محاسبات به‌کار می‌برد، در حالی که فیلترهای داخلی یا زمینه‌ای دیگر ممکن است نادیده گرفته شوند.

✅ مثال ساده

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

DAX
TotalSalesSelected =
CALCULATE(
    SUM(Sales[Amount]),
    ALLSELECTED(Sales[Region])
)

در این مثال، فقط فیلترهایی که کاربر از طریق Slicer روی ستون Region انتخاب کرده حفظ می‌شوند.

مثال کاربردی

مثال زیر نحوه تولید سطوح مختلف مجموع بصری در یک گزارش جدولی با استفاده از عبارات DAX را نشان می‌دهد. در گزارش، دو (2) فیلتر قبلی بر روی داده‌های فروش فروشندگان اعمال شده است؛ یکی روی گروه منطقه فروش = اروپا و دیگری روی نوع تبلیغات = تخفیف حجمی. پس از اعمال فیلترها، می‌توان مجموع بصری را برای کل گزارش، برای همه سال‌ها یا برای همه دسته‌بندی‌های محصول محاسبه کرد. همچنین، برای اهداف نمایشی، مجموع کل برای فروش فروشندگان نیز با حذف همه فیلترها در گزارش به دست می‌آید. ارزیابی عبارت DAX زیر منجر به جدولی با تمام اطلاعات مورد نیاز برای ساخت جدول با مجموع بصری می‌شود.
DAX
define
measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales Amount])
measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALL('Reseller Sales'))
measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED())
measure 'Reseller Sales'[Reseller Visual Total for All of Calendar Year]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Date'[Calendar Year]))
measure 'Reseller Sales'[Reseller Visual Total for All of Product Category Name]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Product Category'[Product Category Name]))
evaluate
CalculateTable(
    //CT table expression
    summarize(
//summarize table expression
crossjoin(distinct('Product Category'[Product Category Name]), distinct('Date'[Calendar Year]))
//First Group by expression
, 'Product Category'[Product Category Name]
//Second Group by expression
, 'Date'[Calendar Year]
//Summary expressions
, "Reseller Sales Amount", [Reseller Sales Amount]
, "Reseller Grand Total", [Reseller Grand Total]
, "Reseller Visual Total", [Reseller Visual Total]
, "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total for All of Calendar Year]
, "Reseller Visual Total for All of Product Category Name", [Reseller Visual Total for All of Product Category Name]
)
//CT filters
, 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion Type]="Volume Discount"
)
order by [Product Category Name], [Calendar Year]

ALLSELECTED

پس از اجرای عبارت فوق در SQL Server Management Studio در برابر AdventureWorks DW Tabular Model، نتایج زیر به دست می‌آید:

[Product Category Name] [Calendar Year] [Reseller Sales Amount] [Reseller Grand Total] [Reseller Visual Total] [Reseller Visual Total for All of Calendar Year] [Reseller Visual Total for All of Product Category Name]
Accessories 2000 80450596.9823 877006.7987 38786.018
Accessories 2001 80450596.9823 877006.7987 38786.018
Accessories 2002 625.7933 80450596.9823 877006.7987 38786.018 91495.3104
Accessories 2003 26037.3132 80450596.9823 877006.7987 38786.018 572927.0136
Accessories 2004 12122.9115 80450596.9823 877006.7987 38786.018 212584.4747
Accessories 2005 80450596.9823 877006.7987 38786.018
Accessories 2006 80450596.9823 877006.7987 38786.018
Bikes 2000 80450596.9823 877006.7987 689287.7939
Bikes 2001 80450596.9823 877006.7987 689287.7939
Bikes 2002 73778.938 80450596.9823 877006.7987 689287.7939 91495.3104
Bikes 2003 439771.4136 80450596.9823 877006.7987 689287.7939 572927.0136
Bikes 2004 175737.4423 80450596.9823 877006.7987 689287.7939 212584.4747
Bikes 2005 80450596.9823 877006.7987 689287.7939
Bikes 2006 80450596.9823 877006.7987 689287.7939
Clothing 2000 80450596.9823 877006.7987 95090.7757
Clothing 2001 80450596.9823 877006.7987 95090.7757
Clothing 2002 12132.4334 80450596.9823 877006.7987 95090.7757 91495.3104
Clothing 2003 58234.2214 80450596.9823 877006.7987 95090.7757 572927.0136
Clothing 2004 24724.1209 80450596.9823 877006.7987 95090.7757 212584.4747
Clothing 2005 80450596.9823 877006.7987 95090.7757
Clothing 2006 80450596.9823 877006.7987 95090.7757
Components 2000 80450596.9823 877006.7987 53842.2111
Components 2001 80450596.9823 877006.7987 53842.2111
Components 2002 4958.1457 80450596.9823 877006.7987 53842.2111 91495.3104
Components 2003 48884.0654 80450596.9823 877006.7987 53842.2111 572927.0136
Components 2004 80450596.9823 877006.7987 53842.2111 212584.4747
Components 2005 80450596.9823 877006.7987 53842.2111
Components 2006 80450596.9823 877006.7987 53842.2111

تابع ALLSELECTED

ستون‌های گزارش عبارتند از:

  • مبلغ فروش نمایندگی فروش

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

  • جمع بصری نمایندگی فروش برای کل سال تقویمی

ارزش کل برای یک دسته بندی محصول در تمام سال‌ها. این مقدار در انتهای یک ستون یا ردیف برای یک دسته بندی محصول مشخص و در تمام سال‌های گزارش نمایش داده می‌شود.

  • جمع بصری نمایندگی فروش برای کل نام دسته بندی محصول

ارزش کل برای یک سال در تمام دسته بندی‌های محصول. این مقدار در انتهای یک ستون یا ردیف برای یک سال مشخص و در تمام دسته بندی‌های محصول در گزارش نمایش داده می‌شود.

  • جمع بصری نمایندگی فروش

ارزش کل برای تمام سال‌ها و دسته بندی‌های محصول. این مقدار معمولاً در گوشه پایین سمت راست جدول نمایش داده می‌شود.

  • جمع کل نمایندگی فروش

این مجموع کل برای تمام فروش‌های نمایندگی فروش، قبل از اعمال هرگونه فیلتر است. شما باید تفاوت را با [جمع بصری نمایندگی فروش] متوجه شوید. به یاد دارید که این گزارش شامل دو (2) فیلتر است، یکی روی گروه دسته‌بندی محصولات و دیگری روی نوع تبلیغات.

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

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

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

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

DAX
ProductSalesPercentage =
DIVIDE(
    SUM(Sales[Amount]),
    CALCULATE(
        SUM(Sales[Amount]),
        ALLSELECTED(Products[ProductName])
    )
)

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

⚠️ نکات مهم

  • ALLSELECTED فقط فیلترهای انتخاب‌شده توسط کاربر را حفظ می‌کند، نه فیلترهای زمینه‌ای یا داخلی.
  • این تابع معمولاً در ترکیب با CALCULATE, SUMX, DIVIDE استفاده می‌شود.
  • در Visualهایی که هیچ انتخابی انجام نشده باشد، ALLSELECTED مانند ALL عمل می‌کند.

ملاحضات

  • اگر یک آرگومان وجود داشته باشد، آرگومان یا tableName یا columnName است. اگر بیش از یک آرگومان وجود داشته باشد، باید ستون‌هایی از یک جدول باشند.
  • این تابع با ALL() متفاوت است زیرا تمام فیلترهایی را که به صراحت در پرس‌وجو تنظیم شده‌اند، حفظ می‌کند و تمام فیلترهای زمینه را به غیر از فیلترهای سطر و ستون حفظ می‌کند.
  • این تابع برای استفاده در حالت DirectQuery هنگام استفاده در ستون‌های محاسبه‌شده یا قوانین امنیتی سطح سطر (RLS) پشتیبانی نمی‌شود.

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

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

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

 

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

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

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