نیک آموز > وبلاگ > هوش تجاری > زبان M چیست؟
زبان M چیست؟

زبان M چیست؟

نوشته شده توسط: غلامحسین عبادی
تاریخ انتشار: ۲۲ دی ۱۴۰۴
آخرین بروزرسانی: 01 بهمن 1404
زمان مطالعه: 11 دقیقه
۰
(۰)

M مخفف Power Query Formula Language می‌باشد این زبان در واقع یک زبان Functional بوده، که به وسیله آن می‌توانیم در محیط Power Query، کد‌نویسی نماییم (زبان DAX برای استفاده در محیط Power BI Desktop می‎‌باشد ولی زبان M مخصوص محیط Power Query می‌باشد). این زبان به حروف کوچک و بزرگ حساس می‌باشد. تعداد این توابع بیش از ششصد تابع می‌باشد. در این زبان ما نمی‌توانیم خودمان تابع ایجاد نماییم.

نکته: اما دلیل استفاده از حرف M نیز به خاطر واژه Mashup‌ به معنای ادغام است. در واقع قابلیت ادغام داده‌ها و تبدیل آنها در این زبان باعث شده است تا مایکروسافت از این مفهوم در نامگذاری آن استفاده نماید.

ساختار زبان M به صورت زیر می‌باشد:

زبان m

مطابق شکل فوق، در قسمت let تمامی متغیرها، عبارات و مقادیر تعریف می‌شوند. درواقع در این قسمت کدهایی که قصد اجرای آن را دارید (ورودی‌ها) نوشته می‌شوند. هرچیزی که در قسمت in قرار گیرد خروجی کوئری شما خواهد بود. نام متغیرها می‌تواند به صورت یک کلمه‌ای باشد یا دارای فاصله جداکننده باشد. در شرایطی که کاراکترهایی مثل فاصله را بخواهید استفاده کنید، می‌بایست نام متغیر را در میان دابل کوتیشن قرار دهید و یک علامت # در ابتدای آن قرار دهید. برای تعریف متغیر از کلمه let استفاده می‌کنیم.

اجرای پروژه هوش تجاری Enterprise تخصص ماست.

نحوه ورود به محیط Power Query

برای رفتن از محیط Power BI Desktop به محیط Power Query کافیست مطابق شکل زیر از منو Home بر روی گزینه Transform date و سپس بر روی گزینه Transform data کلیک کنید.

زبان m

شما در محیط Power Query هر کاری که انجام می‌دهید، کد معادل M آن در پشت صحنه تشکیل می‌شود. مطابق شکل زیر اگر به فرض نام ستون Country را Rename کرده و به Keshvar تغییر دهیم؛ در این صورت در پنجره Applied Steps یک مرحله اضافه می‌شود. در صورتی که از این کار خود پشیمان شدید، کافیست در پنجره Applied Steps بر روی ضربدر آن مرحله کلیک کرده و آن مرحله را حذف نمایید.

زبان m

 

مشاهده و خرید کامل‌ترین آموزش Power bi از نیک آموز

برای دیدن کد M مربوط به کاری که در محیط Power Query انجام داده‌اید، کافیست از منو Home بر روی گزینه Advance Editor کلیک نمایید، در این صورت مطابق شکل زیر کد M مربوط به کاری که انجام داده‌اید را خواهید دید.

زبان m

کاربردهای M در Power Query

۱ – اتصال به منابع داده.

۲ – تمیز کاری داده‌ها (Data Cleansing).

۳ – تبدیل داده‌ها (Transformation).

۴ – ترکیب داده‌ها (Merge / Append) استفاده می‌شود.

ویژگی‌های مهم زبان M:

۱ – یک زبان تابعی (Functional) می‌باشد.

۲ – حلقه کلاسیک (For ،While) ندارد.

۳ – همه چیز با توابع انجام می‌شود.

۴ – به حروف کوچک و بزرگ حساس می‌باشد (Case-Sensitive می‌باشد).

ساختار کلی یک کد M:

let
.
.
.
in

جهت استفاده از خدمات تخصصی هوش تجاری با تیم فنی نیک آموز ارتباط بگیرید.

انواع دیتا تایپ‌ها در زبان M:

انواع دیتا تایپ‌های در زبان M عبارتند از:

