• مسابقه Power BI
    • اولین مسابقه Power BI
    • دومین مسابقه Power BI
  • جدیدترین مطالب آموزشی
  • تحلیل داده نرم افزاری (فنّی)
  • تحلیل داده غیرفنّی
  • دوره‌های آفلاین
  • سبد خرید
  • تماس با ما
  • حساب کاربری

سبد خرید شما خالی است.

گروه تحلیلگری
  • مسابقات Power BI
    • اولین مسابقه Power BI ایران
    • دومین مسابقه Power BI ایران
  • مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • Power Query
    • DAX
  • مسیرهای یادگیری
    • مسیر یادگیری تحلیل داده (فنی)
    • مسیر یادگیری غیرفنّی تحلیلگر داده
  • دوره‌های آموزشی
    • مهارت‌های غیرفنّی تحلیلگر داده
    • اکسل
    • Power BI
    • Power Query
    • SQL
    • تحلیل داده با پایتون
    • سبد خرید
  • ارتباط با ما
    • تماس
    • اینستاگرام
0
حساب کاربری

مقالات

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

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

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

بارگذاری مدل

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

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

هدف

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

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

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

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

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

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

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

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

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

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

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

حال شما باید برای هر تعداد بعد خود که نیاز دارید کد قبل را تکرار کنید. حال باید 3 متغیر برای 3 بعد مختلف ایجاد کرده و در نهایت با استفاده از تابع 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
درباره حسین وثوقی

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

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

    3.71k بازدید

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

    2.49k بازدید

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

    3.55k بازدید

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

    2.22k بازدید

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

    1.55k بازدید

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

    1.84k بازدید

عضویت
به دوستتان خبر دهید.
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
پاسخ
محمد علی
محمد علی

باید از مژر به عنوان axis در نمودار استفاده کنیم؟

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

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

اطلاعات تماس
  • تهران، خیابان مطهری، ابتدای خیابان سنایی، کوچه بیست و یکم
  • 42 12 600 - 0919 فقط تلگرام و واتساپ
  • info@tahlilgary.com
پیوندها
  • آموزش رایگان و اصولی اکسل
  • دوره رایگان آموزش Power BI | پاور بی آی
  • آموزش دستورات پایه SQL
  • آمار و تحلیل داده با پایتون
  • دومین مسابقه‌ Power BI ایران
دسته بندی محصولات
Data Analysis Excel Power BI Power Query Python SQL
wpDiscuz

ورود

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

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