زبان برنامه نویسی M در پشت صحنه پاور کوئری فعالیت میکند. هر تغییری که شما در کوئری ایجاد میکنید به زبان M نوشته میشود. بعضی از افراد زبان M را ترسناک میدانند. در این مطلب به مقدماتی در مورد این زبان خواهیم پرداخت ولی فعلا وارد بحث انواع فرمول ها نمی شویم. در این مطلب بیشتر به ساختار زبان M میپردازیم. زمانی که شما با ساختار و ترکیب این زبان آشنا شوید، آنگاه درک دیگر قسمت ها بسیار آسان خواهد بود. بعنوان یک برنامه نویس پاور کوئری به شما پیشنهاد میکنم که روی این بحث وقت زیادی را صرف کنید زیرا عملیات بسیاری بر اساس زبان برنامه نویسی M صورت می گیرد.
در صورتی که با ابزار قدرتمند پاور کوئری در اکسل آشنا نیستید، میتوانید به صفحه زیر مراجعه کنید و به صورت مرحله به مرحله و از ابتدا تا انتها با پاور کوئری آشنا شوید:
دوره رایگان آموزش پاور کوئری در اکسل
رابط گرافیکی کاربر هر ماه و شاید هفته دچار تغییر میشود و خاصیت ها و عملکردهای جدید به آن اضافه میشود. ولی حقیقت این است که تمام این خواص و عملکردها سالهاست که بر اساس یک زبان نوشته شده است.
ترکیب این زبان بسیار ساده است. این فرمول ها همیشه دارای دو قسمت برنامه نویسی هستند. قسمت عبارت let و قسمت عبارت in . مثالی ساده از این دو قسمت، در پائین آورده شده است:
let و in کلمات از پیش تعریف شده هستند. قبل از ادامه مطلب شما می بایست در نظر داشته باشید که:
" زبان برنامه نویسی M نسبت به حروف بزرگ و کوچک حساس است و برای مثال بین X و x تفاوت وجود دارد."
Let: تعریف تمام متغیرها
In: خروجی. هر چیزی که درون این قسمت قرار میدهید خروجی کوئری شما خواهد بود.
در نتیجه کوئری زیر به این معنی است که یک متغیر به نام X تعریف میشود، مقدار 1 به آن تخصیص داده میشود و نشان دادن آن به عنوان نتیجه. بنابراین کوئری مقدار 1 را بر میگرداند.
رای اجرای این مثال، می بایست power BI را باز کنید.
به قسمت data بروید، و یک کوئری خالی جدید ایجاد کنید.
سپس در تب view گزینه advanced editor را انتخاب کنید.
حتما دقت داشته باشید که تمام کلمات تعریف شده مثل let و in را به صورت حروف کوچک بنویسید. همچنین متغیر شما نیز می بایست در هر دو قسمت فرمول از یک نوع حروف استفاده شده باشد و همانطور که مشاهده میکنید نیازی به تعریف نوع متغیرها نیست. پس از اولین تخصیص مقدار نوع متغیر به صورت اتوماتیک مشخص میشود.
اگر یک مقدار متنی تعیین کنید آنگاه نوع متغیر به صورت اتوماتیک از نوع داده های text قرار میگیرد.
نکته مهم:
اگر کاراکتر مشخص کننده آخر فرمول را قرار ندهید، خط کدهای M ادامه می یابد.
همانطور که در مثال بالا مشاهده می کنید، خط فرمول ادامه می یابد و X مساوی است با x=1+1 . اگر میخواهید یک خط فرمول را به پایان برسانید می بایست یک (,) در انتهای آن قرار دهید. به مثال زیر توجه کنید.
تمام خطوط فرمول می بایست یک (,) داشته باشند تا به پایان برسند به جز آخرین خط قبل از in .
نام متغیرها میتواند به صورت یک کلمه ای باشد یا دارای فاصله جداکننده باشد. در شرایطی که دارای کاراکترهایی مثل فاصله باشید، می بایست نام متغیر را در میان (“) قرار دهید و یک علامت # در ابتدای آن قرار دهید. برای مثال:
#”نام متغیر”
نام متغیرها میتواند دارای کاراکترهای خاص باشد. برای مثال در نمونه زیر مشاهده میکنید که نام متغیر دارای انواع مختلفی از کاراکترهاست و به خوبی نیز کار میکند.
دابل کوتیشن کاراکتر گریز است. شما میتوانید از این علامت برای تعریف نام هایی استفاده کنید که درون خود دارای یک دابل کوتیشن دیگر هستند. به مثال زیر دقت کنید:
اولین دابل کوتیشن(هایلایت شده) بالا می بایست قبل از دومین دابل کوتیشن(که قسمتی از نام متغیر است) قرار گیرد.
پاور کوئری یک تبدیل مرحله به مرحله است. زمانی که کدها را مینویسید، اگر به سمت راست توجه کنید، مشاهده خواهید کرد که هر متغیری یک مرحله را تشکیل می دهد.
در تصویر بالا، میتوانیم ببینیم که هر متغیر یک مرحله را تشکیل میدهد. و اگر متغیر دارای یک فاصله در نام خود باشد، در لیست Applied steps نیز همراه با فاصله نشان داده میشود.
آخرین متغیر همیشه در قسمت in مشخص میشود.
دو راه برای تعریف هر مقدار ثابت در پاور کوئری وجود دارد. برای مثال، اگر میخواهید یک متغیر تاریخ مشخص کنید، می بایست به شکل زیر عمل کنید
برای تعریف دیگر اقسام literal، به جدول زیر رجوع کنید:
زبان M بر اساس توابع است و شما برای انجام هرکاری در این زبان می بایست یک تابع را فراخوانی کنید. برای فراخوانی توابع فقط کافیست نام آنها را وارد کنید و پارامترهای ضروری آن را مشخص نمائید.
در تصویر بالا از Date.year استفاده شده است که قسمت سال تاریخ را مشخص میکند. نام توابع همیشه با حروف بزرگ شروع می شوند.
مثل دیگر زبان های برنامه نویسی در اینجا هم شما میتوانید در کدهای خود از کامنت استفاده کنید. این کامنت ها به دو شکل هستند.
کامنت نویسی یک خطی با استفاده دو خط اسلش
کامنت های چند خطی که می بایست بین خط اسلش و ستاره قرار گیرند.
حال که با مقدمات کار آشنا شدید، به بررسی یک کوئری در حالت advanced editor میپردازیم:
منبع : Skillpro.ir