زبان DAX (Data Analysis Expressions) یکی از ابزارهای کلیدی برای تجزیه و تحلیل داده‌ها در Power BI، Excel و SQL Server Analysis Services است. این زبان به تحلیلگران داده اجازه می‌دهد تا محاسبات پیچیده را انجام دهند و گزارشات دقیق و کارآمدی ایجاد کنند. در بین مفاهیم اساسی موجود در DAX، متغیرها (Variables) یکی از ابزارهای مهم محسوب می‌شوند که به شما این امکان را می‌دهند تا کد را سازماندهی و مدیریت کنید، به‌علاوه قدرت خوانایی و عملکرد عبارات را افزایش می‌دهند. در این مقاله به بررسی مفهوم متغیرها و چگونگی استفاده از آنها با استفاده از کلیدواژه VAR در عبارات DAX خواهیم پرداخت.

مفهوم متغیرها در DAX

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

چرا از متغیرها استفاده کنیم؟

  • کاهش تکرار کد: با تعریف یک متغیر برای یک محاسبه خاص، می‌توانید از تکرار آن جلوگیری کنید و به‌جای محاسبه مجدد، از متغیر در چندین محل استفاده کنید.
  • به‌بود خوانایی کد: استفاده از نام‌های توصیفی برای متغیرها، کد شما را قابل فهم‌تر می‌کند و به دیگران (یا به خودتان در آینده) کمک می‌کند تا سریع‌تر کد را درک کنند.
  • افزایش کارایی: متغیرها می‌توانند به بهبود کارایی کمک کنند، به‌خصوص وقتی محاسبات پیچیده‌ای در حال انجام باشد.

1.نحوه استفاده از VAR

برای تعریف یک متغیر در DAX، از کلیدواژه VAR استفاده می‌شود. ساختار عمومی استفاده از متغیرها در DAX به شرح زیر است:

<variableName> = <expression>
VAR در عبارات DAX
VAR در عبارات DAX

پس از تعریف متغیر، می‌توانید از آن در ادامه عبارت DAX استفاده کنید. ساختار کلی عبارت DAX با متغیرها به شکل زیر است:

Result =
VAR <variableName1> = <expression1>
VAR <variableName2> = <expression2>
RETURN <SomeCalculationUsingVariable>
VAR در عبارات DAX
VAR در عبارات DAX

مثال ساده از متغیرها

در اینجا یک مثال ساده آورده شده است که در آن از متغیرها در یک عبارت DAX استفاده می‌شود:

TotalSales =
VAR TotalRevenue = SUM(Sales[Revenue])
VAR TotalCost = SUM(Sales[Cost])
RETURN TotalRevenue - TotalCost
VAR در عبارات DAX
VAR در عبارات DAX

در این مثال:

  • TotalRevenue: متغیری است که مجموع درآمد کل را محاسبه می‌کند.
  • TotalCost: متغیری است که مجموع هزینه‌ها را محاسبه می‌کند.
  • در نهایت، با استفاده از این دو متغیر، مقدار سود (Total Profit) محاسبه می‌شود.

2.موارد استفاده متغیرها در DAX

در DAX، متغیرها در موارد مختلفی به کار می‌آیند. در زیر برخی از کاربردهای رایج آن‌ها آورده شده است:

ادغام محاسبات پیچیده

در محاسبات پیچیده، استفاده از متغیرها می‌تواند خوانایی کد را بهبود بخشد. فرض کنید می‌خواهید درصد رشد سالانه فروش را محاسبه کنید:

YearlyGrowth =
VAR LastYearSales = CALCULATE(SUM(Sales[Revenue]), DATEADD(Sales[Date], -1, YEAR))
VAR CurrentYearSales = SUM(Sales[Revenue])
RETURN DIVIDE(CurrentYearSales - LastYearSales, LastYearSales, 0)

در این مثال، LastYearSales و CurrentYearSales به صورت واضحdefine شده‌اند، که موجب کاهش پیچیدگی محاسبه می‌شود.

کنترل محاسبات موقتی

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

مثال از کنترل محاسبات موقتی

فرض کنید می‌خواهید میانگین فروش محصولات را برای یک دوره خاص محاسبه کنید. با استفاده از متغیرها می‌توانید محاسبه را به سادگی و وضوح بیشتری انجام دهید:

AverageSales =
VAR TotalSales = SUM(Sales[SalesAmount])
VAR SalesCount = COUNT(Sales[SalesID])
RETURN DIVIDE(TotalSales, SalesCount, 0)

در این عبارت:

  • TotalSales: مجموع فروش محصولات را محاسبه می‌کند.
  • SalesCount: تعداد کل فروش‌ها را به‌دست می‌آورد.
  • در نهایت، میانگین فروش با تقسیم مجموع فروش بر تعداد فروش‌ها محاسبه می‌شود.

استفاده از متغیرها به شما اجازه می‌دهد تا محاسبات پیچیده را دقیق و کارآمد انجام دهید و تحلیلی شفاف و قابل‌فهم ایجاد کنید.

بهبود عملکرد

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

مثال از بهبود عملکرد

در اینجا مثالی از محاسبه روایی (running total) با استفاده از متغیرها ارائه می‌شود:

RunningTotal =
VAR CurrentDate = MAX(Sales[Date])
RETURN
CALCULATE(SUM(Sales[SalesAmount]), FILTER(Sales, Sales[Date] <= CurrentDate))

این کد ابتدا CurrentDate را به آخرین تاریخ در جدول فروش نسبت می‌دهد و سپس مجموع فروش‌ها را تا این تاریخ محاسبه می‌کند. با استفاده از متغیر CurrentDate، محاسبات پیچیده و چندباره حذف می‌شود.

