اگر Power BI را یک ماشین تحلیل قدرتمند بدانیم، DAX قلب تپندهی آن است. DAX یا Data Analysis Expressions زبانی تحلیلی است که به شما اجازه میدهد محاسبات پیشرفته، مدلسازی پویا، و تحلیلهای متنی و عددی را روی دادههای خود انجام دهید.
با کمک DAX میتوانید:
-
فرمولهای تحلیلی دقیق و شرطی بنویسید.
-
رفتار کاربران را در فیلترها و سِلِکتها بررسی کنید.
-
محاسبات زمانی، رتبهبندی، تجمیع، و دستهبندی دادهها را انجام دهید.
-
و به طور کلی، از یک داشبورد ساده، به یک ابزار تصمیمساز هوشمند برسید.
در این مقاله، ۲۲ تابع کاربردی و اساسی DAX را مرور میکنیم که برای هر تحلیلگر دادهی حرفهای یا در مسیر حرفهای شدن، شناخت و تسلط بر آنها الزامی است.
برخی از این توابع پایه و ساده بهنظر میرسند، اما نقش حیاتی در فرمولنویسی DAX دارند. برخی دیگر، ابزارهایی پیشرفته برای کنترل دقیق فیلترها، ساخت مدلهای داینامیک، یا تحلیلهای چندلایه در اختیار شما قرار میدهند.
📌 از توابع پرکاربردی مانند SUM
و CALCULATE
گرفته تا ابزارهای شرطی مانند SWITCH
یا توابع ارتباطی مانند RELATED
و RANKX
— همه در این لیست حضور دارند.
تا انتهای این مقاله از مهندس سینامحمدیاری با ما همراه باشید تا ضمن آشنایی با هر یک از این توابع، کاربرد آنها را در سناریوهای واقعی تحلیل داده بهتر درک کنید.
تمام مثالها نیز در بستر Power BI و مدلسازی واقعی طراحی شدهاند تا بلافاصله بتوانید از آنها در پروژههای خود استفاده کنید.
1. CALCULATE
: پادشاه توابع DAX
این تابع به شما امکان میدهد زمینه (context) محاسبه را تغییر دهید. هر وقت نیاز دارید شرطی روی محاسبه اعمال کنید، CALCULATE
بهترین انتخاب است.
Sales West Jan 2022 =
CALCULATE(SUM(Sales[Amount]),
Sales[Region] = "West",
YEAR(Sales[Date]) = 2022,
MONTH(Sales[Date]) = 1)
کاربرد: محاسبه با اعمال فیلترهای دینامیک یا ثابت.
2. SUM
این تابع برای جمع مقادیر یک ستون کاربرد دارد.
Total Sales = SUM(Sales[Amount])
کاربرد: محاسبه مقادیر کلی یا میانگین برای مقایسه عملکرد، قیمتها یا سایر مقادیر عددی.
3. AVERAGE
: محاسبه میانگین
تابع AVERAGE
میانگین مقادیر عددی یک ستون را محاسبه میکند. دقت کنید که فقط مقادیر عددی در نظر گرفته میشوند.
Average Sales = AVERAGE(Sales[Amount])
کاربرد: تحلیل عملکرد میانگین فروش، میانگین حقوق، میانگین زمان تحویل، و سایر شاخصهای کمی.
4. COUNT
COUNT
فقط سلولهای عددی را میشمارد.
Product Count = COUNT(Products[ID])
کاربرد: شمارش تعداد آیتمها، کاربران فعال، محصولات ثبتشده و..
5. COUNTA
: شمارش مقادیر غیرخالی
در حالیکه COUNT
فقط سلولهای عددی را میشمارد اما COUNTA
میتواند مقادیر منطقی را هم بشمارد.
NonEmpty Customers = COUNTA(Customers[Name])
کاربرد: شناسایی تعداد رکوردهای فعال، فیلدهای پرشده، کاربران ثبتنام کرده و…
6. DISTINCTCOUNT
: شمارش بدون تکرار
برای وقتی که تعداد مقادیر یکتای یک ستون مهم است.
Unique Categories = DISTINCTCOUNT(Products[Category])
کاربرد: تعداد دستهبندیهای یکتا، مشتریان منحصر بهفرد، شماره سفارشهای غیرتکراری و…
7. MIN
یافتن مقدار حداقل یا حداکثر یک ستون عددی.
Min Price = MIN(Products[Price])
کاربرد: تحلیل نوسان قیمت، شناسایی محصولات ارزان یا گران و…
8. MAX
: بیشترین مقدار
MAX
بیشترین مقدار عددی موجود در یک ستون را استخراج میکند.
Max Discount = MAX(Sales[Discount])
کاربرد: شناسایی بیشترین تخفیف، بیشترین فروش، بیشترین بازده و سایر نقاط اوج داده.
9. IF
: شرط ساده
برای زمانی که میخواهید تصمیمگیری ساده روی دادهها انجام دهید.
Is Profitable = IF([Profit] > 0, "سودده", "زیانده")
کاربرد: طبقهبندی، کنترل کیفیت، یا ایجاد دستهبندی دوگانه بر اساس شرط.
10. SWITCH
: شرط چندگانه
مانند IF
ولی برای شرایط متعدد خواناتر است.
Price Category =
SWITCH(TRUE(),
Products[Price] < 100, "ارزان",
Products[Price] < 500, "متوسط",
"گران")
کاربرد: گروهبندی قیمت، اولویتبندی مشتریان، سطحبندی درآمد و…
11. RELATED
: دریافت داده از جدول مرتبط
وقتی یک جدول با یک جدول دیگر رابطه دارد، از ستون های جدول دوم میتوان استفاده کرد.
Customer Region = RELATED(Customers[Region])
کاربرد: افزودن اطلاعات مشتری به جدول فروش، افزودن نام محصول به جدول تراکنش و…
12. RELATEDTABLE
: برعکس RELATED
وقتی از سمت یک جدول اصلی میخواهید جدول فرعی مرتبط را بازیابی کنید.
Customer Sales = COUNTROWS(RELATEDTABLE(Sales))
کاربرد: شمارش سفارشات یک مشتری، تعداد محصولات یک دسته و…
13. VALUES
: گرفتن مقادیر یکتا از یک ستون
یک لیست بدون تکرار از مقادیر در زمینهی فعلی.
Categories = VALUES(Products[Category])
کاربرد: فیلترکردن داده، ساختن slicer یا نمایش لیست یکتا در کارتها.
14. SELECTEDVALUE
: گرفتن مقدار انتخابشده در فیلتر
وقتی فقط یک مقدار انتخاب شده، آن را برمیگرداند، وگرنه مقدار پیشفرض میدهد.
Selected Year = SELECTEDVALUE('Date'[Year], "همه سالها")
کاربرد: نمایش فیلتر فعال در داشبوردها، استفاده در KPI یا مقایسه سالها.
15. CONCATENATE
: اتصال دو متن
ترکیب دو رشته متنی.
Full Name = CONCATENATE(Employees[FirstName], Employees[LastName])
16. CONCATENATEX
: اتصال لیست مقادیر
بهصورت تکرارشونده و با جداکننده مشخص.
Category List =
CONCATENATEX(VALUES(Products[Category]), Products[Category], ", ")
کاربرد: نمایش چند دسته یا برند در یک سلول، جمعبندی متنها.
17. FORMAT
: فرمتدهی به اعداد و تاریخ
شکل ظاهری خروجی را تغییر میدهد.
Formatted Sales = FORMAT([Total Sales], "#,##0 تومان")
Formatted Date = FORMAT(TODAY(), "yyyy/mm/dd")
کاربرد: نمای حرفهایتر به خروجی داشبورد، تطابق با زبان یا واحد پول کشور.
18. RANKX
: رتبهبندی دادهها
محاسبه رتبه یک مقدار در میان سایر مقادیر.
Sales Rank = RANKX(ALL(Sales[Product]), [Total Sales])
کاربرد: رتبه فروش، رتبه کاربر، رتبه محصول و…
19. FILTER
: ساختن جدول فیلترشده
برای اعمال فیلترهای پیچیدهتر از فیلترهای معمولی.
High Value Sales =
CALCULATE([Total Sales], FILTER(Sales, Sales[Amount] > 1000))
کاربرد: اعمال شرطهای ترکیبی، محاسبه براساس منطقهای پیچیده.
20. ALL
: حذف فیلتر از یک جدول یا ستون
برای بازگرداندن داده به حالت بدون فیلتر.
Ignore Region Filter =
CALCULATE([Total Sales], ALL(Sales[Region]))
کاربرد: ساخت KPI کلی، مقایسه سهم بازار، محاسبه درصد سهم.
21. DIVIDE
: تقسیم امن
جایگزین امن برای /
که از خطای تقسیم بر صفر جلوگیری میکند.
Profit Margin = DIVIDE([Profit], [Total Sales], 0)
کاربرد: حاشیه سود، نسبت بازگشت سرمایه و…
22. ISBLANK
: بررسی مقادیر خالی
برای شناسایی سلولهای بدون مقدار.
Has Value = IF(ISBLANK([Profit]), "ندارد", "دارد")
کاربرد: پاکسازی داده، ایجاد مقادیر جایگزین برای NULLها.
جمعبندی
تسلط بر این ۲۲ تابع کلیدی DAX، دروازهای است برای ورود به دنیای تحلیل حرفهای دادهها در Power BI. این توابع پایههای محاسبه، شرطگذاری، فیلتر، فرمتدهی و مدلسازی را فراهم میکنند.
برای آموزشهای تخصصیتر درباره هر تابع DAX و کاربردهای پیشرفته آن، سایر مقالات سایت www.sinamohamadyari.com را از دست ندهید.
دیدگاه شما