در متن پیش رو برآنیم تا سوالاتی از این دست را پاسخ دهیم که:
- تفاوت اصلی بین زبان M و زبان DAX چیست؟
- چگونه میتوانیم یک ستون محاسبه شده را در به دو روش مختلف انجام دهیم؟
- جوانب مثبت و منفی هر کدام چیست؟
- برای ایجاد ستون سود از کدام زبان استفاده کنیم؟
تعریف زبان M
زبان M به جهت برنامهنویسی در پاور کوئری (Power Query) مورد استفاده قرار میگیرد و نام غیر رسمی این زبان به حساب میآید. نام رسمی آن را برنامهنویسی پاور کوئری (Power Query Formula Language) در نظر میگیرند که برای استفاده در زبان مکالمه نامی طولانی میباشد. از این رو به مخفف آن اشارات بیشتری میشود.
یکی دیگر از رایجترین کلمات این زبان ماشاپ (Mashup) است که در معنای لغوی مخلوط کردن و یا ترکیب کردن در نظر گرفته شده. به این معنا که این زبان قادر به جمع آوری داده و تغییر شکل آنهاست.
زبان M یک زبان کاربردی است. و ساختار اسکریپت آن میتواند به این شکل زیر تصور شود:
- معمولاً (نه همیشه)، زبان M را یک ساختار گام به گام در نظر میگیرند
- هر خط در اسکریپت زبان M یک مرحله تغییر داده است به صورتی که مرحله بعد، از نتیجه مرحله قبل استفاده میکند
- پیگیری ساختار زبان M برای یک برنامه نویس معمولاً آسان است. زیرا با بلوکهای برنامه نویسی Let and In و برخی دیگر از ویژگیهای زبان برنامه نویسی به طور یکسان قابل درک است.
استفاده از زبان M
زبان M میتواند در بسیاری از سناریوهای تبدیل داده مورد استفاده قرار گیرد. به عنوان مثال، میتوان از آن برای Pivot یا Unpivot Data استفاده کرد و آن را بر اساس تعدادی ستون گروه بندی کرد.
تعریف زبان DAX
زبان DAX مخفف عبارت Data Analysis eXpression language است که تجزیه و تحلیل دادهها را در نظر دارد. این زبان مشترک بین خدمات تجزیه و تحلیل سرور SQL، Power BI و Power Pivot مورد استفاده قرار میگیرد. زبان DAX یک زبان بیان است و برخلاف زبان M، بسیار شبیه توابع اکسل میباشد.
در واقع، زبان DAX توابع مشترک بسیاری با اکسل دارد. با این حال از بسیاری جهات نیز قدرتمندتر از فرمولهای اکسل ظاهر میشود.
استفاده از زبان DAX
محاسبات زبان DAX به روشی ساخته شده است که بیشتر برای کاربران اکسل منطقی است. به طور معمول کاربران اکسل با این زبان بسیار راحت هستند. زیرا که همه چیز از طریق توابع محاسبه میشود. زبان DAX بلوکهای برنامه نویسی در خود ندارد و ترکیبی از کاربردهای عملکرد، فیلترها و عبارات است.
به بیان دیگر، از زبان DAX می توان برای محاسبه تجزیه و تحلیل بسیاری از دادهها استفاده کرد. به عنوان مثال، محاسبه بودجه بندی از ابتدای سال تا کنون (Year To Date)، محاسبه میانگین سود ۱۲ ماه یا موارد مشابه دیگر. برای نمونه تصویر زیر ستون محاسبه شده محدوده قیمت را در جدول فروش نشان میدهد که فقط به مقادیر ستون فروش [قیمت خالص] بستگی دارد.
محاسبه ستونها
سوال اصلی جهت انتخاب بین زبان DAX و زبان M از معضل محاسبه ستونها ناشی میشود. شما میتوانید ستونهای محاسبه شده زیادی را در زبان M یا زبان DAX ایجاد کنید. اما طبیعی است که انتخاب بهترین زبان برای انجام کار کمی گیج کننده باشد.
به عنوان مثال، میتوانید یک نام کامل را در ستوانهای هر دو زبان استفاده کنید اما نکته این است که بدانیم کدام زبان نتیجه بهتری را در بر خواهد داشت.
برای وضوح سخنن این مثال را نیز در نظر بگیرید که ما همیشه به صورت روزمره از چاقوهای مختلفی استفاده میکنیم. با تمام انواع چاقو میتوان یک قطعه پنیر را برش داد اما کدام یک از آنها وسیلهی مناسبتری است؟ برای تکه کردن گوشت و یا میوهها نیز میتوان از همان چاقو استفاده کرد؟
هر وسیله برای انجام یک مورد خاص مناسب است. برای برش نان، چاقوی نان بهترین نتیجه را به شما میدهد. برای برش یک فیله به طور معمول به نوع دیگری از چاقو نیاز دارید.