3.نکات و بهترين شیوه‌ها

در استفاده از متغیرها در DAX، رعایت چند نکته می‌تواند به بهبود کیفیت کد و عملکرد کمک کند:

نام‌گذاری متغیرها

استفاده از نام‌های توصیفی برای متغیرها نه‌تنها به خوانایی کمک می‌کند، بلکه می‌تواند به واضح‌تر شدن محاسبات و اهداف آن‌ها کمک نماید. از نام‌هایی استفاده کنید که درک کارکرد متغیر را برای دیگران و همچنین خود شما در آینده آسان کند.

استفاده از متغیرها برای به حداکثر رساندن کارایی

در تجزیه و تحلیل‌های پیچیده، از متغیرها به‌منظور کاهش تکرار محاسبات مشابه استفاده کنید. این کار می‌تواند اجرای عبارات DAX را سریع‌تر کند و مصرف منابع را کاهش دهد.

محدود کردن دامنه متغیرها

متغیرها تنها در دامنه‌ای که تعریف شده‌اند معتبر هستند. پس باید دقت کنید که از آن‌ها در بند RETURN استفاده کنید. در غیر این صورت، می‌توانید با خطاهای محاسباتی یا نامشخصی روبرو شوید، بنابراین اطمینان حاصل کنید که از متغیرها در همان بلوک عبارات استفاده می‌کنید که در آن تعریف شده‌اند.

جمع‌بندی

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

تمرین و آزمایش

مفهوم متغیرها ممکن است در ابتدا برای کسانی که با DAX آشنا نیستند کمی پیچیده به نظر برسد؛ بنابراین، بهترین راه برای یادگیری، تمرین مکرر و آزمایش با داده‌های مختلف است. تحلیلگران می‌توانند با تجزیه‌وتحلیل و محاسبات ساده شروع کنند و به تدریج به بررسی مثال‌های پیچیده‌تر بپردازند.

ایجاد محاسبات با عملکرد بالا

شما می‌توانید از متغیرها نه‌تنها برای کاهش تکرار کد، بلکه برای ایجاد محاسبات با عملکرد بالا نیز استفاده کنید. به‌عنوان مثال، در یک محاسبه پیچیده مربوط به بودجه و هزینه‌ها، می‌توانید از متغیرها برای محاسبه هزینه‌های عملکردی استفاده کنید و سپس آن‌ها را برای محاسبه نهایی مجموع هزینه‌ها به کار ببرید.

TotalBudgetVariance =
VAR TotalBudget = SUM(Budget[BudgetAmount])
VAR TotalExpenses = SUM(Expenses[ExpenseAmount])
RETURN TotalBudget - TotalExpenses

در این مثال، TotalBudget و TotalExpenses به ترتیب شامل مجموع بودجه و مجموع هزینه‌ها هستند. این کد ساختاری منظم برای محاسبه انحراف از بودجه فراهم می‌آورد که در تحلیل‌های مالی بسیار کارآمد است.

4.کدهای پیشرفته و ترکیب با توابع دیگر

ترکیب با توابع شرطی

متغیرها می‌توانند در ترکیب با توابع شرطی مانند IF و SWITCH استفاده شوند تا نتایج را به‌صورت دلخواه و دینامیک تغییر دهند:

SalesStatus =
VAR SalesTarget = 100000
VAR TotalSales = SUM(Sales[SalesAmount])
RETURN
IF(TotalSales >= SalesTarget, "Goal Met", "Goal Not Met")

در این کد:

  • SalesTarget: هدف فروش تعیین شده است.
  • TotalSales: مجموع فروش‌ها محاسبه می‌شود.
  • با استفاده از IF، بررسی می‌شود که آیا فروش به هدف رسیده است یا خیر و نتیجه به‌صورت “Goal Met” یا “Goal Not Met” برمی‌گردد.

استفاده در محاسبات شرطی

شما می‌توانید از متغیرها در محاسبات شرطی نیز استفاده کنید. به عنوان مثال:

ConditionalProfit =
VAR ProfitMargin = DIVIDE(SUM(Sales[SalesAmount]) - SUM(Expenses[ExpenseAmount]), SUM(Sales[SalesAmount]), 0)
RETURN
IF(ProfitMargin > 0.2, "High", "Low")

این کد ضمن محاسبه حاشیه سود، بررسی می‌کند که آیا حاشیه سود بالای 0.2 است که در این صورت “High” و در غیر این صورت “Low” را باز می‌گرداند.

نتیجه‌گیری نهایی

متغیرها در DAX با بهره‌مندی از کلیدواژه VAR یکی از ابزارهای قدرتمند برای کدنویسی بهینه و کارآمد هستند. آن‌ها به شما این امکان را می‌دهند که محاسبات را به صورت مرتب و سازمان‌یافته انجام دهید و از تکرار غیرضروری کد جلوگیری کنید. استفاده از متغیرها می‌تواند به وضوح و خوانایی عبارات DAX کمک کند و به شما اجازه دهد تا تجزیه و تحلیل‌های پیچیده‌تری را به راحتی پیاده‌سازی کنید.

در دنیای تحلیل داده، جایی که کارایی و دقت حرف اول را می‌زند، یادگیری و موثر کردن استفاده از متغیرها می‌تواند به شما کمک کند تا تحلیل‌های بهتری انجام دهید و در تصمیم‌گیری‌های استراتژیک از داده‌ها، موفق‌تر عمل کنید. در این بخش، به جمع‌بندی و تأکید بر اهمیت متغیرها در DAX می‌پردازیم و همچنین به برخی کدهای پیشرفته دیگر اشاره خواهیم کرد.

بدون دیدگاه

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