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

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

تابع TREATAS در DAX

تابع TREATAS در DAX

تابع TREATAS در Power BI

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

تعریف تابع TREATAS

DAX
TREATAS(<table>, <column1>[, <column2>]…)
  • table: جدولی که شامل مقادیر فیلتر است.
  • column1, column2, …: ستون‌هایی که می‌خواهید فیلتر روی آن‌ها اعمال شود.

عملکرد چگونه است؟

تابع TREATAS مقادیر موجود در جدول اول را به‌عنوان فیلتر روی ستون‌های مشخص‌شده در جدول دوم اعمال می‌کند. این کار شبیه به ایجاد یک رابطه مجازی بین دو جدول است، بدون اینکه واقعاً در مدل داده‌ای رابطه‌ای تعریف شود.

✅ مثال ساده

فرض کنید دو جدول دارید:

  • جدول Sales با ستون ProductID
  • جدول TopProducts با ستون ProductID که فقط شامل محصولات پرفروش است

اکنون می‌خواهید مجموع فروش فقط برای محصولات موجود در TopProducts را محاسبه کنید:

DAX
TopProductSales =
CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(TopProducts, Sales[ProductID])
)

در این مثال، مقادیر ProductID از جدول TopProducts به‌عنوان فیلتر روی Sales[ProductID] اعمال می‌شود.

کاربردهای رایج

  • اعمال فیلتر از جدول بدون رابطه به جدول دیگر
  • ساخت KPIهای سفارشی بر اساس لیست‌های خارجی یا فیلترهای پویا
  • استفاده در سناریوهایی که روابط فیزیکی بین جداول امکان‌پذیر نیست
  • ترکیب با توابعی مانند SUMX, CALCULATE, FILTER

مثال پیشرفته: فیلتر کردن فروش بر اساس انتخاب کاربر در جدول جداگانه

فرض کنید کاربر در جدول SelectionTable یک سال خاص را انتخاب کرده است و شما می‌خواهید فروش آن سال را محاسبه کنید:

DAX
SalesBySelectedYear =
CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(VALUES(SelectionTable[Year]), Sales[Year])
)

در این مثال، مقدار انتخاب‌شده در جدول SelectionTable به‌عنوان فیلتر روی ستون Sales[Year] اعمال می‌شود.

نکات مهم

  • تعداد ستون‌های جدول اول و دوم باید با هم برابر باشد.
  • نوع داده ستون‌ها باید با هم سازگار باشد.
  • اگر مقادیر جدول اول با ستون مقصد مطابقت نداشته باشند، فیلتر اعمال نمی‌شود.
  • این تابع فقط در توابعی مانند CALCULATE, CALCULATETABLE, SUMX قابل استفاده است.

تفاوت TREATAS با USERELATIONSHIP و CROSSFILTER

تابع عملکرد
TREATAS اعمال فیلتر از یک جدول به جدول دیگر بدون رابطه
USERELATIONSHIP فعال‌سازی موقت یک رابطه غیرفعال
CROSSFILTER تغییر جهت یا غیرفعال‌سازی رابطه موجود

ملاحظات

  • تعداد ستون‌های مشخص شده باید با تعداد ستون‌های عبارت جدول مطابقت داشته باشد و به یک ترتیب باشند.
  • اگر مقداری که در عبارت جدول برگردانده می‌شود در ستون وجود نداشته باشد، نادیده گرفته می‌شود. برای مثال، TREATAS({“Red”, “Green”, “Yellow”}, DimProduct[Color]) یک فیلتر روی ستون DimProduct[Color] با سه مقدار “Red”, “Green” و “Yellow” تنظیم می‌کند. اگر “Yellow” در DimProduct[Color] وجود نداشته باشد، مقادیر فیلتر مؤثر “Red” و “Green” خواهند بود.
  • بهترین زمان استفاده زمانی است که رابطه‌ای بین جداول وجود ندارد. اگر چندین رابطه بین جداول مربوطه دارید، به جای آن از USERELATIONSHIP استفاده کنید.
  • این تابع برای استفاده در حالت DirectQuery هنگام استفاده در ستون‌های محاسبه شده یا قوانین امنیتی سطح ردیف (RLS) پشتیبانی نمی‌شود.

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

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

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

 

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

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

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