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

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

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

مقالات

روابط غیر فعال در Power BI

در این مطلب به بررسی روابط فعال و غیر فعال در Power BI خواهیم پرداخت. روابط یکی از مهم ترین عناصر موجود در Power BI هستند. در واقع این روابط هستند که تعامل بین نمودار ها را با هم برقرار می کنند.
مهمترین ویژگی موجود در Power BI تعاملی بودن نمودار ها، اسلایسر ها و … هستند. این تعامل از طریق روابط بین موجودیت ها صورت می پذیرد.

روابط در Power BI

روابط نقش بسیار مهمی در مدل های رابطه ای ایفا می کند. در واقع این روابط هستند که جداول را به یکدیگر مرتبط می سازند، اما در Power BI علاوه بر لینک کردن جداول وظیفه بسیار مهم فیلتر کردن نیز به عهده روابط است.

به مثال زیر توجه کنید. دو جدول فروش و مشتری را در نظر بگیرید.

روابط غیر فعال در Power BI

در جدول مشتریان فیلد عنوان شغلی (EnglishOccupation) را مشاهده می کنید. حال می خواهیم ویژوالی ایجاد کنیم که تعداد فروش (Quantity) را به ازای هر مشتری نمایش دهد. کافی است از یک Stacked Column Chart استفاده کنیم و فیلد های عنوان شغلی و تعداد فروش را در آن استفاده کنیم. نمودار به شکل زیر نمایان خواهد شد.

روابط غیر فعال در Power BI

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

خب برویم و این رابطه را ایجاد کنیم. روابط اصولا بین فیلد های مشترک جداول ایجاد می شود. فیلد مشترک این دو جدول CustomerKey است که باید این رابطه بر اساس این فیلد ایجاد گردد.

روابط غیر فعال در Power BI

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

روابط غیر فعال در Power BI

همان طور که مشاهده می کنید عملیات برش زدن اعداد به درستی صورت پذیرفته است و این فقط به دلیل وجود رابطه است. دقت کنید که جهت روابط در Power BI بسیار مهم است و از سمت یک به سمت چند رابطه حرکت می کند.

در واقع شما می توانید فیلدی از سمت یک رابطه (مشتری) را در محور نمودار قرار داده و تعداد فروش از سمت چند رابطه را برش بزنید. یا به عنوان مثال می توانید فیلدی از سمت یک رابطه (مانند کالا) را در اسلایسر قرار داده و میزان فروش (سمت چند) را برش بزنید. منظور از برش زذن همان فیلتر کردن است.

روابط غیر فعال در Power BI

باید توجه کنید که بین دو موجودیت تنها یک رابطه فعال می تواند وجود داشته باشد. در صورتی که بین دو جدول بیش از یک رابطه وجود داشته باشد، به طور خودکار یکی فعال و دیگری غیر فعال می شود.

به مثال زیر توجه کنید.

روابط غیر فعال در Power BI

بین دو جدول DimDate و فروش دو رابطه وجود دارد. دلیل این اتفاق چیست؟ ما در جدول فروش فیلدی تحت عنوان تاریخ سفارش داریم. همچنین فیلدی به نام تاریخ حمل نیز وجود دارد. ما بر اساس هر یک از این دو فیلد می توانیم رابطه را ایجاد کنیم.

ما بر اساس هر دو فیلد این رابطه را ایجاد نمودیم. پس همان طور که پیش تر گفته شد یکی از روابط فعال و دیگری غیر فعال می شود. برویم و گزارشی ایجاد کنیم بر اساس میزان فروش در هر سال.

روابط غیر فعال در Power BI

این گزارش نشان می دهد که ما در هر سال چه تعداد محصول فروختیم. آیا می توانیم نمایش دهیم که چه تعداد محصول در هر سال حمل شده است؟ در حال حاضر خیر! چرا که رابطه فعال ما بر اساس تاریخ سفارش ایجاد شده است.

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

روابط غیر فعال در Power BI

حال بر روی رابطه غیر فعال دبل کلیک کنید و آن را به حالت فعال در آورید.

روابط غیر فعال در Power BI

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

روابط غیر فعال در Power BI

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

روابط غیر فعال در Power BI

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

Role Playing Dimension

اولین رویکرد ما به حل مساله استفاده از Role Playing Dimension است. به بعدی که با ساختار مشابه در نقش های مختلف به کار گرفته می شود Role Playing Dimension می گویند. اگر از جدول DimDate یک کپی تهیه کنیم و از آن در دو نقش استفاده کنیم به این بعد Role Playing Dimension گفته می شود.

کافی است با استفاده از زبان DAX یک جدول محاسباتی (Calculated Table) ایجاد کنیم. به طریق زیر عمل کنید. بر روی New Table کلیک کنید و با استفاده از دستور زیر یک کپی از جدول تهیه کنید.

روابط غیر فعال در Power BI

همان طور که مشاهده می کنید یک جدول با ساختار کاملا مشابه با DimDate به مدل اضافه می شود.

ترفندهای Power BI

