معرفی توابع DAX در Power BI

نظم آران » معرفی توابع DAX در Power BI

تعداد بازدید : 38

در دنیای تحلیل داده، ابزار پاور بی ای به عنوان یکی از قدرتمندترین محصولات مایکروسافت، جایگاه ویژه ای در میان متخصصان هوش تجاری (Business Intelligence) پیدا کرده است. این ابزار با ترکیب قابلیت های گسترده ی مدل سازی داده، مصورسازی (Data Visualization) و تحلیل تعاملی، به سازمان ها کمک می کند تا از داده های خام خود، بینش های استراتژیک استخراج کنند. اما آنچه باعث می شود Power BI از یک ابزار ساده ی گزارش سازی به یک پلتفرم تحلیلی قدرتمند تبدیل شود، زبان محاسباتی منحصربه فرد آن یعنی DAX است.

DAX مخفف عبارت Data Analysis Expressions است و درواقع زبان فرمول نویسی Power BI به شمار می رود. اگر اکسل را می شناسید، احتمالاً با فرمول هایی مثل SUM، IF یا AVERAGE کار کرده اید؛ DAX هم بر پایه ی همین منطق طراحی شده اما با قابلیت های بسیار بیشتر. با استفاده از توابع DAX در Power BI می توانید محاسبات پویا (Dynamic Calculations) انجام دهید، فیلترهای سفارشی تعریف کنید، معیارهای کلیدی عملکرد (KPI) بسازید و مدل های تحلیلی پیشرفته طراحی کنید.

در این مقاله، به صورت جامع و مرحله به مرحله با مهم ترین توابع DAX در Power BI آشنا خواهید شد؛ از توابع پایه ای مثل SUM و COUNT گرفته تا توابع پیشرفته ای مانند CALCULATE، FILTER و DIVIDE که قلب محاسبات تحلیلی در Power BI هستند.

آشنایی با زبان توابع dax در power bi

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

DAX مخفف عبارت Data Analysis Expressions است و اساساً برای انجام محاسبات در محیط Power BI، Power Pivot و SSAS Tabular طراحی شده است. زبان DAX شباهت زیادی به فرمول های Excel دارد، اما قدرت و انعطاف بسیار بیشتری در تحلیل داده های چندبعدی (Tabular Models) دارد.

با کمک توابع DAX در Power BI می توان معیارهای پویا (Measures) و ستون های محاسبه شده (Calculated Columns) ایجاد کرد، فیلترهای خاص روی داده ها اعمال نمود، و محاسبات پیچیده ای مانند مقایسه سال به سال یا محاسبه نرخ رشد را انجام داد.

در واقع اگر بخواهیم Power BI را مغز تحلیل داده بنامیم، DAX بدون تردید قلب تپنده ی آن است. بدون درک درست DAX، هیچ داشبورد مدیریتی یا گزارش تحلیلی عمیقی ساخته نمی شود.

نقش توابع dax در power bi

نقش توابع DAX در Power BI

در Power BI، داده ها فقط زمانی ارزشمند می شوند که بتوانیم از آن ها نتیجه و بینش (Insight) استخراج کنیم. زبان DAX به شما کمک می کند تا از داده های خام، اطلاعات معناداری بسازید. توابع DAX در Power BI نقش ستون فقرات محاسبات را دارند.

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

  • محاسبه مجموع فروش سالانه با تابع SUM(Sales[Amount])
  • محاسبه میانگین سود با تابع AVERAGE(Sales[Profit])
  • محاسبه نرخ رشد فروش نسبت به سال گذشته با ترکیب CALCULATE و FILTER
  • یافتن تعداد مشتریان یکتا با COUNTROWS(VALUES(Customer[ID]))

در واقع، توابع DAX در Power BI به شما امکان می دهند از سطح نمایش داده عبور کرده و به عمق تحلیل برسید. با این توابع می توان مدل های مالی، تحلیلی و مدیریتی را در سطحی کاملاً حرفه ای توسعه داد.

معرفی توابع پرکاربرد DAX در Power BI

در این بخش، به بررسی دقیق و کاربردی ۱۱ تابع مهم DAX می پردازیم که تقریباً در همه پروژه های Power BI مورد استفاده قرار می گیرند. برای هر تابع، تعریف، کاربرد و مثال عملی ارائه شده است تا درک آن ساده تر شود.

تابع تعریف ساختار مثال توضیح مثال
SUM محاسبه مجموع مقادیر یک ستون عددی SUM(<ColumnName>) Total Sales = SUM(Sales[Amount]) مجموع کل ستون Amount در جدول Sales محاسبه و به صورت Measure استفاده می شود
AVERAGE بازگرداندن میانگین مقادیر یک ستون عددی AVERAGE(<ColumnName>) Average Profit = AVERAGE(Sales[Profit]) میانگین سود فروش در بازه زمانی یا دسته بندی های مختلف محاسبه می شود
COUNT شمارش تعداد سطرهایی که دارای مقدار عددی هستند COUNT(<ColumnName>) Total Invoices = COUNT(Sales[InvoiceID]) تعداد فاکتورهایی که مقدار عددی در ستون InvoiceID دارند محاسبه می شود
COUNTA شمارش تمام سطرهای غیرخالی (عدد یا متن) COUNTA(<ColumnName>) Customer Count = COUNTA(Customer[Name]) تعداد مشتریانی که نامشان ثبت شده است محاسبه می شود
COUNTROWS شمارش تعداد ردیف های یک جدول یا جدول فیلتر شده COUNTROWS(<Table>) Active Customers = COUNTROWS(FILTER(Customer, Customer[Status] = “Active”)) تعداد مشتریانی که وضعیتشان «فعال» است محاسبه می شود
IF انجام محاسبات شرطی IF(<LogicalTest>, <ValueIfTrue>, <ValueIfFalse>) Profit Status = IF(Sales[Profit] > 0, “سود”, “زیان”) اگر سود بیشتر از صفر باشد «سود» و در غیر این صورت «زیان» نمایش داده می شود
RELATED استخراج مقادیر از جدول مرتبط (Relationship) RELATED(<ColumnName>) Customer City = RELATED(Customer[City]) از جدول Sales به جدول Customer متصل شده و شهر مشتری بازگردانده می شود
CALCULATE تغییر یا اعمال فیلتر بر زمینه محاسباتی CALCULATE(<Expression>, <Filter1>, <Filter2>, …) Total Sales 2023 = CALCULATE(SUM(Sales[Amount]), Sales[Year] = 2023) مجموع فروش فقط برای سال ۲۰۲۳ محاسبه می شود
FILTER بازگرداندن جدول فیلترشده FILTER(<Table>, <Condition>) High Value Orders = CALCULATE(COUNTROWS(Sales), FILTER(Sales, Sales[Amount] > 100000)) تعداد سفارش هایی که مبلغ آن ها بیش از ۱۰۰ هزار تومان است محاسبه می شود
ALL حذف فیلترهای موجود روی جدول یا ستون ALL(<TableOrColumn>) Sales Share = DIVIDE(SUM(Sales[Amount]), CALCULATE(SUM(Sales[Amount]), ALL(Sales))) سهم هر دسته فروش نسبت به مجموع کل محاسبه می شود
DIVIDE انجام تقسیم ایمن و جلوگیری از خطای تقسیم بر صفر DIVIDE(<Numerator>, <Denominator>, <AlternativeResult>) Profit Margin = DIVIDE(SUM(Sales[Profit]), SUM(Sales[Amount]), 0) اگر مخرج صفر باشد، عدد ۰ نمایش داده می شود
  • تابع SUM

تابع SUM یکی از ساده ترین و در عین حال پرکاربردترین توابع DAX در Power BI است. این تابع برای محاسبه مجموع مقادیر یک ستون عددی به کار می رود.

ساختار:

SUM(<ColumnName>)

مثال:

Total Sales = SUM(Sales[Amount])

در این مثال، مجموع کل ستون Amount در جدول Sales محاسبه و به صورت Measure قابل استفاده است.

  • تابع AVERAGE

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

ساختار:

AVERAGE(<ColumnName>)

مثال:

Average Profit = AVERAGE(Sales[Profit])

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

توابع DAX در Power BI

  • تابع COUNT

تابع COUNT تعداد سطرهایی را که در آن مقدار عددی وجود دارد، برمی گرداند.

ساختار:

COUNT(<ColumnName>)

مثال:

Total Invoices = COUNT(Sales[InvoiceID])

تعداد فاکتورهایی را که دارای مقدار عددی در ستون InvoiceID هستند، محاسبه می کند.

  • تابع COUNTA

تابع COUNTA مشابه COUNT است، با این تفاوت که تمام سطرهای غیرخالی را (حتی اگر مقدارشان متنی باشد) می شمارد.

ساختار:

COUNTA(<ColumnName>)

مثال:

Customer Count = COUNTA(Customer[Name])

تعداد مشتریانی را که نامشان ثبت شده است محاسبه می کند.

  • تابع COUNTROWS

تابع COUNTROWS برای شمارش تعداد ردیف های یک جدول یا جدول فیلتر شده استفاده می شود. این تابع در محاسبات تحلیلی بسیار پرکاربرد است.

ساختار:

COUNTROWS(<Table>)

مثال:

Active Customers = COUNTROWS(FILTER(Customer, Customer[Status] = “Active”))

تعداد مشتریانی را که وضعیتشان «فعال» است برمی گرداند.

  • تابع IF

تابع IF برای انجام محاسبات شرطی به کار می رود. ساختار آن شبیه به تابع IF در Excel است.

ساختار:

IF(<LogicalTest>, <ValueIfTrue>, <ValueIfFalse>)

مثال:

Profit Status = IF(Sales[Profit] > 0, “سود”, “زیان”)

در این مثال، اگر مقدار سود بیشتر از صفر باشد، برچسب «سود» نمایش داده می شود و در غیر این صورت «زیان».

  • تابع RELATED

تابع RELATED برای استخراج مقادیر از جدول مرتبط (Related Table) استفاده می شود. به شرط آنکه بین دو جدول رابطه ای (Relationship) تعریف شده باشد.

ساختار:

RELATED(<ColumnName>)

مثال:

Customer City = RELATED(Customer[City])

در این مثال، از جدول Sales به جدول Customer متصل شده و شهر مشتری را برمی گرداند.

  • تابع CALCULATE

تابع CALCULATE قلب محاسبات در DAX است. این تابع امکان تغییر یا اعمال فیلتر بر زمینه ی محاسباتی (Filter Context) را فراهم می کند.

ساختار:

CALCULATE(<Expression>, <Filter1>, <Filter2>, …)

مثال:

Total Sales 2023 = CALCULATE(SUM(Sales[Amount]), Sales[Year] = 2023)

در این مثال، مجموع فروش فقط برای سال ۲۰۲۳ محاسبه می شود.

نکته: قدرت واقعی DAX در ترکیب CALCULATE با سایر توابعی مانند FILTER و ALL آشکار می شود.

  • تابع FILTER

تابع FILTER یک جدول فیلترشده بازمی گرداند که می توان از آن در محاسبات دیگر مانند CALCULATE یا COUNTROWS استفاده کرد.

ساختار:

FILTER(<Table>, <Condition>)

مثال:

High Value Orders = CALCULATE(COUNTROWS(Sales), FILTER(Sales, Sales[Amount] > 100000))

در این مثال، تعداد سفارش هایی محاسبه می شود که مبلغ آن ها بیش از ۱۰۰ هزار تومان است.

  • تابع ALL

تابع ALL برای حذف فیلترهای موجود روی یک جدول یا ستون استفاده می شود. معمولاً در محاسبه درصد سهم یا مجموع کل کاربرد دارد.

ساختار:

ALL(<TableOrColumn>)

مثال:

Sales Share = DIVIDE(SUM(Sales[Amount]), CALCULATE(SUM(Sales[Amount]), ALL(Sales)))

در این مثال، سهم هر دسته از فروش نسبت به مجموع کل محاسبه می شود.

  • تابع DIVIDE

تابع DIVIDE برای انجام تقسیم ایمن (Safe Division) استفاده می شود و از بروز خطای تقسیم بر صفر جلوگیری می کند.

ساختار:

DIVIDE(<Numerator>, <Denominator>, <AlternativeResult>)

مثال:

Profit Margin = DIVIDE(SUM(Sales[Profit]), SUM(Sales[Amount]), 0)

اگر مقدار مخرج صفر باشد، به جای خطا، عدد ۰ نمایش داده می شود.

نکات حرفه ای در استفاده از توابع dax در power bi

برای استفاده مؤثر از توابع DAX در Power BI باید چند نکته حرفه ای را رعایت کنید:

  • درک Context بسیار مهم است: DAX بر پایه دو مفهوم Context کار می کند:  Row Context و Filter Context. فهم درست این مفاهیم تفاوت بین یک تحلیل صحیح و اشتباه را رقم می زند.
  • از CALCULATE برای فیلترگذاری پویا استفاده کنید: به جای ساخت Measureهای متعدد، از فیلترهای درون CALCULATE استفاده کنید تا عملکرد داشبورد بهینه بماند.
  • از DIVIDE به جای تقسیم مستقیم استفاده کنید: برای جلوگیری از خطا در تقسیم بر صفر.
  • از ALL برای ساخت درصد سهم استفاده کنید: در محاسبه سهم هر بخش نسبت به کل داده ها بسیار کاربرد دارد.
  • ترکیب توابع: قدرت واقعی DAX در ترکیب توابع مثل CALCULATE، FILTER، ALL و SUM نهفته است.

کاربرد عملی توابع DAX در پروژه های واقعی Power BI

کاربرد توابع DAX در Power BI در پروژه های واقعی

در پروژه های واقعی، توابع DAX در Power BI برای ساخت شاخص های کلیدی عملکرد (KPI) و تحلیل های مدیریتی استفاده می شوند. در ادامه چند نمونه عملی آورده شده است:

  • تحلیل فروش:
    • مجموع فروش ماهانه: SUM(Sales[Amount])
    • درصد رشد ماهانه:
  • Sales Growth = DIVIDE(SUM(Sales[Amount]) – CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, MONTH)), CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, MONTH)))
  • تحلیل منابع انسانی:
    • تعداد کارمندان فعال: COUNTROWS(FILTER(Employee, Employee[Status] = “Active”))
    • میانگین سابقه کاری: AVERAGE(Employee[Experience])
  • تحلیل مالی:
    • حاشیه سود: DIVIDE(SUM(Finance[Profit]), SUM(Finance[Revenue]))
    • سهم هر بخش از کل درآمد: ترکیب CALCULATE و ALL برای حذف فیلتر بخش ها.

در تمام این مثال ها، DAX به شما قدرت می دهد تا گزارش هایی پویا و دقیق بسازید که به صورت خودکار با تغییر داده ها به روزرسانی می شوند.

سخن پایانی

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

توابعی مانند SUM، AVERAGE و COUNT پایه ی محاسبات اند، اما توابع پیشرفته تر مثل CALCULATE، FILTER و ALL به شما قدرت کنترل کامل بر داده ها را می دهند.
با تمرین، آزمون و ترکیب توابع مختلف، به مرور به درک واقعی از قدرت DAX خواهید رسید.

سوالات متداول در مورد توابع dax در power bi

۱. تفاوت Measure و Calculated Column در DAX چیست؟
Measure در زمان نمایش محاسبه می شود و حافظه کمی مصرف می کند، اما Calculated Column در مدل داده ذخیره می شود و برای محاسبات سطری مناسب است.

۲. آیا DAX فقط در Power BI استفاده می شود؟
خیر، DAX در Power Pivot و SQL Server Analysis Services (Tabular) نیز استفاده می شود.

۳. بهترین روش یادگیری توابع DAX چیست؟
شروع با توابع پایه SUM، AVERAGE، COUNT و سپس تمرین ترکیب توابع پیشرفته مثل CALCULATE و FILTER در پروژه های واقعی بهترین روش یادگیری است.

نظرات خوانندگان

دیدگاهتان را بنویسید

3 × چهار =