• مسابقه Power BI
    • اولین مسابقه Power BI
    • دومین مسابقه Power BI
  • جدیدترین مطالب آموزشی
  • تحلیل داده نرم افزاری (فنّی)
  • تحلیل داده غیرفنّی
  • دوره‌های آفلاین
  • سبد خرید
  • تماس با ما
  • حساب کاربری

سبد خرید شما خالی است.

گروه تحلیلگری
  • مسابقات Power BI
    • اولین مسابقه Power BI ایران
    • دومین مسابقه Power BI ایران
  • مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • Power Query
    • DAX
  • مسیرهای یادگیری
    • مسیر یادگیری تحلیل داده (فنی)
    • مسیر یادگیری غیرفنّی تحلیلگر داده
  • دوره‌های آموزشی
    • مهارت‌های غیرفنّی تحلیلگر داده
    • اکسل
    • Power BI
    • Power Query
    • SQL
    • تحلیل داده با پایتون
    • سبد خرید
  • ارتباط با ما
    • تماس
    • اینستاگرام
0
حساب کاربری

مقالات

زبان DAX چیست؟

در این مطلب قصد داریم به بررسی زبان DAX بپردازیم. می خواهیم بدانیم زبان DAX چیست؟ و در چه مواردی کاربرد دارد؟ در این مطلب به بررسی مفاهیم پایه ای DAX خواهیم پرداخت.

زبان DAX چیست؟

قبل از این که بگوییم زبان DAX چیست؟ باید به معرفی اجمالی این زبان بپردازیم. DAX مخفف عبارت Data Analysis Expression زبان مشترک بین نرم افزار های Power BI، همچنین Excel Power Pivot و SSAS Tabular است. زبان DAX مجموعه ای از توابع، اپراتور ها و محدودیت ها است که می تواند یک یا چند مقدار را به عنوان خروجی تولید کند و به شما کمک کند تا اطلاعات جدیدی از دل داده های خود استخراج کنید.

چرا DAX اهمیت دارد؟

شما به راحتی می توانید داده را در Power BI وارد کنید، داده ها را دستکاری کنید و به شکل و شمایل مناسب و مورد نیاز خود در آورید، بدون نیاز به نوشتن حتی یک خط کد گزارش هایی ایجاد کنید و نیاز های کسب و کار خود را برطرف سازید، اما به محض ایجاد نیازهای جدی تر و پیشرفته  تر، بدون استفاده از زبان DAX کاری از پیش نخواهید برد.

زبان DAX این قابلیت را به شما می دهد تا تحلیل های پیشرفته تری ارائه کنید، به استخراج اطلاعات پر اهمیت تری بپردازید و به بینش عمیق تری از کسب و کار خود دست پیدا کنید.

دقت کنید که مقصود ما این نیست که Drag & Drop کردن خوب است یا بد؟ چه بسا این ویژگی یکی از مهم ترین ویژگی های یک نرم افزار هوش تجاری سلف سرویس این است که کاربر بتواند نیازهای اولیه خود را با کمترین زحمت برطرف سازد، اما به این نکته هم توجه کنید که قرار نیست تا ابد مسائل پیش پا افتاده ای در کسب و کار شما پیش آید، پس حتما و حتما نیاز دارید تا خود را به اسلحه قدرتمند DAX مسلح سازید.

مشابهت با اکسل

فرمول نویسی با زبان DAX تا حدی به فرمول نویسی در اکسل شباهت دارد، اما آیا این موضوع به این معنی است که اکسل پیش نیاز یادگیری زبان DAX است؟ قطعا خیر! شما در صورتی که با اکسل کار کرده باشید تا حدی راحت تر می توانید وارد فرمول نویسی با استفاده از زبان DAX شوید.

اما اگر تا به حال اکسل را هم از نزدیک ندیده اید باز هم جای نگرانی نیست! زبان DAX قواعد و قوانین مخصوص به خود را دارد که مستقل از هر زبان دیگری قابل یادگیری و استفاده است.

موارد استفاده از زبان DAX

در Power BI استفاده از زبان DAX برای ایجاد Measure ها، ستون های محاسباتی (Calculated Columns) و جداول محاسباتی (Calculated Tables) به کار برده می شود.

Syntax در زبان DAX

حال که می دانید زبان DAX چیست؟ لازم است که با Syntax فرمول نویسی در زبان DAX آشنا شویم. Syntax در واقع قواعد و قوانین نگارشی یک زبان برنامه نویسی است. در شکل زیر یک نمونه از نحوه فرمول نویسی برای ایجاد مژر در زبان DAX را مشاهده می کنید. همان طور که مشاهده می کنید این کد از اجزای مختلفی تشکیل شده است.

هنگامی که می خواهید مژری ایجاد کنید ابتدا نام آن را انتخاب نموده (1)، سپس علامت مساوی (2) را قرار می دهیم. بعد از آن استفاده از یک تابع مانند SUM ضروری به نظر می رسد (3). حال باید پارامتر های مورد نیاز آن تابع را در پرانتز معرفی نمایید.

همان طور که می دانید پارامتر مورد نیاز تابع SUM یک ستون است. تابع SUM مقادیر موجود در یک ستون را با هم جمع می کند. برای معرفی ستون حتما باید ابتدا نام جدول (4) و سپس نام ستون (5) را درج نمایید.

زبان DAX چیست؟

اگر بخواهیم به زبان ساده بگوییم، مژری به نام TotalSales ایجاد کردیم که مقادیر ستون SalesAmout را جمع نمایید. حال می توانیم این مژر را در گزارش های خود مورد استفاده قرار دهیم. به تصویر زیر توجه کنید.

زبان DAX چیست؟

همان طور که مشاهده می کنید ما از یک مژر (TotalSales) در 4 گزارش استفاده نمودیم. مژر یکسان است اما Context متفاوت! پس نتایج متفاوتی را شاهد هستیم. پس متوجه شدید که مقدار خروجی یک مژر با توجه به Context مشخص می شود و این مهمترین خاصیت مژر است.

آیا همین کار را با Drag & Drop نمی توانستیم انجام دهیم؟ قطعا می توانستیم. کافی بود ستون SalesAmount در قسمت Values قرار دهیم تا یک مژر ایجاد شود. به این نوع از مژر Implicit Measure گفته می شود. در واقع شما تنها Drag & Drop می کنید و در پشت پرده یک مژر ساخته می شود، بدون آنکه شما کار خاصی انجام دهید. این نوع مژر در مقابل Explicit مژر که شخصا آن را می نویسید، قرار می گیرد.

مشکل اینجاست که شما از مژر ضمنی نمی توانید در مژر های دیگر استفاده کنید، پس حتی اگر می توانید با Drag & Drop آن را به راحتی ایجاد کنید، سعی کنید خودتان آن را بنویسید.

در مثال زیر از مژر قبل به عنوان آرگومان در یک مژر جدید استفاده نمودیم. پس خیال خود را از همان ابتدا راحت کنید و همه مژر ها را خودتان بنویسید. این مژر فروش اینترنتی را محاسبه می کند.

زبان DAX چیست؟

بیایید یک قرارداد را بین خودمان تنظیم کنیم و همگی به آن پایبند باشیم. این  که همیشه قبل از نام ستون، نام جدول را بنویسیم اما هیچ گاه قبل از مژر نام جدول را ننویسیم. به مثال بالا توجه کنید. TotalSales نام یک مژر است که نام جدول پشت آن نوشته نشده است. اما Channel یک ستون است که نام جدول پشت آن نوشته شده است.

همچنین توجه کنید اگر نام جدول دارای فاصله باشد یا از کلمات رزرو شده یا علائم غیر مجاز استفاده شده باشد باید آن را در single quotation قرار دهیم. به مثال زیر توجه کنید.

زبان DAX چیست؟

Measure

خب بیایید با هم یک مژر بنویسیم. می خواهیم میزان فروش در سال 2013 را به دست آوریم. از تب Home گزینه New Measure را انتخاب کنید.

زبان DAX چیست؟

باکسی برای شما باز می شود که در آن =Measure نوشته شده است. Measure را پاک کنید و نام دلخواه خود را به جای آن تایپ کنید. نام مژر را Sales2013 گذاشتیم. حال شروع به تایپ می کنیم. می خواهیم از تابع CALCUALTE استفاده کنیم. با شروع به تایپ، دست غیب به کمک شما می آید و به شما پیشنهاداتی می دهد.

زبان DAX چیست؟

به تصویر زیر توجه کنید. با شروع به تایپ لیستی از توابع نمایش داده می شود که از این لیست CALCULATE را انتخاب می کنیم. برای انتخاب کافیست با جهت های موجود در کیبورد تابع مورد نظر را انتخاب نموده و کلید Tab را فشار دهید. تابع، نوشته شده، توضیحی درباره آن نمایان می شود و به شما توضیح می دهد چه آرگومان هایی مورد نیاز است.

زبان DAX چیست؟

همان طور که مشاهده می کنید گفته شده می توانید یک expression و چند فیلتر را به عنوان آرگومان به آن معرفی نمایید. ما مژر TotalSales را به عنوان expression و سال 2013 را به عنوان فیلتر معرفی می نماییم.

برای نوشتن مژر براکت باز را تایپ کنید تا لیست مژر ها نمایش داده شود.

زبان DAX چیست؟

بعد از اتمام expression علامت کاما را انتخاب کنید تا آرگومان دوم را بنویسید. همان طور که در تصویر بالا مشاهده می کنید آرگومان اول Bold کرده که به این معنی است که شما باید آرگومان اول را وارد نمایید. به محض تایپ کردن کاما آرگومان دوم Bold خواهد شد. در نهایت با بستن پرانتز فرمول نویسی به اتمام خواهد رسید.

زبان DAX چیست؟

حال می توایند از این مژر در ویژوال های خود استفاده کنید.

Calculated Column

یکی از موارد دیگر استفاده از زبان DAX، ایجاد ستون های محاسباتی است. برای ایجاد ستون های محاسباتی باید در جدول مورد نظر بر روی یکی از ستون ها کلیک راست نموده و گزینه New Column را انتخاب کنید.

دقت کنید که بر خلاف مژر که به صورت فیزیکی ایجاد نمی شود و مهم نیست در چه جدولی ذخیره شود، ستون محاسباتی به صورت فیزیکی در مدل شما ذخیره شده و اشغال فضا و RAM را در پی خواهد داشت و جدول میزبان آن اهمیت دارد.

فرض کنید می خواهیم در جدول فروش تعداد فروش را در قیمت ضرب کنیم. تصویر این عملیات را مشاهده می کنید.

زبان DAX چیست؟

توجه کنید که محاسبه Calculated Column ردیف به ردیف انجام شده و نتیجه در مقابل آن درج می شود. در واقع ردیف به ردیف تعداد در قیمت ضرب شده و نتیجه در ستون LineAmount ذخیره می شود.

Calculated Table

جدول محاسباتی جدولی است که با زبان DAX ایجاد و به مدل اضافه می شود. در این مورد باید از توابعی استفاده کنید که خروجی آن ها یک جدول باشد. مانند توابع:

ALL, VALUES, FILTER, …

کافی است از تب Home، گزینه New Table را انتخاب نموده و دستور خود را وارد نمایید. فرض کنید می خواهیم جدولی ایجاد کنیم که فقط شامل خرید های آنلاین باشد. کافیست به ترتیب زیر عمل کنیم.

به این ترتیب با استفاده از تابع FILTER یک جدول فیزیکی به مدل اضافه می شود که حاوی بخشی از اطلاعات جدول Sales است.

زبان DAX چیست؟

جمع بندی

در این مطلب به معرفی اجمالی از زبان DAX پرداختیم. حال شما می دانید زبان DAX چیست؟ و مفاهیم پایه ای آن کدامند؟ از DAX نترسید و با آن به جنگ مسائل کسب و کار خود بروید.

درباره حسین وثوقی

دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...

نوشته های بیشتر از حسین وثوقی
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • کاربرد پارامتر در پاوربی آی
    کاربرد پارامتر و تحلیل حساسیت در پاور بی آی

    3.71k بازدید

  • استفاده از متغیر و تابع EARLIER در زبان DAX

    2.49k بازدید

  • پانزده تابع DAX که باید حتما یاد بگیرید

    3.55k بازدید

  • تابع IF و SWITCH در زبان DAX

    2.22k بازدید

  • رنگ بندی شرطی با زبان DAX
    رنگ بندی شرطی با زبان DAX

    1.55k بازدید

  • مفهوم Context و انواع آن در زبان DAX
    مفهوم Context و انواع آن در زبان DAX

    1.84k بازدید

عضویت
به دوستتان خبر دهید.
guest
تعداد ماههای سال به عدد
guest
6 نظر
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
statis
statis

سلام
مطب آموزشی مفیدی بود.
از آموزش‌های خوب شما سپاسگزارم

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  statis

سلام ممنون از همراهیتون

1
پاسخ
محسن خرم
محسن خرم

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

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  محسن خرم

https://tahlilgary.com/wp-content/uploads/AdventureWorksDW2012.xlsx

سلام
لینک رو تست کنید

0
پاسخ
طاهره گلزارخرم
طاهره گلزارخرم

بسیار مفید بود
ممنونم

0
پاسخ
کیا
کیا

عالی

0
پاسخ
جستجو
جستجو برای:
دسته بندی مطالب
  • Charts
  • DAX
  • Excel
  • Power BI
  • Power Query
  • تحلیل داده
  • هوش تجاری
پکیج های آموزشی
  • Data Analysis
  • Excel
  • Power BI
  • Power Query
  • Python
  • SQL
درباره گروه تحلیلگری

معتقدیم آموزش شروع یک تعهد بلند مدت است. این را از مشتریان ما سوال کنید.

اطلاعات تماس
  • تهران، خیابان مطهری، ابتدای خیابان سنایی، کوچه بیست و یکم
  • 42 12 600 - 0919 فقط تلگرام و واتساپ
  • info@tahlilgary.com
پیوندها
  • آموزش رایگان و اصولی اکسل
  • دوره رایگان آموزش Power BI | پاور بی آی
  • آموزش دستورات پایه SQL
  • آمار و تحلیل داده با پایتون
  • دومین مسابقه‌ Power BI ایران
دسته بندی محصولات
Data Analysis Excel Power BI Power Query Python SQL
wpDiscuz

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت