• مسابقه 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 صفر تا سکو : قسمت هفتم ( نوشتن Measure )

با 6 قسمت از سریال آموزشی Power BI صفر تا سکو با شما همراه بودیم. اکنون با قسمت هفتم این سریال در خدمت شما عزیزان هستیم. در این مطلب به آموزش نحوه نوشتن Measure با استفاده از DAX خواهیم پرداخت.

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

مطالعه کنید.

قسمت اول آموزش Power BI

قسمت دوم آموزش Power BI

قسمت سوم آموزش Power BI

قسمت چهارم آموزش Power BI

قسمت پنجم آموزش Power BI

قسمت ششم آموزش Power BI

نکات کلیدی

برخی از نکات هستند که باید قبل از شروع به یادگیری DAX و نوشتن Measure از آن ها آگاه باشید.

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

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

نوشتن Measure در DAX

شما می توانید به 2 روش ضمنی و صریح به ایجاد مژر بپردازید. با هم به بررسی انواع روش های نوشتن Measure بپردازیم.

ایجاد Measure ضمنی (Implicit Measure)

برای ایجاد مژر ضمنی کافیست فیلد (ستون) مورد نظر را Drag & Drop کرده و در موقعیت مناسب قرار دهید. به طور مثال از ویژوال ها، Card را انتخاب نموده و ستون تعداد (OrderQuantity) را در قسمت Field قرار می دهیم. همچنین با تیک زدن فیلد مورد نظر، معمولا فیلد جای مناسب خود را پیدا می کند (حداقل در مورد Card اینگونه است). همان طور که در تصویر مشاهده می کنید عدد 60k یا همان 60000 در تصویر نقش می بندد.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

در واقع Engine خود مژری برای این ستون ایجاد می کند و عمل تجمیع را برای آن انجام می دهد. زبانه مشخص شده در تصویر زیر را باز کنید.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

باکسی مطابق تصویر پیش روی شما باز می شود.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

همان طور که مشاهده می کنید به صورت پیش فرض بر روی SUM قرار گرفته و تعداد فروش را جمع کرده است. شما می توانید آن را بر روی میانگین (AVERAGE)، ماکسیمم (MAXIMUM)، مینیمم (MINIMUM) و … قرار دهید. شما با این کار به ساخت یک مژر ضمنی اقدام می کنید. این روش برای ساخت مژر های ساده مناسب است.

ایجاد Measure صریح (Explicit)

با هم به مرور نحوه نوشتن Measure بپردازیم. Power BI را باز کنید. به دو روش می توانید Measure مد نظرخود را ایجاد کنید. بر روی جدولی که می خواهید مژر در آن ساخته شود کلیک راست کنید و New Measure را انتخاب کنید.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

یا از تب Modeling، مطابق تصویر New Measure را انتخاب نمایید. توجه داشته باشید در ساخت Measure هیچ تفاوتی نمی کند که آن را در کدام جدول ایجاد کنید.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال در قسمت مشخص شده نام مد نظر خود را قبل از علامت مساوی تایپ نمایید. بعد از علامت مساوی نیز می توانید فرمول مد نظر خود را تایپ نمایید.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

همان طور که مشاهده می نمایید نام Sales را برای مژر خود انتخاب نموده ایم.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال پس از علامت مساوی می توانیم فرمول خود را نوشته و مژر مورد نظر خود را ایجاد نماییم. به محض اینکه شروع به تایپ نمودید لیستی از توابع پیش روی شما نمایش داده می شود که می توانید تابع مد نظر خود را انتخاب نمایید. با انتخاب هر کدام از توابع توضیحی از آن تابع در کنار آن ظاهر می شود.

همان طور که مشاهده می کنید با تایپ SU لیست تمام توابعی که با این حروف آغاز می شوند به شما نمایش داده می شود. همچنین همان طور که مشاهده می کنید با رفتن به روی هر تابع توضیحات آن ارائه می شود. به طور مثال توضیحات SUM را مشاهده می کنید که جمع مقادیر یک ستون است.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

