گروه بندی در Power BI با استفاده از DAX

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

در پست های قبل با گروه بندی با استفاده از ستون شرطی در Power Query و با استفاده از Grouping Feature در Power BI آشنا شدیم. حال با نحوه عمل گروه بندی در DAX آشنا خواهیم شد.

برای این منظور از داده های پایگاه داده Adventure Works استفاده می نماییم. با استفاده از ستون تاریخ تولد سن مشتریان را استخراج می نماییم . برای استخراج سن با استفاده از تابع DATEDIFF که دو تاریخ را دریافت نموده و اختلاف آن ها را بر حسب روز، ماه، سال که توسط ما اعلام می شود، برمی گرداند.

25 2 - گروه بندی در Power BI با استفاده از DAX

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

26 2 - گروه بندی در Power BI با استفاده از DAX

همان طور که در تصویر مشاهده می نمایید جدول به شدت شلوغ بوده و تقریبا هیچ بینش خاصی به ما نمی دهد. نمایش چنین جدولی به هیچ وقت مناسب نمایش در داشبورد نمی باشد. از طرفی واقعا چه تفاوتی بین سن ۳۶، ۳۷ و ۳۸ وجود دارد؟ لذا با عمل گروه بندی می توان به نتایج بهتری دست پیدا کرد. پس باید مشتریان را بر اساس سن به گروه های مختلف دسته بندی کنیم.

ایجاد ستون محاسباتی (Calculated Column)

قبلا در مورد تفاوت های Measure و ستون محاسباتی صحبت نموده ایم. اما به طور خلاصه بدانید که هنگامی که قصد استفاده از مقادیری در Slicer و یا سر ستون و سر ردیف های جدول را دارید باید برای آن ستون محاسباتی ایجاد کنید، چرا که با استفاده از Measure این کار امکان پذیر نمی باشد.

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

برای ایجاد گروه بندی می توان از IF های تو در تو استفاده نمود. کد استفاده شده را در تصویر زیر مشاهده می نمایید.

27 1 - گروه بندی در Power BI با استفاده از DAX

در واقع این کد به این معنی است که افرادی که در ستون سن عدد کمتر از ۱۸ برای آن ها ثبت شده در دسته کوچکتر مساوی ۱۸ گروه بندی شوند در غیر این صورت اگر سن آن ها بین ۱۸ تا ۳۰ بود در دسته ۱۸ تا ۳۰ سال در غیر اینصورت اگر سن آن ها بین ۳۰ تا ۴۰ بود در دسته بین ۳۰ تا ۴۰ سال و به همین ترتیب گروه های مختلف سنی ایجاد می گردند.

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

28 1 - گروه بندی در Power BI با استفاده از DAX

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

29 1 - گروه بندی در Power BI با استفاده از DAX

همان طور که مشاهده می کنید این گزارش بسیار خلاصه بوده و اطلاعات مفید تری را به ما منتقل می نماید. به طور مثال به راحتی متوجه خواهید شد که افراد بین ۳۰ تا ۴۰ سال بیشترین خرید دوچرخه را از محصولات ما داشته اند.

مساله

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

پس مطابق تصویر از زبانه Home و با استفاده از Enter Data جدول مورد نظر را ایجاد می نماییم.

30 1 - گروه بندی در Power BI با استفاده از DAX

در واقع ۴ ستون برای جدول مورد نظر ایجاد نموده ایم. ستون AgeGroup نام گروه مورد نظر می باشد. ستون From و to محدوده هر گروه سنی را مشخص می نماید. شاید برای شما سوال پیش آید که ستون ID چه کاربردی دارد؟ پس با ما همراه باشید تا پاسخ سوال خود را بیابید.

ایجاد ستون محاسباتی

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

32 1 300x147 - گروه بندی در Power BI با استفاده از DAX

خروجی این کد در تصویر قابل مشاهده می باشد.

31 1 - گروه بندی در Power BI با استفاده از DAX

اگر تا اینجا با ما همراه مانده اید وقت این است که پاسخ سوال خود را دریافت کنید. کاربرد ستون ID چیست؟

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

34 - گروه بندی در Power BI با استفاده از DAX

حال بر روی ستون AgeGroup کلیک رده و آن را انتخاب می نماییم. از برگه Modeling گزینه Sort by Columns را انتخاب می نماییم. همان طور که مشاهده می کنید نحوه مرتب سازی این ستون بر اساس خود ستون قرار گرفته است.

35 - گروه بندی در Power BI با استفاده از DAX

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

36 - گروه بندی در Power BI با استفاده از DAX

حال با استفاده از ستون های محاسباتی ایجاد شده بار دیگر گزارش مورد نیاز خود را ایجاد می کنیم.37 - گروه بندی در Power BI با استفاده از DAX

جمع بندی

گاهی اوقات ایجاد گزارش بر اساس مقادیر پیوسته مانند سن نمی تواند بینش خاصی را به کاربر منتقل نماید. لذا می بایست عمل گروه بندی را برای آن انجام دهیم. این عمل در Power Query از طریق ایحاد Conditional Column قابل انجام است، همچنین گروه بندی از طریق Grouping Feature نیز قابل انجام است. عمل گروه بندی از طریق نوشتن کدهای DAX نیز قابل دستیابی است. اگر بخواهیم این عمل را با استفاده از DAX انجام دهیم دو روش پیش روی ماست. می توانیم این عمل را از با استفاده از IF انجام دهیم و همچنین می توانیم از طریق ایجاد جدول کمکی (Lookup Table) نیز این عمل را انجام دهیم. شما به فراخور نیاز خود می توانید از هر یک از این روش ها استفاده نمایید.





6b77990865d588b48d7f55a013cdd7ec?s=300&d=mm&r=g - گروه بندی در Power BI با استفاده از DAX

حسین وثوقی

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

دیدگاه بگذارید

avatar
  عضویت  
به دوستتان خبر دهید.