آموزش DAX در Power Bi قسمت سوم
در ادامه آموزش سریالی زبان DAX، به آموزش DAX در Power BI قسمت سوم رسیدیم. اگر قسمت های قبلی را مطالعه نکردید، حتما کمی زمان برای مطالعه قسمت های قبلی این آموزش اختصاص دهید، چرا که بدون داشتن دانش مدل سازی و عملکرد روابط کار کردن با زبان DAX اندکی پیچیده خواهد شد.
در قسمت های قبل با مفاهیم و پایه های زبان DAX، آشنا شدیم، نحوه عملکرد روابط و مدل سازی داده را با هم بررسی کردیم. حال نوبت به آشنایی با نحوه نوشتن کد های DAX می رسد.
Syntax
قبل از نوشتن نام یک ستون، حتما باید نام جدول آن را ذکر کنید، در حالی که برای نوشتن نام مژر، نباید نام جدول ذکر شود. مژر یک ماهیت فیزیکی نیست و در جدول خاصی ایجاد نمی شود، در حالی که ستون یا جدول به صورت فیزیکی به مدل و جداول اضافه می شوند.
همان طور که در تصویر مشاهده می کنید Sales[Quantity] در واقع به ستون Quantity از جدول Sales اشاره دارد.
توجه کنید که اگر نام جدول شما با شماره آغاز می شود، یا نام آن دارای Space بوده و همچنین اگر از نام های رزرو شده در نام گذاری جدول استفاده شده باشد، باید نام جدول را در علامت کوتیشن قرارد دهید. در جدول زیر به ستون Quantity از جدول Order Details اشاره شده است.
برای نوشتن مژر اکیدا از نوشتن نام جدول خودداری نمایید. به تصویر زیر توجه کنید. در تصویر زیر به مژر TotalQuantity اشاره شده است.
در صورتی که تمایل دارید در کدهای خود از Comment استفاده کنید، از علامت های – – یا // استفاده نمایید. کامنت گذاری در کد ها باعث خوانایی کد خواهد شد. توجه کنید که با استفاده از علامت – – کدهای آن خط به صورت سبز رنگ در خواهد آمد و این قسمت ها تاثیری در کد های شما نخواهد گذاشت. به تصاویر زیر توجه کنید.
اگر تمایل دارید چند خط از کد خود را کامنت گذاری کنید یا از چرخه اجرا خارج کنید باید در ابتدای قسمت مورد نظر از علامت */ و در انتهای آن از /* استفاده کنید.
DAX Data Type
Power BI از انواع مختلفی از Data Type ها پشتیبانی می کند. برای ذخیره اعداد صحیح از نوع داده ای Integer بهره می گیرد. برای اعداد اعشاری از نوع داده Decimal استفاده می کند. همچنین برای ذخیره تاریخ میلادی از نوع داده ای DateTime استفاده می شود. توجه کنید که این نوع داده برای ذخیره نمایش تاریخ میلادی استفاده می شود. برای ذخیره تاریخ شمسی باید از نوع ذخیره رشته ای (String) استفاده شود.
در Power BI از نوع داده ای String برای ذخیره رشته و متن استفاده می شود، همچنین برای ذخیره اطلاعاتی مانند عکس از نوع داده ای Binary در نظر گرفته می شود. Power BI از نوع داده Boolean یا TRUE/FALSE نیز پشتیبانی می کند.
توجه کنید که اگر در یک ستون اطلاعات ترکیبی وارد کنید، نوع ستون به نوع عمومی تر تغییر حالت می دهد. در واقع اگر شما عدد صحیح و رشته را در یک ستون وارد کنید، نوع داده به رشته تغییر می کند، یا اگر عدد صحیح و عدد اعشاری را با هم در یک ستون وارد کنید، نوع داده به اعشاری تغییر حالت می دهد.
اپراتور ها
عملگر های ریاضی در زبان DAX
در زبان DAX می توانید از عملگرهای ریاضی مانند جمع (+)، ضرب (*)، منها (-) و تقسیم (/) استفاده کنید. این عملگرها می تواند بین اعداد یا ستون ها مورد استفاده قرار بگیرد.
به طور مثال فرض کنید می خواهید ستون جدیدی در جدول فروش بسازید و تعداد فروش را در قیمت فروش ضرب کنید.
یا به طور مثال می خواهید دو ستون Freight و TaxAmount را جمع کنید. دقت کنید که برای جمع دو ستون و ایجاد ستون جدید لازم نیست از تابع SUM استفاده کنید.
به همین ترتیب می توانید برای انجام عمل ضرب و تقسیم بین ستون ها نیز به همین ترتیب عمل کنید.
عملگر های مقایسه ای در زبان DAX
برای مقایسه نیز می توانید از عملگر برابر (=)، نابرابر (<>)، بزرگتر (<)، کوچکتر (>)، بزرگتر مساوی (=<)، کوچکتر مساوی (=>) استفاده نمایید.
دقت کنید که باید مقادیر رشته ای در دبل کوتیشن قرار بگیرند. به مثال زیر توجه کنید.
توجه کنید برای مقایسه های این چنینی باید دو طرف مقایسه از یک جنس باشند و گرنه با خطا مواجه خواهید شد. به مثال زیر توجه نمایید.
این مورد از خطا هایی است که زیاد با آن مواجه می شوید.
البته در این مورد خطا واضح به نظر می رسد اما مثال زیر را در نظر بگیرید.
با وجود اینکه ستون Quantity عددی است و این ستون با مقدار عددی 1 مقایسه شده است با خطا مواجه شدیم، چرا که اگر چه ظاهر این ستون عددی به نظر می رسد اما به صورت Text ذخیره شده است. اگر نوع داده ای این ستون را به صورت عددی تغییر دهیم، خطا رفع خواهد شد.
در این جا به پایان ایستگاه آموزش DAX در Power BI قسمت سوم رسیدیم. امیدوارم از مطالب استفاده لازم را ببرید و همچنان پا به پای ما این آموزش را ادامه دهید.
درباره حسین وثوقی
دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
نوشته های بیشتر از حسین وثوقی
مهندس جان عالی
ممنون بابت مطالب مفیدتون
سلام …
ممنون از لطف همیشگی شما جناب سجادیان عزیز
با سلام
ضمن تشکر از آموزشهای مفید شما
من متوجه تفاوت استفاده از علامت — و */ نشدم
اولی برای یک خط کامنت گذاری است دومی برای چند خط؟؟؟؟
سلام
ممنون
فرض کن 10 خط از یک کد رو بخوای کامنت کنی
می تونی هر خط رو تک تک کامنت کنی با روش اول
یا اول و آخر 10 خط رو با روش دوم مشخص کنی و همه رو کامنت کنی
سلام
بسیار ممنون از پاسخ گویی شما.
سلام
خواهش می کنم …
ممنون از شما
اونجایی که با — کامنت میگذاریم. نرم افزار از کجا میفهمه که کامنت تموم شده و بقیه ش فرمول ماست؟؟ چون ما علامتی نمیگذاریم که بگیم تا اینجا کامنته مثلا
سلام
وقتی از این علامت استفاده کنید کل خطی که با این علامت آغاز شده کامنت میشه
و مستقل از سایر خطوط است.
دست شما درد نکنه. کارتون واقعا ارزشمنده.
لطفا لینک به مطلب قبلی و بعدی بزارید. اینجوری پیمایش بین مطالب پیوسته راحتتره. ممنون.