حال رابطه بین دو جدول DimDate و فروش را بر اساس تاریخ سفارش و رابطه بین دو جدول ShipDate و فروش را بر اساس تاریخ حمل برقرار می کنیم.

روابط غیر فعال در Power BI

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

روابط غیر فعال در Power BI

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

اگر جدول بزرگی مثلا با چند میلیون ردیف دارید هرگز این کار را نکنید. پس راه حل بهتر چیست؟ USERELATIONSHIP!

تابع USERELATIONSHIP در زبان DAX

یکی از روش های دیگر برای استفاده از روابط غیر فعال در Power BI، استفاده از تابع USERELATIONSHIP است. این تابع به شما کمک می کند بدون دستکاری در مدل و البته تغییر در Measure روابط غیر فعال را تنها در محاسبه یک مژر خاص فعال کنید.

ابتدا کپی ایجاد شده را پاک کنید تا مطمئن شویم این روش ربطی به روش قبل ندارد. سپس رابطه ای غیر فعال بین DimDate و جدول فروش بر اساس تاریخ حمل ایجاد کنید. حال مدل به مدل اولیه تبدیل شد.

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

روابط غیر فعال در Power BI

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

آموزش زبان DAX

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

همان طور که مشاهده می کنیم از تابع USERELATIONSHIP باید به عنوان آرگومان تابع CALCULATE استفاده نمود. در واقع به تابع CALCULATE می گوییم جمع فروش را حساب کند اما موقع محاسبه دقت کند که رابطه فعال را بر اساس دو فیلد DateKey و ShipDateKey تنظیم شود.

یعنی فقط هنگام محاسبه این مژر به طور خودکار رابطه غیر فعال تبدیل یه یک رابطه فعال می شود و هیچ دستکاری در مدل صورت نمی پذیرد.

روابط غیر فعال در Power BI

حال گزارش را با مژر های جدید ایجاد کنید.

روابط غیر فعال در Power BI

استفاده از تابع USERELATIONSHIP بسیار ساده است. تنها چند نکته را باید به خاطر بسپرید. اول اینکه این تابع به عنوان آرگومان CALCULATE به کار می رود.

دوم اینکه کافی است فیلد های به کار برده شده در رابطه غیر فعال را به این تابع معرفی کنید. کافی است نشانگر ماوس را بر روی رابطه نگه دارید تا متوجه شوید این رابطه بر اساس چه فیلد هایی ایجاد شده است. همام طور که مشاهده می کندی این رابطه بر اساس DateKey و ShipDateKey ایجاد شده است.

توجه داشته باشید در معرفی این دو فیلد به تابع USERELATIONSHIP، ترتیب اهمیتی ندارد.

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

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

دقت کنید که در روش آخر توانستیم در یک ویژوال مقدار فروش در هر سال و میزان فروش حمل شده در هر سال را نمایش دهیم کاری که در روش های قبل امکان پذیر نبود.

نتیجه گیری

در این مطلب به بررسی نحوه استفاده از روابط غیر فعال در Power BI پرداختیم و به 2 روش Role Playing Dimension و همچنین استفاده از تابع USERELATIONSHIP در زبان DAX به حل مشکلات مربوط به این موضوع پرداختیم.

در روش Role Playing Dimension کار شما به عنوان یک کاربر برای نوشتن مژر ها ساده تر است، اما این روش باعث هدر رفت رم و فضا می شود. در روش دوم کار شما به عنوان کاربر برای اصلاح مژر ها کمی سخت تر خواهد شد اما باعث صرفه جویی در استفاده از رم و فضا خواهد شد و همچنین این روش امکان گزارش های مقایسه ای را فراهم می آورد.

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

همچنین مطالعه کنید:

جهت روابط در Power BI

 

درباره حسین وثوقی

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

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

    2.16k بازدید

  • تنظیم مقدار پیش فرض اسلایسر تاریخ در Power BI

    837 بازدید

  • دومین مسابقه بزرگ Power BI ایران

    1.38k بازدید

  • نمونه پروژه داده های اقتصادی با Power BI

    1.39k بازدید

  • نمونه پروژه قند مواد غذایی با Power BI

    1.39k بازدید

  • اولین مسابقه طراحی داشبورد با Power BI

    2.5k بازدید

دوره های آموزشی مرتبط

کاور دوره آموزش پاورکوئری (power query) و زبان m

دوره جامع آموزش پاورکوئری (Power Query) و زبان M

پوریا بغدادی
553
1,790,000 تومان
آموزش powerbi پیشرفته پاوربی آی پاوربی ای

دوره پیشرفته Power BI Hero

پوریا بغدادی
535
2,590,000 تومان
پکیج آموزش فرمول نویسی DAX

پکیج آموزش فرمول نویسی DAX

پوریا بغدادی
790
1,790,000 تومان
پکیج جامع آموزش کاربردی Power BI

پکیج جامع آموزش کاربردی Power BI

پوریا بغدادی
3,424
2,790,000 تومان
عضویت
به دوستتان خبر دهید.
guest
تعداد ماههای سال به عدد
guest
1 دیدگاه
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
ندا
ندا

بسیار عالی
ممنون از توضیحات کامل و جامعتان

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

ورود

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

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