فروش لایسنس Power BI

با ما داده های خود را درک کنید تا برای آینده کسب و کارتان بهتر تصمیم گیری کنید.

اختصاص مقادیر به VAR از تابع SWITCH

اختصاص مقادیر به VAR از تابع SWITCH

اختصاص مقادیر به VAR از تابع SWITCH در Power BI

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

متغیرها (VAR) در DAX چیستند؟

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

DAX
VAR TotalSales = SUM(Sales[Amount])
RETURN TotalSales * 0.1

تابع SWITCH در DAX

تابع SWITCH برای ارزیابی چند شرط و بازگرداندن مقدار مناسب بر اساس تطابق استفاده می‌شود. این تابع جایگزین مناسبی برای IFهای تو در تو است و خوانایی کد را به‌طور چشم‌گیری افزایش می‌دهد.

DAX
SWITCH(
    TRUE(),
    condition1, result1,
    condition2, result2,
    ...
    result_if_no_match
)

چالش: تخصیص مقادیر به VAR از SWITCH

در بسیاری از موارد، کاربران Power BI می‌خواهند بر اساس یک شرط، مقدار متفاوتی را به یک متغیر اختصاص دهند. اما DAX اجازه نمی‌دهد که داخل SWITCH چند متغیر را به‌صورت مستقیم مقداردهی کنیم. بنابراین باید از ساختارهای مناسب استفاده کنیم تا این منطق را پیاده‌سازی کنیم.

مثال پایه: تخصیص مقدار به یک متغیر از SWITCH

فرض کنید می‌خواهید بر اساس انتخاب کاربر در یک slicer، یکی از ستون‌های جدول را به متغیر اختصاص دهید:

DAX
VAR SelectedColumn =
    SWITCH(
        [UserSelection],
        1, VALUES(Table[Column1]),
        2, VALUES(Table[Column2]),
        3, VALUES(Table[Column3])
    )
RETURN SelectedColumn

در این مثال، بسته به مقدار [UserSelection]، یکی از ستون‌ها به متغیر SelectedColumn اختصاص داده می‌شود.

نکته مهم: SWITCH فقط مقدار نهایی را بازمی‌گرداند

در DAX نمی‌توان داخل SWITCH چندین متغیر را مقداردهی کرد. به‌عبارت دیگر، نمی‌توان نوشت:

DAX
SWITCH(
    TRUE(),
    condition1, VAR x = 1 VAR y = 2,
    condition2, VAR x = 3 VAR y = 4
)

این ساختار معتبر نیست. راه‌حل این است که از SWITCH برای مقداردهی به یک متغیر استفاده کرده و سایر متغیرها را خارج از SWITCH تعریف کنیم.

راه‌حل پیشرفته: استفاده از SWITCH در ترکیب با چند VAR

DAX
VAR SelectedMeasure =
    SWITCH(
        [MeasureSelector],
        "Sales", SUM(Sales[Amount]),
        "Profit", SUM(Sales[Profit]),
        "Quantity", SUM(Sales[Quantity])
    )

VAR Threshold =
    SWITCH(
        [MeasureSelector],
        "Sales", 100000,
        "Profit", 20000,
        "Quantity", 500
    )

RETURN
IF(SelectedMeasure > Threshold, "High", "Low")

در این مثال، دو متغیر SelectedMeasure و Threshold بر اساس انتخاب کاربر مقداردهی می‌شوند و سپس با هم مقایسه می‌شوند.

استفاده در ستون محاسبه‌شده

DAX
ProductCategoryFlag =
VAR CategoryType =
    SWITCH(
        Products[Category],
        "Electronics", "Tech",
        "Furniture", "Home",
        "Clothing", "Fashion",
        "Other"
    )
RETURN CategoryType

این فرمول یک ستون جدید ایجاد می‌کند که دسته‌بندی محصول را به نوع کلی‌تر تبدیل می‌کند.

استفاده در معیارها (Measures)

DAX
DynamicMetric =
VAR Metric =
    SWITCH(
        SELECTEDVALUE(MetricSelector[Metric]),
        "Total Sales", SUM(Sales[Amount]),
        "Total Profit", SUM(Sales[Profit]),
        "Units Sold", SUM(Sales[Quantity])
    )
RETURN Metric

این معیار به‌صورت پویا مقدار مورد نظر را بر اساس انتخاب کاربر محاسبه می‌کند.

استفاده در معیارهای پویا (Dynamic Measures)

در مدل‌های تعاملی، معیارهای پویا نقش مهمی دارند. با استفاده از SWITCH و VAR می‌توان معیارهایی ساخت که بر اساس انتخاب کاربر تغییر کنند.

مثال:

DAX
DynamicMetric =
VAR SelectedMetric =
    SWITCH(
        SELECTEDVALUE(MetricSelector[Metric]),
        "Total Sales", SUM(Sales[Amount]),
        "Total Profit", SUM(Sales[Profit]),
        "Units Sold", SUM(Sales[Quantity]),
        BLANK()
    )
RETURN SelectedMetric

نکات مهم در استفاده از SWITCH و VAR

  • خوانایی کد: استفاده از VAR و SWITCH باعث ساده‌تر شدن فرمول‌ها می‌شود.
  • جلوگیری از محاسبات تکراری: با ذخیره‌سازی مقادیر در متغیرها، از محاسبه چندباره جلوگیری می‌شود.
  • افزایش عملکرد: مدل‌هایی که از VAR استفاده می‌کنند، سریع‌تر اجرا می‌شوند.
  • محدودیت‌ها: نمی‌توان چند VAR را داخل یک SWITCH مقداردهی کرد؛ باید برای هر متغیر SWITCH جداگانه نوشت.

خطاهای رایج

  • استفاده از SELECTEDVALUE بدون بررسی مقدار پیش‌فرض ممکن است باعث خطا شود.
  • عدم استفاده از BLANK در حالت عدم تطابق ممکن است نتیجه نامشخص ایجاد کند.
  • استفاده از SWITCH بدون TRUE() در شرایط پیچیده ممکن است منجر به ارزیابی نادرست شود.
نتیجه‌گیری

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

برای خرید لایسنس نرم افزار Power BI ، می‌توانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.

فرم درخواست لایسنس Power BI

میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا