در صورتی که با ابزار قدرتمند پاور کوئری در اکسل آشنا نیستید، میتوانید به صفحه زیر مراجعه کنید و به صورت مرحله به مرحله و از ابتدا تا انتها با پاور کوئری آشنا شوید:
زبان فرمول نویسی M چیست؟
M نام غیر رسمی زبان فرمول نویسی پاور کوئری است. به دلیل اینکه نام رسمی آن طولانی است کسی از آن استفاده نمی کند. بعضی از افراد اعتقاد دارند M مخفف “data mash up” است بعضی دیگر از افراد معتقدند M مخفف “data modeling” است. ولی نکته ای که اهمیت دارد این است که M یک زبان عملکردی است و ما می بایست عملکردهای آن را بدانیم. هر زبان دارای یک ساختار و ترکیب است که اولین سطح از یادگیری هر زبان را می بایست به این قسمت تخصیص داد. در این مطلب، به مرور ترکیب فرمولهای M میپردازیم. قبل از شروع به یاد داشته باشید که :
” M بسیار قدرتمندتر از رابط کاربری گرافیکی است”
رابط گرافیکی کاربر هر ماه و شاید هفته دچار تغییر میشود و خاصیت ها و عملکردهای جدید به آن اضافه میشود. ولی حقیقت این است که تمام این خواص و عملکردها سالهاست که بر اساس یک زبان نوشته شده است.
ترکیب زبان فرمول نویسی M
ترکیب این زبان بسیار ساده است. این فرمول ها همیشه دارای دو قسمت فرمول نویسی هستند. قسمت عبارت let و قسمت عبارت in . مثالی ساده از این دو قسمت، در پائین آورده شده است:
- let
- x=1
- in
- x
let و in کلمات از پیش تعریف شده هستند. قبل از ادامه مطلب شما می بایست در نظر داشته باشید که:
” زبان فرمول نویسی M نسبت به حروف بزرگ و کوچک حساس است و برای مثال بین X و x تفاوت وجود دارد.”
مفهوم دو قسمت فرمول های زبان M چیست؟
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
زبان M بر اساس توابع است و شما برای انجام هرکاری در این زبان می بایست یک تابع را فراخوانی کنید. برای فراخوانی توابع فقط کافیست نام آنها را وارد کنید و پارامترهای ضروری آن را مشخص نمائید.
در تصویر بالا از Date.year استفاده شده است که قسمت سال تاریخ را مشخص میکند. نام توابع همیشه با حروف بزرگ شروع می شوند.
استفاده از کامنت در زبان فرمول نویسی M
مثل دیگر زبان های فرمول نویسی در اینجا هم شما میتوانید در کدهای خود از کامنت استفاده کنید. این کامنت ها به دو شکل هستند.
کامنت نویسی یک خطی با استفاده دو خط اسلش
کامنت های چند خطی که می بایست بین خط اسلش و ستاره قرار گیرند.
یک مثال واقعی
حال که با مقدمات کار آشنا شدید، به بررسی یک کوئری در حالت advanced editor میپردازیم:
در تصویر بالا میتوانید تمام مقدماتی را که تاکنون به آن اشاره شد مشاهده کنید.
- قسمت های let و in
- تعریف نام برای متغیرها
- نام متغیرها همراه با علامت های “#” و (“”)
- کارکترهای انتهای خط فرمول
- فراخوانی چندین تابع
هنوزه در این کوئری قسمت های زیادی وجود دارد که شما با آن آشنا نیستید. در مطالب بعد تلاش می کنیم شما را به صورت پیشرفته تر با زبان فرمول نویسی M آشنا کنیم.
[/vc_column_text][/vc_column][/vc_row]
سلام
کتاب به زبان فارسی برای آموزش زبان m وجود دارد؟
سلام
متاسفانه اطلاعی ندارم. برای آموزش مطالب به روز و جدید بهتر هست از منابع انگلیسی استفاده کنید.