زبان DAX (Data Analysis Expressions) یکی از قدرتمندترین ابزارها برای تجزیه و تحلیل دادهها در Power BI، Excel و SQL Server Analysis Services محسوب میشود. این زبان شامل مجموعهای از توابع و توابع تحلیلی است که به تحلیلگران داده اجازه میدهد عملیات پیچیدهای را بر روی مجموعه دادهها انجام دهند. یکی از مهمترین توابع DAX که در کار با دادههای چندجدولی نقش کلیدی دارد، توابع RELATED و RELATEDTABLE هستند. این دو تابع به تحلیلگران کمک میکنند تا ارتباطات بین جداول مختلف را مدیریت و دادهها را بهطور مؤثر تجزیهوتحلیل کنند. در این مقاله، به بررسی و تحلیل نحوه استفاده از توابع RELATED و RELATEDTABLE خواهیم پرداخت.
درک ارتباطات بین جداول
قبل از ورود به جزئیات استخدام توابع RELATED و RELATEDTABLE، باید مفهوم ارتباطات بین جداول را در DAX درک کنیم. هنگامی که شما در یک مدل داده با چندین جدول کار میکنید، معمولاً بین آنها روابطی وجود دارد. بهعنوانمثال، یک جدول ممکن است حاوی اطلاعات مشتریان باشد و جدول دیگر شامل جزئیات سفارشات. با روشن کردن این روابط، شما میتوانید دادهها را بهصورت مؤثرتر تجزیهوتحلیل کنید و بینشهای بهتری بهدستآورید.
یک رابطه بین دو جدول میتواند به دو صورت باشد:
- یک به چند (One-to-Many): در این نوع رابطه، یک رکورد در جدول اصلی میتواند به چندین رکورد در جدول مرتبط متصل باشد. برای مثال، یک مشتری میتواند چندین سفارش داشته باشد.
- چند به چند (Many-to-Many): در این نوع رابطه، چندین رکورد در یک جدول میتوانند به چندین رکورد در جدول دیگر مرتبط باشند. این نوع رابطه کمی پیچیدهتر است و نیازمند استفاده از جداول میانی است.
در این رابطه، توابع RELATED و RELATEDTABLE به شما کمک میکنند تا از اطلاعات جداول دیگر استفاده کنید.
تابع RELATED
1. تعریف تابع RELATED
تابع RELATED به شما این امکان را میدهد که یک فیلد را از یک جدول مرتبط (مادر) در یک جدول فعلی (فرزند) فراخوانی کنید. این تابع زمانی کاربرد دارد که بخواهید یک مقدار خاص از جدول مادر (که در آن رابطه یک به چند برقرار است) را به رکوردهای موجود در جدول فرزند (با چند رکورد مرتبط) اضافه کنید.
2. سینتکس تابع RELATED
<columnName>: نام ستونی که از جدول مادر میخواهید به جدول فعلی اضافه کنید.
3. مثال استفاده از تابع RELATED
فرض کنید شما دو جدول دارید: Customers (مشتریان) و Orders (سفارشات). جدول Customers شامل اطلاعاتی از جمله CustomerID و CustomerName است، و جدول Orders شامل OrderID و CustomerID است. شما میتوانید از تابع RELATED برای افزودن نام مشتری به هر سفارش استفاده کنید:

این کد یک ستون جدید در جدول Orders با نام CustomerName ایجاد میکند و نام مشتری مربوط به هر سفارش را دریافت میکند. این کار به شما این امکان را میدهد که بدون نیاز به جستجو در جدول مشتریان، نام مشتری را مستقیماً در جدول سفارشات مشاهده کنید.
تابع RELATEDTABLE
1. تعریف تابع RELATEDTABLE
تابع RELATEDTABLE برای بازیابی تمامی رکوردهای مرتبط با جداول دیگر در رابطه یک به چند استفاده میشود. این تابع به شما اجازه میدهد تا کل جدول مرتبط را بهجای فقط یک ستون خاص از آن دریافت کنید.
2. سینتکس تابع RELATEDTABLE
<tableName>: نام جدولی که میخواهید رکوردهای مربوط به آن را دریافت کنید.
3. مثال استفاده از تابع RELATEDTABLE
برگردیم به مثال مشتریان و سفارشات. اگر بخواهید برای هر مشتری، مجموع کل سفارشات مرتبط را جمعآوری کنید، میتوانید از تابع RELATEDTABLE بهصورت زیر استفاده کنید:
این کد یک ستون جدید به نام TotalOrders در جدول Customers ایجاد میکند و تعداد سفارشات مربوط به هر مشتری را محاسبه میکند. بهاینترتیب، شما میتوانید بهراحتی میزان سفارشات هر مشتری را مشاهده کرده و تجزیهوتحلیلهای موردنیاز را انجام دهید.
تجزیهوتحلیل نتایج با استفاده از دو تابع
از توابع RELATED و RELATEDTABLE میتوان در کنار یکدیگر برای انجام تجزیهوتحلیلهای مؤثرتر استفاده کرد:
1. محاسبه مجموع فروش بر اساس مشتری
با ترکیب توابع، میتوانید مجموع فروش را با استفاده از اطلاعات مرتبط از دو جدول بهدست آورید:
این کد مجموع مبلغ فروش را با استفاده از اطلاعات جدول Orders بر اساس مشتری محاسبه میکند.
2. تجزیهوتحلیل پیچیدهتر با ایجاد ستونهای محاسباتی
شما میتوانید با ایجاد ستونهای محاسباتی در هر دو جدول، تجزیهوتحلیلهای بیشتری انجام دهید. بهعنوانمثال، میتوانید ابتدا برای هر سفارش، سود را محاسبه کرده و سپس مجموع سود را برای هر مشتری بهدست آورید:
نکات و بهترین شیوهها
- کم کردن پیچیدگی: همواره سعی کنید از توابع RELATED و RELATEDTABLE بهطور مؤثر و با بهرهگیری از روابط روشن بین جداول استفاده کنید. این کار میتواند به کاهش پیچیدگی کد شما کمک کند.
- بررسی و آزمایش: هنگام استفاده از این توابع، از دادههای آزمون استفاده کنید و بررسی کنید که آیا نتایج بهدستآمده دقیق و مرتبط هستند یا خیر.
- مراقبت از کارایی: در محاسبات پیچیده با استفاده از جداول بزرگ، در نظر داشته باشید که توابع داکس میتوانند بر کارایی تأثیر بگذارند. بهینهسازی و نقد و بررسی فرمولها و جداول خود میتواند عملکرد را بهبود بخشد.
نتیجهگیری
توابع RELATED و RELATEDTABLE در DAX ابزارهای قدرتمند و ضروری برای تجزیهوتحلیل دادههای چندجدولی هستند. با استفاده از این توابع، تحلیلگران داده میتوانند اتصالات میان جداول مختلف را سادهسازی کرده و دسترسی به اطلاعات مرتبط را بهبود بخشند. در نتیجه، این قابلیتها نهتنها کارایی پردازش دادهها را افزایش میدهند، بلکه به شفافسازی تجزیهوتحلیلها و تصمیمگیریهای تجاری نیز کمک میکنند. با یادگیری صحیح و کاربرد مؤثر این توابع، تحلیلگران میتوانند بینشهای عمیقتری از دادههای خود به دست آورند و در فرآیندهای تحلیل دادههای خود موفقتر عمل کنند.
بدون دیدگاه