• مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • DAX
  • دوره های آموزشی
    • کلاس اکسل پیشرفته
    • کلاس داشبورد با Power BI
    • کلاس DAX و مدلسازی داده‎
    • Power BI Report Server
    • گالری تصاویر
  • پکیج های آموزشی
    • اکسل
    • Power BI
    • SQL
    • تحلیل داده با پایتون
    • سبد خرید
  • معرفی
  • تماس
  • اینستاگرام
  ورود
گروه تحلیلگری
  • مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • DAX
  • دوره های آموزشی
    • کلاس اکسل پیشرفته
    • کلاس داشبورد با Power BI
    • کلاس DAX و مدلسازی داده‎
    • Power BI Report Server
    • گالری تصاویر
  • پکیج های آموزشی
    • اکسل
    • Power BI
    • SQL
    • تحلیل داده با پایتون
    • سبد خرید
  • معرفی
  • تماس
  • اینستاگرام
0
ثبت نام / ورود

وبلاگ

بعد انتخابی (Dynamic Axis) در Power BI

در این مطلب قصد داریم با نحوه ایجاد بعد انتخابی (Dynamic Axis) در Power BI آشنا شویم. خیلی اوقات پیش می آید که شما نیاز دارید روی یک نمودار تمام اطلاعات را نشان دهید و به کاربر اجازه دهید که شخصا بعد مورد نظر خود را تغییر دهد. در واقع به جای ایجاد ۳ نمودار مختلف برای نمایش فروش بر اساس سال، گروه کالا و تحصیلات، همه آن ها را بر روی یک نمودار نشان دهیم.

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

بارگذاری مدل

برای ایجاد بعد داینامیک روش های مختلفی وجود دارد. اما در این مطلب از زبان DAX استفاده می کنیم. برای پیاده سازی این عمل از پایگاه داده AdventureworksDW2017 استفاده می کنیم. طبق تصویر زیر جداول را بارگذاری کرده و مدل داده خود را ایجاد می کنیم.

بعد انتخابی (Dynamic Axis) در Power BI

هدف

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

می خواهیم اسلایسری حاوی ۳ بعد را در اختیار کاربر قرار دهیم. بُعد سال، زیر گروه کالا و سطح تحصیلات. پس جدول ما نیز باید شامل اطلاعات این ۳ جدول باشد.

ایجاد جدول مورد نظر

برای انجام این عمل باید از ۲ تابع CROSSJOIN و ROW استفاده کنیم. باید از New Table استفاده کنیم و مقدمات ایجاد یک جدول جدید را فراهم آوریم.

بعد انتخابی (Dynamic Axis) در Power BI

حال با استفاده از زبان DAX، کد زیر را ایجاد می کنیم.

=
CROSSJOIN (
    ROW ( “Dim”, “Education” ),
    VALUES ( DimCustomer[EnglishEducation] )
)

بیایید قدری در مورد این کد صحبت کنیم. از درونی ترین تابع شروع می کنیم. درونی ترین تابع ROW است. این تابع ۲ ورودی دریافت می کند. یک اسم و یک Expression. اولین ورودی Dim است که نام ستون را ایجاد می کند و دومی مقدار است. بدیهی است ROW(“Dim”,”Education”) یک جدول یک ردیف و یک ستونه (یک سلول) ایجاد می کند که در تصویر زیر آن را مشاهده می کنید.

بعد انتخابی (Dynamic Axis) در Power BI

اما تابع بیرونی CROSSJOIN است که عمل ضرب را انجام می دهد. در واقع این تابع ۲ ستون را دریافت می کند و جدولی از ترکیبات احتمالی آن ها را به وجود می آورد. حاصل ضرب ستون سطح تحصیلات و ستون ایجاد شده در مرحله قبل جدولی به شکل زیر است. توجه کنید که نیازی نیست این کد را بنویسید. این کد تنها برای آموزش کد بود.

بعد انتخابی (Dynamic Axis) در Power BI

حال شما باید برای هر تعداد بعد خود که نیاز دارید کد قبل را تکرار کنید. حال باید ۳ متغیر برای ۳ بعد مختلف ایجاد کرده و در نهایت با استفاده از تابع UNION آن ها را تحت یک جدول ایجاد کنیم. کافیست کد زیر را نوشته و آن را اجرا کنید تا جدول مورد نظر ایجاد شود.

خروجی زیر نتیجه کد فوق الذکر می باشد. در واقع با استفاده از ترکیب توابع ROW و CROSSJOIN، نام بعد را در کنار مقادیر آن قرار می دهیم و با تابع UNION آن ها را به یک جدول واحد تبدیل می کنیم.

