• مسابقه Power BI
    • اولین مسابقه Power BI
    • دومین مسابقه Power BI
  • جدیدترین مطالب آموزشی
  • تحلیل داده نرم افزاری (فنّی)
  • تحلیل داده غیرفنّی
  • دوره‌های آفلاین
  • سبد خرید
  • تماس با ما
  • حساب کاربری

سبد خرید شما خالی است.

گروه تحلیلگری
  • مسابقات Power BI
    • اولین مسابقه Power BI ایران
    • دومین مسابقه Power BI ایران
  • مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • Power Query
    • DAX
  • مسیرهای یادگیری
    • مسیر یادگیری تحلیل داده (فنی)
    • مسیر یادگیری غیرفنّی تحلیلگر داده
  • دوره‌های آموزشی
    • مهارت‌های غیرفنّی تحلیلگر داده
    • اکسل
    • Power BI
    • Power Query
    • SQL
    • تحلیل داده با پایتون
    • سبد خرید
  • ارتباط با ما
    • تماس
    • اینستاگرام
0
حساب کاربری

مقالات

تابع IF و SWITCH در زبان DAX

در این مطلب به برسی دو تابع IF و SWITCH در زبان DAX می پردازیم که از توابع بسیار مهم و جذاب در زبان DAX به شمار می روند.

توابع منطقی

بررسی شرط های منطقی توسط Logical Function یا همان توابع منطقی در زبان DAX امکان پذیر است. توابع زیر ما را در این امر یاری می کنند.

IF, IFERROR, AND, OR, SWITCH, FALSE, TRUE

این توابع هنگامی که می خواهیم محاسبات مختلفی با توجه به شرایط مختلف صورت پذیرد، به کمک ما می آیند. در این مطلب به بررسی و مقایسه IF و SWITCH می پردازیم.

IF

همان طور که می دانید IF یک تابع منطقی (Logical Function) است که در اکثر زبان های برنامه نویسی وجود دارد و برای گذاشتن شرط در کد های DAX به کمک کاربر می آید.

فرض کنید می خواهیم ستونی در جدول کالا ایجاد کنیم که اگر کالایی پایین تر از 1000 دلار قیمت دارد، ارزان و اگر بالاتر قیمت دارد گران درج شود.

برای این منظور کد زیر را نوشته و ستون مورد نظر را ایجاد می کنیم.

PriceType =
IF ( ‘Product'[Unit Price] > 1000, “Expensive”, “Cheap” )

بعد از ایجاد کد با خروجی زیر مواجه خواهیم شد.

تابع IF و SWITCH در زبان DAX

IF های تو در تو

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

به این منظور کد زیر را نوشته و اجرا می کنیم.

ColorType =
IF (
    ‘Product'[Color] = “White”
        || ‘Product'[Color] = “Black”,
    “بسیار پرطرفدار”,
    IF (
        ‘Product'[Color] = “Blue”
            || ‘Product'[Color] = “Red”,
        “پرطرفدار”,
        IF (
            ‘Product'[Color] = “Silver”
                || ‘Product'[Color] = “Gold”,
            “محبوب”,
            “کم طرفدار”
        )
    )
)

لازم به ذکر است که عملگر || در زبان DAX به معنی یا (OR) می باشد. در نهایت نتیجه به صورت زیر نمایش داده خواهد شد.

تابع IF و SWITCH در زبان DAX

اگر نیاز به توضیح بیشتری در مورد کد هستید تصویر زیر را مشاهده کنید.

تابع IF و SWITCH در زبان DAX

SWITCH

تابع SWITCH نیز از دسته توابع منطقی است که عملکردی مشابه IF دارد اما گاهی اوقات نوشتن کد ها را آسان تر می کند. در نوشتن SWITCH نیازی به تکرار کردن نام فیلد (color) نیست.

همان مثال قبل را با تابع SWITCH بنویسیم.

=
SWITCH (
    ‘Product'[Color],
    “Black”, “بسیار پرطرفدار”,
    “White”, “بسیار پرطرفدار”,
    “Blue”, “پرطرفدار”,
    “Red”, “پرطرفدار”,
    “Gold”, “محبوب”,
    “Silver”, “محبوب”,
    “کم طرفدار”
)

همان طور که مشاهده می کنید تابع SWITCH هم مانند IF یک آرگومان در غیر این صورت (ELSE) دارد که در آن قسمت کم طرفدار درج شده است، بدین معنا که اگر هیچ کدام از شرط ها برقرار نشد قسمت در غیر این صورت فعال می شود.

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

توجه نمایید که از SWITCH زمانی استفاده می شود که تعداد مقادیر محدودی در ستون مورد نظر وجود دارد. به طور مثال می خواهیم در کنار شماره ماه، نام آن را درج کنیم که در نهایت 12 مقدار برای آن وجود دارند. پس زمانی که ستون ما دارای مقادیر بسیار زیاد باشد استفاده از SWITCH خیلی منطقی به نظر نمی رسد.

SWITCH TRUE

حال فرض کنید می خواهیم ستونی در جدول کالا ایجاد کنیم که در صورتی که قیمت کالایی زیر 500 دلار بود عبارت خیلی ارزان، در صورتی که بین 500 تا 1500 دلار بود عبارت ارزان، بین 1500 تا 2500 گران و بالای 2500 خیلی گران درج شود.

PriceType =
IF (
    ‘Product'[Unit Price] <= 500,
    “Very Cheap”,
    IF (
        ‘Product'[Unit Price] <= 1500,
        “Cheap”,
        IF ( ‘Product'[Unit Price] <= 2500, “Expensive”, “Very Expensive” )
    )
)

حال سعی کنید همین کد را با SWITCH بنویسید. همان طور که متوجه شدید نوشتن با SWITCH ممکن به نظر نمیرسد و باید از SWITCH TRUE استفاده نمایید.

=
SWITCH (
    TRUE (),
    ‘Product'[Unit Price] <= 500, “Very Cheap”,
    ‘Product'[Unit Price] <= 1500, “Cheap”,
    ‘Product'[Unit Price] <= 2500, “Expensive”,
    “Very Expensive”
)

در نهایت با هر دو روش فوق الذکر نتیجه به صورت زیر خواهد بود.

تابع IF و SWITCH در زبان DAX

مقایسه توابع IF و SWITCH

در مقایسه تابع IF و SWITCH در زبان DAX باید گفت، استفاده از SWITCH، خوانایی کد را بسیار بالا می برد. استفاده از IF های تو در تو خواندن کد و عیب یابی آن را سخت می کند. البته SWITCH هیچ برتری از حیث عملکرد بر IF ندارد. هنگامی که از SWITCH استفاده می کنید در پشت پرده شروط شما به IF های تو در تو تبدیل می شود. می توان گفت SWITCH، ساده شده IF های تو در تو است.

ضمنا همان طور که گفته شد از SWITCH معمولا برای ستون هایی استفاده می شود که مقادیر یکتای زیادی نداشته باشند و گسسته باشند، مانند رنگ، ماه، سطح تحصیلی و ….

یک استفاده بسیار مهم تابع SWITCH در داینامیک کردن مژر است.

درباره حسین وثوقی

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

نوشته های بیشتر از حسین وثوقی
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • کاربرد پارامتر در پاوربی آی
    کاربرد پارامتر و تحلیل حساسیت در پاور بی آی

    3.71k بازدید

  • استفاده از متغیر و تابع EARLIER در زبان DAX

    2.49k بازدید

  • پانزده تابع DAX که باید حتما یاد بگیرید

    3.55k بازدید

  • رنگ بندی شرطی با زبان DAX
    رنگ بندی شرطی با زبان DAX

    1.55k بازدید

  • مفهوم Context و انواع آن در زبان DAX
    مفهوم Context و انواع آن در زبان DAX

    1.84k بازدید

  • آموزش DAX در Power Bi قسمت سوم

    1.86k بازدید

عضویت
به دوستتان خبر دهید.
guest
تعداد ماههای سال به عدد
guest
1 دیدگاه
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
مسعود
مسعود

حسین آقا واقعا کارتون درسته خیلی بدردم خورد سپاسگزارم

3
پاسخ
جستجو
جستجو برای:
دسته بندی مطالب
  • Charts
  • DAX
  • Excel
  • Power BI
  • Power Query
  • تحلیل داده
  • هوش تجاری
پکیج های آموزشی
  • Data Analysis
  • Excel
  • Power BI
  • Power Query
  • Python
  • SQL
درباره گروه تحلیلگری

معتقدیم آموزش شروع یک تعهد بلند مدت است. این را از مشتریان ما سوال کنید.

اطلاعات تماس
  • تهران، خیابان مطهری، ابتدای خیابان سنایی، کوچه بیست و یکم
  • 42 12 600 - 0919 فقط تلگرام و واتساپ
  • info@tahlilgary.com
پیوندها
  • آموزش رایگان و اصولی اکسل
  • دوره رایگان آموزش Power BI | پاور بی آی
  • آموزش دستورات پایه SQL
  • آمار و تحلیل داده با پایتون
  • دومین مسابقه‌ Power BI ایران
دسته بندی محصولات
Data Analysis Excel Power BI Power Query Python SQL
wpDiscuz

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت