• مطالب آموزشی
    • تمام مطالب آموزشی
    • 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
ثبت نام / ورود

وبلاگ

DAX یا M؟ مساله این است!

تفاوت دو زبان M و DAX در چیست؟ چرا می توانیم یک ستون محاسباتی را از طریق هر دو ایجاد کنیم؟ مزایا و معایب هر کدام چیست؟ برای محاسبه ستون محاسباتی استفاده از کدام یک استفاده کنیم؟

 

M چیست؟

M یک زبان اسکریپتی پشت صحنه برای Power Query است. M نام غیر رسمی این زبان است. نام رسمی این زبان Power Query Formula Language است که به دلیل طولانی بودن ماکروسافت M را به عنوان نام این زبان انتخاب کرده است که به کلمه Mashup‌ و قابلیت ترکیب، تبدیل و دستکاری داده اشاره دارد. M  یک زبان functional است و ساختار آن به صورت زیر است :

 

M یا DAX

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

DAX  چیست؟

DAX مخفف Data Analysis Expression زبانی برای تحلیل داده است. این زبان بین Analysis Service Tabular ،Power BI و Power Pivot اکسل مشترک است. این زبان که بیشتر برای فرمول نویسی استفاده می شود بر خلاف M، بسیار شبیه ساختار فرمول نویسی در اکسل است. اگر چه DAX فرمول های مشترک زیادی با اکسل دارد اما بسیار قوی تر از اکسل است. نمونه ای از کد نویسی با این زبان را در تصویر مشاهده می کنید.

DAX یا M

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

کاربرد ها

M معمولا در سناریو های تبدیل و دستکاری داده به منظور پالایش آن استفاده می شود. به طور مثال در Pivot یا Unpivot‌ کردن داده به کار می رود. نمونه ای از Pivot کردن جدول در محیط Power Query و با استفاده از زبان M در تصویر قابل مشاهده است:

DAX یا M

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

DAX یا M

دو راهی DAX یا M؟

مهمترین چالش در استفاده میان این دو زبان در ایجاد ستون های محاسباتی به میان می آید. ایجاد ستون محاسباتی با هر دوی این زبان ها امکان پذیر است و سوال اینجاست که کدام یک راه حل بهتری برای ایجاد ستون های محاسباتی است؟ به طور مثال برای ایجاد ستون محاسباتی نام و نام خانوادگی کارمند (که به صورت جدا در داده ها وجود دارند) بهتر است این ترکیب را در M‌ انجام دهیم یا در DAX؟

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

کدام یک بهترین راه حل است؟

پاسخ این سوال مثل خیلی از سوالات دیگر یک جمله است: بستگی دارد!

اگر قصد چسباندن دو ستون به یکدیگر را دارید (مثل نام و نام خانوادگی) بهتر است از M استفاده کنید چرا که این محیط برای اعمال ETL بسیار مناسب و بهینه است. علاوه بر این شما می توانید داده را در این محیط داده را دستکاری و پالایش کنید و دقیقا همان داده ای که لازم دارید را ساخته و مهیای گزارش گیری شوید. اما اگر قصد محاسباتی مثل مقایسه دوره های زمانی یا محاسبه مقدار از ابتدای سال تا امروز را دارید بهتر است وارد کد نویسی های پیچیده و سنگین M نشوید در حالیکه تمامی این توابع لازم از پیش برای این منظور در زبان DAX در اختیار کاربر قرار گرفته است.

در واقع باید گفت در انتخاب این دو زبان بهترین وجود ندارد. بهترین با توجه به نیاز کاربر تعیین می شود. به طور کلی باید گفت برای هر گونه پردازش و دستکاری و تمیز کاری داده بهترین گزینه زبان M و محیط Power Query است و برای هر گونه محاسبات تحلیلی بهترین گزینه زبان DAX است. DAX موتور تحلیلی Power BI است و برای مقاصد تحلیلی بی نظیر عمل می کند. حتی اگر برنامه نویس بسیار خوبی باشید هیچ گاه بهتر از توابع DAX نمی توانید تمامی ملاحظات تحلیلی و فیلتری را با کد نویسی در M اعمال کنید.

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

کدام را یاد بگیریم؟

بدون تردید هر دو! M‌ زبانی برای ETL است (Extract, Transform, Load) و DAX زبانی برای تحلیل. اگر می خواهید از تمامی مزایای Power BI‌ یا اکسل بهره ببرید سعی کنید با هر دوی آن ها آشنا شوید و در هر سناریو بهترین گزینه را انتخاب کنید.

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

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

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

    3.57k بازدید

  • کاربرد پارامتر در پاوربی آی
    کاربرد پارامتر و تحلیل حساسیت در پاور بی آی

    2.23k بازدید

  • پیاده سازی Navigation شرطی در Power BI

    1.69k بازدید

  • امنیت در سطح Object در Power BI

    1.1k بازدید

  • پروژه Power BI خانم یاسمن طاهری

    2.9k بازدید

  • پروژه Power BI آقای محمد آذر

    2.29k بازدید

guest
تعداد ماههای سال به عدد
guest
12 نظر
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
صفارپور
صفارپور

خیلی عالی بود مطلب مفیدی بود دنبالش نبودم در سایتتون ولی قبلا سوال بود برا خودم

2
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  صفارپور

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

0
پاسخ
محدثه
محدثه

یک کلاس دکس گذاشتید من ندیدم پیش نیازش چیه سرچ کردم دوباره به این پیجتون رسیدم
میشه بگید پیش نیازش چیه
من توی پاورپویت کار می کنم داده هامو…

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

سلام
برای شرکت در دوره آشنایی با Power Pivot در اکسل یا در Power BI کافی است.

0
پاسخ
شاپور
شاپور

تشکر مطلب خیلی جالب بود.

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

خواهش می کنم …

0
پاسخ
هاشم
هاشم

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

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

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

0
پاسخ
موسی سجادیان
موسی سجادیان

استاد وثوقی ممنون ،خیلی لازم بود ممنون🙏🙏🙏

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

سلام جناب سجادیان عزیز
ممنون از همراهی همیشگی شما

0
پاسخ
علی
علی

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

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

سلام
ممنون از همراهیتون
احتمالا با دقت مطلب رو نخوندید
در مطلب ذکر شده برای دستکاری و تمیزکاری داده از power query استفاده بشه
و برای گزارش های تحلیلی از زبان DAX

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

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

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

ورود

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

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