حال باید نام ستون اول را تغییر دهیم چرا که نام ستون را از جدول اول به ارث برده است. نام این ستون را به Values تغییر نام می دهیم.

حال جدول مورد نیاز ما ایجاد گشته است.  می توانیم از ستون Dim در اسلایسر استفاده کنیم. اما اگر فکر می کنید کار تمام شده است سخت در اشتباهید!

بعد انتخابی (Dynamic Axis) در Power BI

ایجاد بعد انتخابی (Dynamic Axis) در Power BI

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

DynamicAxis =
SWITCH (
    VALUES ( ‘Table'[Dim] ),
    “Education”,
        CALCULATE (
            [Sales],
            TREATAS ( VALUES ( ‘Table'[Values] ), DimCustomer[EnglishEducation] )
        ),
    “Years”,
        CALCULATE (
            [Sales],
            TREATAS ( VALUES ( ‘Table'[Values] ), DimDate[CalendarYear] )
        ),
    “Category”,
        CALCULATE (
            [Sales],
            TREATAS ( VALUES ( ‘Table'[Values] ), DimProductCategory[CategoryName] )
        )
)

در نهایت نتیجه به صورت زیر خواهد بود. با انتخاب Year میزان فروش بر اساس سال نمایش داده می شود.

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

و با انتخاب سطح تحصیلات میزان فروش بر اساس سطح تحصیلات نمایش داده می شود.

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

برچسب ها: ترفندهای Power BI
درباره حسین وثوقی

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

نوشته های بیشتر از حسین وثوقی
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • کاربرد پارامتر در پاوربی آی
    کاربرد پارامتر و تحلیل حساسیت در پاور بی آی

    2.4k بازدید

  • استفاده از متغیر و تابع EARLIER در زبان DAX

    1.55k بازدید

  • پانزده تابع DAX که باید حتما یاد بگیرید

    2.39k بازدید

  • تابع IF و SWITCH در زبان DAX

    1.25k بازدید

  • رنگ بندی شرطی با زبان DAX
    رنگ بندی شرطی با زبان DAX

    778 بازدید

  • مفهوم Context و انواع آن در زبان DAX
    مفهوم Context و انواع آن در زبان DAX

    1.05k بازدید

guest
تعداد ماههای سال به عدد
guest
11 نظر
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
سجادیان
سجادیان

عالیییی

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  سجادیان

ارادت جناب سجادیان

0
پاسخ
trackback
عنوان سفارشی برای ویژوال در Power BI - تحلیلگری داده و هوش تجاری

[…] بعد انتخابی (Dynamic Axis) د&#1585… تنظیم مقدار پیش فرض برای Slicer در Power BI […]

0
پاسخ
trackback
Dynamic Measure یا مژر انتخابی در Power BI - تحلیلگری داده و هوش تجاری

[…] بعد انتخابی (Dynamic Axis) د&#1585… تنظیم مقدار پیش فرض برای Slicer در Power BIعنوان سفارشی برای ویژوال در Power BI […]

1
پاسخ
محمدرضا وفائی
محمدرضا وفائی

فوق العاده است و چقدر میتونه فضای استفاده صفحه داشبورد رو مدیریت کنه
عالی بود و مرسی از زحمات

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  محمدرضا وفائی

ممنون از لطفتون جاب وفایی بزرگوار

0
پاسخ
عباسی
عباسی

خیلی مفید و کاربردی بود ممنون

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  عباسی

ممنون از اینکه ما رو دنبال می کنید

0
پاسخ
رحمانی
رحمانی

ممنون میشم کد ها رو در قالب text بزارید چون عکس ها لوود نمیشن

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  رحمانی

سلام بله حتما

0
پاسخ
محمد عاشوریان
محمد عاشوریان

فوق العاده بود.

0
پاسخ
جستجو
جستجو برای:
دسته بندی ها
  • Charts
  • DAX
  • Excel
  • Power BI
  • Power Query
  • هوش تجاری
بسته های آموزشی
  • Excel
  • Power BI
  • Python
  • SQL
درباره گروه تحلیلگری

معتقدیم آموزش شروع یک تعهد بلند مدت است. این را از مشتریان ما سوال کنید.

اطلاعات تماس
  • تهران، خیابان مطهری، ابتدای خیابان سنایی، کوچه بیست و یکم
  • 543 30 910 - 021
پیوندها
  • آموزش Power BI
  • آموزش SQL
  • آموزش اکسل
دسته بندی محصولات
Excel Power BI Python SQL
نماد الکترونیک
wpDiscuz

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت