زبان DAX قدرت تحلیل دادهها
DAX یا Data Analysis Expressions یک زبان فرمولنویسی قدرتمند است که در ابزارهای تحلیل داده مایکروسافت مانند Power BI، Excel Power Pivot و SQL Server Analysis Services (SSAS) استفاده میشود. با DAX میتوان دادههای پیچیده را مدلسازی، تحلیل و در قالب گزارشهای تعاملی و داشبوردهای حرفهای ارائه کرد.
تاریخچه زبان DAX
این زبان در سال ۲۰۱۰ توسط مایکروسافت معرفی شد و نخستین بار در Power Pivot اکسل به کار گرفته شد. هدف آن، ایجاد یک زبان محاسباتی ساده ولی قدرتمند برای تحلیلگران داده بود تا بتوانند بدون نیاز به برنامهنویسی پیچیده، تحلیلهای پیشرفته انجام دهند.
ساختار و اجزای اصلی DAX
مجموعهای از توابع (Functions) و عملگرها (Operators) است که در چهار دسته کلی استفاده میشوند:
- توابع ریاضی:
SUM
،AVERAGE
،MIN
،MAX
- توابع تاریخ و زمان:
TODAY
،DATE
،YEAR
،MONTH
- توابع متنی:
CONCATENATE
،LEFT
،RIGHT
- توابع منطقی:
IF
،AND
،OR
کاربردهای مهم DAX در تحلیل داده
- محاسبات سفارشی: ایجاد ستونهای محاسباتی (Calculated Columns) و معیارها (Measures) برای گزارشها.
- تحلیل زمانی پیشرفته: مقایسه دادهها در بازههای مختلف، محاسبه رشد، مجموع تجمعی و تحلیل روندها.
- مدلسازی دادهها: ایجاد روابط بین جداول و ساخت مدلهای پیچیده.
- جستجو و بازیابی داده: استفاده از توابعی مانند
LOOKUPVALUE
وRELATED
.
نمونه فرمولهای
محاسبه مجموع فروش:
Sales Total = SUM(Sales[SalesAmount])
میانگین فروش ماهانه:
Monthly Sales Average = AVERAGE(Sales[SalesAmount])
تعداد روزهای کاری در ماه:
Workdays in Month =
COUNTROWS(
FILTER(
CALENDAR(MIN(Sales[Date]), MAX(Sales[Date])),
WEEKDAY([Date], 2) <= 5
)
)
مفاهیم کلیدی
- ستون محاسباتی (Calculated Column): محاسبه و ذخیره داده در زمان بارگذاری.
- معیار (Measure): محاسبه دینامیک بر اساس زمینه (Context).
- زمینه (Context): شامل زمینه ردیف و زمینه فیلتر که بر نحوه محاسبه نتایج تأثیر میگذارند.
- تحلیل زمانی:
Sales YTD = TOTALYTD(SUM(Sales[SalesAmount]), Dates[Date])
Sales LY = CALCULATE(SUM(Sales[SalesAmount]), SAMEPERIODLASTYEAR(Dates[Date]))
- توابع جستجو:
Product Category = LOOKUPVALUE(Categories[CategoryName], Categories[CategoryID], Products[CategoryID])
Product Price = RELATED(Products[Price])
نکات بهینهسازی
- حذف دادههای غیرضروری برای کاهش حجم مدل.
- استفاده از توابع تجمعی برای افزایش سرعت پردازش.
- مدیریت صحیح زمینه برای جلوگیری از محاسبات نادرست.
- بهینهسازی مدل داده با ایجاد روابط کلید اصلی و کلید خارجی.
FAQ – سوالات متداول
۱. آیا برای یادگیری DAX باید برنامهنویسی بلد باشم؟
خیر، دکس بر پایه منطق فرمولنویسی اکسل است و برای یادگیری آن نیازی به دانش برنامهنویسی پیشرفته ندارید.
۲. دکس در چه نرمافزارهایی استفاده میشود؟
در Power BI، Excel Power Pivot و SQL Server Analysis Services.
۳. تفاوت ستون محاسباتی و معیار در DAX چیست؟
ستون محاسباتی در زمان بارگذاری داده محاسبه و ذخیره میشود ولی معیارها بهصورت لحظهای بر اساس زمینه گزارش محاسبه میشوند.
۴. آیا DAX فقط برای محاسبات عددی است؟
خیر، شامل توابع متنی، تاریخ و زمان، منطقی و جستجو نیز هست.
۵. تفاوت DAX و SQL چیست؟
SQL برای مدیریت و استخراج داده از پایگاه داده استفاده میشود، در حالی که DAX روی مدل داده و محاسبات تحلیلی در ابزارهایی مثل Power BI تمرکز دارد.
۶. بهترین منبع یادگیری DAX کدام است؟
کتاب Definitive Guide to DAX نوشته Marco Russo و Alberto Ferrari معتبرترین مرجع برای یادگیری عمیق DAX است.
۷. آیا DAX روی Mac هم قابل استفاده است؟
بله، از طریق Power BI Service و Excel نسخه Mac میتوان از دکس استفاده کرد، هرچند برخی قابلیتها محدود هستند.
۸. سختترین بخش یادگیری دکس چیست؟
درک کامل مفهوم Context (زمینه محاسباتی) و نحوه عملکرد آن در Measureها معمولا برای مبتدیان چالشبرانگیز است.
منابع و مقالات
برای اطلاعات بیشتر و مطالعه تخصصی میتوانید به منابع زیر مراجعه کنید:
- مرجع زبان DAX افزونه کوئری نویسی در اکسل و POWER BI
- مرجع زبان فرمول نویسی M در پاور کوئری
- طراحی داشبوردهای مدیریتی در Microsoft Power BI
تماس و مشاوره
اگر به دنبال تحلیل دادههای دقیق، ساخت داشبوردهای حرفهای و افزایش سرعت تصمیمگیری در سازمان خود هستید،
شرکت توسعه فناوری اطلاعات لاندا با تیمی آماده ارائه آموزش، مشاوره و اجرای پروژههای BI برای شماست.
نظری داده نشده