توجه داشته باشید که دکمه Enter به معنای اتمام و تایید کد است. پس از دکمه Enter تنها پس از اتمام فرمول استفاده نمایید. برای انتخاب تابع مورد نظر و همچنین رفتن به خط بعد از کلید Tab استفاده نمایید. به محض فشردن کلید Tab بر روی تابع مورد نظر، تابع به طور کامل نوشته شده و راهنمای آن تابع رویت می شود.

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

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

اگر یکی از ستون های عددی را انتخاب نمایید عمل جمع بر روی آن ستون صورت می پذیرد. ما ستون تعداد خرید (Quantity) را به عنوان ورودی به تابع معرفی کردیم. به محض شروع به تایپ نام ستون، لیستی از ستون ها که با آن حروف شروع می شوند به شما نمایش داده می شود.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

با کلید Tab ستون مد نظرتان را انتخاب نموده و پرانتز را ببندید.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال مژر مورد نظر ایجاد شده و قابل استفاده است. چگونه می توان نتیجه مژر ایجاد شده را مشاهده نمود؟ توجه کنید که نتیجه مژر به صورت فیزیکی در مدل ذخیره نمی شود. نتیجه مژر تنها با ایجاد Context قابل مشاهده است.

شما با استفاده از یک Card می توانید یک Context ایجاد کنید. کافیست Card را انتخاب نموده تا بر روی صفحه پدیدار شود. سپس مژر خود را در قسمت Field قرار دهید. همان طور که مشاهده می کنید عدد 60000 بر روی صفحه نقش می بندد که نشان دهنده این است که فروش ما 60 هزار عدد بوده است. آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال می توانیم یک Slicer بر روی صفحه قرار دهیم و به وسیله آن Context را تغییر دهیم. کافیست Slicer را انتخاب نموده و فیلد مورد نظر خود را در آن قرار دهید. بدین ترتیب لیستی از مقادیر موجود در ستون نمایش داده می شود. ما ستون Year را انتخاب نموده و در اسلایسر قرار دادیم. لیست سال ها به ما نمایش داده شده است.

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

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال بهتر متوجه مفهوم Context می شوید. پس بار دیگر این نکته قابل ذکر است که مژر با توجه به Context معنا و مفهوم می یابد و با تغییر Context نتیجه آن تغییر می یابد.

نکاتی درمورد نوشتن کدهای DAX

برخی نکات جود دارند که بهتر است آن ها را در نوشتن measure ها رعایت کنید. نکته مهمی که باید به آن توجه شود نوشتن نام جدول قبل از ستون است. همان طور که مشاهده می کنید ابتدا باید نام جدول نوشته شود و سپس نام ستون در براکت قرار گیرد.آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

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

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

همان طور که در متن خطا مشاهده می کنید گفته شده که اعداد زیادی برای این ستون در جدول وجود دارند و این مژر قادر به برگرداندن یکی از آن ها به عنوان خروجی نهایی نیست. در متن خطا گفته شده که این اتفاق می تواند هنگامی صورت پذیرد که شما بدون استفاده از تابع تجمیعی (Aggregation Function) از یک ستون استفاده نمایید.

برای رفع این خطا کافیست از یک تابع تجمیعی استفاده کنیم. به طور مثال عمل تجمیع را با استفاده از تابع SUM بر روی این ستون انجام دهیم.

توابع زیادی برای تجمیع در DAX موجود هستند که ساده ترین آن ها عبارتند از:

SUM

AVERAGE

MAX

MIN

COUNT

صریح یا ضمنی؟!

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

اما معمولا مژر های مد نظر ما به این سادگی ها نیستند و نمی توان آن ها را به صورت ضمنی ایجاد کرد. به یک مثال ساده توجه کنید.  فرض کنید می خواهیم میزان فروش را به دست آوریم (توجه کنید میزان فروش مد نظر است نه تعداد فروش). این محاسبه از ضرب تعداد فروش رفته در هر فاکتور در قیمت واحد به دست می آید. اگر بخواهیم این مژر را به صورت ضمنی ایجاد کنیم باید به صورت زیر عمل کنیم.

ابتدا یک ستون محاسباتی در جدول Sales ایجاد کنیم و برای هر ردیف این حال ضرب را انجام دهیم. حتما می دانید که ستون محاسباتی بر خلاف مژر باید در جدول مورد نظر ایجاد شود. در واقع اگر قصد ایجاد این ستون در جداول دیگر را داشته باشید به ستون های جدول Sales دسترسی نخواهید داشت. پس مطابق تصویر جدول Sales را انتخاب نمایید و سپس New Column را انتخاب نمایید. یا بر روی جدول کلیک راست کرده و New Column را انتخاب نمایید.

حال می توانید نام مورد نظر خود را نوشته و پس از علامت مساوی فرمول مد نظر خود را بنویسید. همان طور که می دانید ستون های محاسباتی ردیف به ردیف محاسبه می شوند. پس بر خلاف مژر ها نیازی به تجمیع ندارند. به مثال زیر توجه کنید. یک ستون جدید ایجاد کردیم با نام LineAmount که در هر ردیف تعداد در قیمت ضرب شده است.

LineAmount = FactSales[OrderQuantity] * FactSales[UnitPrice]

ستون آخر نشان دهنده نتیجه این فرمول است.

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

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال می توانیم با استفاده از این ستون مژر ضمنی خود را ایجاد کنیم. کافیست ستون ایجاد شده را در قسمت فیلد قرار دهیم. همان طور که مشاهده می کنید عدد 29 میلیون دلار در تصویر نمایش داده می شود. در واقع این مژر ضمنی کل اعداد موجود در ستون LineAmount را با هم جمع می کند.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

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

درست است که تابع SUM تنها و تنها یک ستون را به عنوان وروی می پذیرد اما تابع SUMX می تواند کاستی های این تابع را پوشش دهد. با این تابع دیگر لازم نیست ستون محاسباتی ایجاد کنید، بلکه به صورت زیر عمل می کنید. یک مژر جدید ایجاد می کنید. تابع SUMX یک جدول و یک فرمول به عنوان ورودی دریافت می کند.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

جدول مورد نظر خود (FactSales) را به عنوان آرگومان اول و ضرب تعداد در قیمت را به عنوان فرمول به تابع معرفی می کنیم. در تصویر زیر مژر مورد نظر را مشاهده می کنید. این روش نتیجه ای مشابه روش قبل دارد ولی دارای عملکرد بهتری است.

آموزش Power BI صفر تا سکو : قسمت هفتم( نوشتن Measure )

حال با نحوه نوشتن Measure ها و نکات مربوط به آن ها آشنا شدید. در مطالب آینده بیشتر به مباحث DAX خواهیم پرداخت. اگر پیشنهاد یا انتقادی در مورد این مطالب دارید حتما با ما در میان بگذارید.

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

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

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

    1.62k بازدید

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

    754 بازدید

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

    1.28k بازدید

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

    1.31k بازدید

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

    1.32k بازدید

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

    2.4k بازدید

عضویت
به دوستتان خبر دهید.
guest
تعداد ماههای سال به عدد
guest
10 نظر
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
trackback
Power BI چیست؟ - هوش تجاری تکنیک

[…] قسمت هفتم آموزش Power … […]

0
پاسخ
هادی
هادی

سلام
خیلی مطالب خوبی ارائه دادی .
دستت درد نکنه
منم ی صنایعی هستم.
مرسی

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

سلام
ممنون از لطف شما

0
پاسخ
مهرداد
مهرداد

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

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

سلام
RANKX(ALL(Product),[Forosh])

0
پاسخ
مسعود
مسعود

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

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

سلام
ارسال شد

0
پاسخ
حوریه
حوریه

سلام من یک جدول دارم اسم ستون هام کد فرد که یونیک هست جنسیت و سال هست میخام نسبت اقا به کل در هر سال و نسبت خانم به کل در سال رو حساب کنم مژر میتونم بنویسم ؟میشه بگین چجوری؟

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

سلام
CALCULATE(COUNT(ID) , GENDER = “MARD)/CALCULATE(COUNT(ID) , ALL(TABLE))”

0
پاسخ
المیرا کریمی
المیرا کریمی

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

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

ورود

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

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