خانه / آموزش Power BI بابازاده / درس شصت و هفتم – تابع All

درس شصت و هفتم – تابع All

تابع All

تابع all برای برداشتن تاثیر فیلترهای درونی و خارجی بر محاسبات Measure می باشد. این تابع بسیار مهم و کاربردی می باشد به ویژه برای زمانی که می خواهیم در محاسبات measure ، فیلتر از برخی از جدولها یا ستونها بی تاثیر شود. در مبحث interaction می توانستیم نحوه اتصال ویژوال ها را مدیریت کنیم، در زبان dax برای جداولی که بهم مرتبط هستن اگر بخواهید فیلتر برخی را بردارید یعنی تاثیر برخی جداول را از روی فرمول dax بردارید می توانید از توابع all و allexcept و allselected استفاده کنید. این سه تابع برای مبحث فیلترینگ می باشد. البته به یاد داشته باشید که برای جداول مرتبط استفاده می شوند زیرا جداولی که ارتباطی با هم ندارند روی هم تاثیری ندارند.

all

حالا برای نشان دادن این Measure از یک table استفاده می کنیم. با تعریف این مژر قرار شد که SumSaleAllDate از جدول dimdate تاثیر نگیرد. ولی از SalesTerritoryCountry فیلتر میگیرد.

all

بنابراین برای مشاهده تاثیر تابع all  که نوشته ایم در تعریف measure ، باید از ستوهای جدول dimdate در ویژوال استفاده کرد. همانطور که در شکل زیر می بینید در ستون SumSaleAllDate تکرار اطلاعات داریم. زیرا وقتی فیلتری از جدول dimdate اعمال می شود با توجه به تابع all که نوشته ایم، measure هیچ فیلتری از این جدول را قبول نمی کند. یعنی هر فیلتری از ستونهای dimdate آمد تاثیری از آن نمی گیرد و جمع ستون گفته  شده یعنی FactInternetSales را محاسبه می کند.

table

تابع all را می توان بصورت پیشرفته تر هم تعریف کرد یعنی می توان ستون مورد نظر از جدول مورد نظر را مشخص کرد و دقیقا در تعریف تابع مشخص کنید که از کدام ستون جدول مورد نظرتان تاثیر نگیرد. بعنوان مثال در شکل زیر در تعریف تابع all گفته می شود که از ستون سال مالی جدول dimdate تاثیر نگیر و هیچ فیلتری لحاظ نکن.

all

بنابراین تاثیر تابع all را وقتی در ویژوال میتوانید ببینید که جدول و یا ستونی که در تابع all نام برده اید را در ویژوال خود قرار داده باشید زیرا این تابع برای فیلدهای دیگر که در تعریف تابع نام برده نشده است هیچ تاثیری ندارد فقط می گوید measure شما از جدول و یا ستونی که در تابع all نام برده شده است تاثیر نگیرد و هیچ فیلتری را قبول نکند.

table

در جدول زیر می بینید که با توجه به تعریف measure از سال فیلتر قبول نمی کند و از ماه فیلتر قبول می کند. در واقع در ویژوال زیر گفته شده از ستون FiscalYear تاثیری نگیرد و هیچ فیلتری را قبول نکند ولی از ستون EnglishMonthName تاثیر بگیرد و اگر فیلتری دارد اعمال کند.

در واقع این تابع filter context که روی  measure تاثیر می گذارد را تغییر می دهد. البته دقت کنید که می توانید نام چندین ستون را در این تابع بنویسد و محدودیتی ندارید.

 

تابع AllExcept

این تابع عکس تابع all میباشد یعنی می گوید از هیچ جایی فیلتر نگیر بجز ستونهایی که نام میبریم. در measure زیر گفته شده است که محاسبه کن جمع ستون SaleAmount از جدول FactInternetSales و در محاسبات این جمع هیچ فیلتری را قبول نکن بجز جدول DimSalesTerritory و ستون SalesTerritoryCountry

یعنی فقط از این جدول و ستونهایی که در تابع AllExcept نام برده می شود می تواند تاثیر بگیرد و فیلتر شود. در تعریف پارامترهای این تابع باید ابتدا نام جدولشان و سپس نام ستون را نوشت. و اگر بخواهید نام چند جدول را بنویسید باید مجدد با AllExcept نام ببرید.

allexcept

فقط در صورتی از جدول DimSalesTerritory فیلتر قبول می کند که ستون Country باشد. یعنی فقط فیلتر Countryرا لحاظ می کند.

درباره‌ی حمیدرضا بابازاده

تحلیلگر داده و متخصص هوش تجاری در اتریش هستم و تجربه کار بعنوان مشاور و مدرس BI در شرکتهای مختلف رو دارم . بیش از 1300 ساعت سابقه تدریس دوره های Microsoft BI و PowerBI رو در آموزشگاه سماتک و مجتمع فنی تهران دارم .

همچنین ببینید

power bi report server

درس هفتاد و یکم – نصب و کانفیگ power bi report server

برای دانلود فایل باید به سایت مایکروسافت رفته و از آنجا فایل power bi report server را دانلود کنید. برای نصب باید از حالت developer استفاده کنید. جایی که report serverرا نصب می کنید حتما باید sql server engine نصب کنید.

دیدگاهتان را بنویسید

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

معادله امنیتی (فقط عدد بنویسید) *