نوع مثال
Number ۴۵.۶ , ۱۲۳
Text “Danial”
Logical True , false
Date Date(2025,1,1)#
Time Time(12,30,0)#
DateTime Datetime(2025,1,112,30,0)#
List {۱,۲,۳}
Record [Name=”Danial” , Age=21]
Table جدول داده

کامنت در زبان M:

کامنت‌گذاری در زبان M همچون زبان #C می‌باشد. برای افزودن کامنت یک خط، از دو عدد کاراکتر اسلش استفاده می‌کنیم و برای افزودن کامنت چند خط، از کاراکتر اسلش ستاره و در آخر از ستاره و سپس اسلش استفاده می‌نماییم.

زبان m

توابع موجود در زبان M:

برای دیدن توابع موجود در زبان M می‌توانید وارد سایت مایکروسافت شوید. در حال حاضر تعداد توابع زبان (M) 674 عدد می‌باشد.

مثال: می‌خواهیم در ستون اول نام و نام‌خانوادگی دو نفر و در ستون دوم حرف اول نام و نام‌خانوادگی افراد را نمایش دهیم:

کد زیر را در قسمت Advanced Editor در Power Query قرار می‌دهیم.

let
    Source = Table.FromRows(
        {
            {"Danial Ebadi"},
            {"Arian Ebadi"}
        },
        {"FullName"}
    ),
    SplitNames = Table.AddColumn(
        Source,
        "Abbreviation",
        each 
            Text.Start(Text.BeforeDelimiter([FullName], " "), 1) &
            Text.Start(Text.AfterDelimiter([FullName], " "), 1)
    )
in
    SplitNames

تصویر زیر مربوط به کدهای واقع در محیط Advanced Editor می‌باشد.

زبان m

بر روی دکمه Done کلیک کنید. در این صورت خروجی زیر را خواهیم داشت:

زبان m

مثال: می‌خواهیم به کمک زبان M، کاراکترهای a تا z و A تا Z و فاصله و اعداد (یعنی صفر تا نه) را در متن خود نگه داشته و بقیه کاراکترها را حذف نماییم.

تذکر مهم: برای حذف کاراکترهایی غیر از a تا z و صفر تا نه، در محیط Power Query، یا باید بر روی ستون مورد نظر کلیک راست کرده و گزینه Replace values را زده و مثلا کاراکتر علامت تعجب را با هیچی جایگزین کنیم، و این کار را برای کاراکترهای مختلفی انجام دهیم که کاری بسیار خسته کننده است. یا اینکه می‌توانیم به کمک زبان M و با یک نیم خط کد این کار را انجام دهیم.

حل مسئله به کمک توابع M:

یک فایل متنی وارد محیط Power Query می‌کنیم. حال در محیط Power Query، وارد منو Add Column شده و بر روی گزینه Custom Column کلیک می‌نماییم.

زبان m

در این صورت پنجره‌ایی مطابق زیر نمایان می‌گردد.

زبان m

حال کد زیر را در قسمت فرمول وارد می‌نماییم. بعد از کارکتر مساوی ابتدا کلاس Text و سپس متد Select را می‌آوریم. سپس پرانتز باز را وارد نموده و بعد نام ستونی که می‌خواهیم روی آن عملیات انجام دهیم را وارد می‌نماییم (نام ستون را داخل براکت قرار دهید). بعد از آن علامت ویرگول و سپس لیست کاری که می‌خواهیم انجام پذیرد را وارد می‌نماییم. لازم به ذکر است که برای پیاده‌سازی لیست، آنها را داخل دو عدد آکولاد قرار داده و از دو عدد نقطه استفاده می‌نماییم. دقت کنید که در آخر پایین همین صفحه‌ایی که فرمول خود را وارد می‌نمایید، عبارت No syntax errors نمایش داده شود. مطابق کد زیر کاراکترهای a تا z را به‌صورت  {“a”..”z”} بیان می‌نماییم. برای یادگیری بیشتر می‌توانیم به کتاب Pro Data Mashup for Power BI انتشارات Apress نوشته Adam Aspin اشاره نماییم.

زبان m

سخن پایانی

زبان M یک زبان تابعی و حساس به حروف بزرگ و کوچک است که برای اتصال و ترکیب داده‌ها در Power Query استفاده می‌شود. این زبان شامل بخش let برای تعریف متغیرها و بخش in برای تعیین خروجی نهایی کوئری است و فاقد حلقه‌های تکرار کلاسیک است. تمامی عملیات‌ها با بیش از ۶۰۰ تابع مدیریت می‌شوند و تغییرات در Power Query منجر به تولید خودکار کد M می‌شود. زبان M انواع داده‌ها مانند List و Table را پشتیبانی می‌کند و امکانات پیچیده‌تری برای پاک‌سازی داده‌ها ارائه می‌دهد. در نیک آموز با به بهترین آموزش power bi و مجرب‌ترین اساتید در کنار شما هستیم.

سوالات متداول 

۱. زبان M چیست و چه تفاوتی با زبان DAX دارد؟

زبان M مخفف (Power Query Formula Language) است و یک زبان Functional (تابعی) می‌باشد. که برای کدنویسی در محیط Power Query طراحی شده است. تفاوت اصلی این دو در این است که زبان DAX برای استفاده در محیط Power BI Desktop (جهت فرمول‌نویسی و محاسبات) کاربرد دارد، اما زبان M  مخصوص محیط Power Query و برای فرآیندهای آماده‌سازی داده‌ها است.

۲. ساختار کلی کدنویسی به زبان M چگونه است؟

ساختار این زبان از دو بخش اصلی let و in تشکیل شده است [۲، ۵]. در قسمت let، تمامی متغیرها، عبارات و ورودی‌هایی که قصد اجرای آن‌ها را دارید تعریف می‌شوند. در مقابل، هر چیزی که در قسمت in قرار بگیرد، به عنوان خروجی نهایی کوئری شما نمایش داده خواهد شد. همچنین برای کامنت‌گذاری در این زبان، از دو اسلش (//) برای یک خط و از (/* */) برای چندین خط استفاده می‌شود.

۳. چگونه می‌توانیم کدهای M مربوط به تغییرات خود را در Power Query مشاهده کنیم؟

هر تغییری که در محیط Power Query روی داده‌ها انجام می‌دهید، کد معادل آن به زبان M در پشت صحنه ساخته می‌شود. برای مشاهده این کدها، باید از منوی Home بر روی گزینه Advanced Editor کلیک کنید. همچنین هر مرحله‌ای که انجام می‌دهید در پنجره Applied Steps ذخیره می‌شود که امکان حذف یا ویرایش آن مراحل وجود دارد.

۴. کاربردهای اصلی زبان M در Power BI چیست؟

زبان M به طور کلی برای چهار هدف اصلی در Power Query استفاده می‌شود که عبارتند از: اتصال به منابع داده، تمیزکاری داده‌ها (Data Cleansing)، تبدیل داده‌ها (Transformation) و در نهایت ترکیب داده‌ها از طریق Merge یا Append. یکی از ویژگی‌های مهم این زبان این است که حلقه کلاسیک (مثل For یا While) ندارد و همه کارها با توابع انجام می‌شود.

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
دانلود مقاله
زبان M چیست؟
فرمت PDF
9 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
غلامحسین عبادی
مقالات
16 مقاله توسط این نویسنده
غلامحسین عبادی

مهندس غلامحسین عبادی، دانش آموخته علوم کامپیوتر دانشگاه امیرکبیر | مولف کتاب‌های حوزه برنامه نویسی و SQL Server | هفت سال کارشناس نرم افزار شرکت خودرو سازی سایپا |۱۰ سال رئیس برنامه‌های کاربردی و مسئول دیتابیس در شرکت ایران خودرو | ۴ سال سابقه DBA در شرکت داده ورزی سداد | مدرک MCSD مایکروسافت از امارات | مدرس SQL Server در سازمان‌های دولتی | ۱۶ سال سابقه تدریس در دانشگاه‌ها و سازمان‌ها

title sign
دیدگاه کاربران

مسیر اجرای پروژه‌های هوش تجاری

چگونه یک پروژه هوش تجاری از صفر تا صد اجرا می‌شود؟

  • این قسمت برای اهداف اعتبارسنجی است و باید بدون تغییر باقی بماند.

ویدئو رایگان