مظاهر قربانی
مظاهر قربانی
خواندن ۲ دقیقه·۳ سال پیش

زمینه ردیف (Row Context) چیست؟

در مقاله قبلی در خصوص زمینه فیلتر (Filter Context) توضیح داده شد. در پاور بی آی، نوع دیگری از زمینه ارزیابی وجود دارد که نام آن زمینه ردیف یا همان Row Context است. اما تفاوت زمینه فیلتر (Filter Context) و زمینه ردیف (Row Context) در چیست؟ برای آشنایی با تفاوت های آن، مقاله زیر را دنبال کنید.

  • زمینه ردیف (Row Context) چیست؟
  • چگونه از زمینه ردیف (Row Context) استفاده کنیم؟
  • جمع بندی

زمینه ردیف (Row Context) چیست؟

محاسبات مربوط به DAX بر روی ستون ها انجام می شوند. وقتی به دنبال بازیابی مقدار ردیف مشخصی از یک ستون هستید، به راهی نیاز دارید که به DAX بگویید از کدام سطر جدول برای محاسبه مقدار استفاده کند. به عبارت دیگر ، شما نیاز به راهی برای تعریف سطر فعلی یک جدول دارید. این مفهوم “ردیف فعلی” زمینه ردیف را مشخص می کند. به جدول داده زیر توجه کنید.

از فرمول DAX زیر برای محاسبه مجموع استفاده می کنیم:

TotValues = SUM(MyData[Value])

حال اگر از ویژوال جدول برای نمایش مقادیر استفاده کنیم مشاهده می کنیم که ردیف های جدول ایجاد شده به ازای هر کدام از آیتم های موجود، مقادیر مجموع آن را نمایش می دهد که می تواند حاصل جمع بیش از یک ردیف باشد. به عبارت دیگر، زمینه فیلتر (Filter Context) اعمال می شود و برای آیتم A، مقدار 400 که حاصل جمع ردیف های 1 و 6 است را مشاهده می کنیم.

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

TotValues (Column) = SUM(MyData[Value])

فرمول DAX یکسان، نتیجه ای متفاوت داده است. علت این امر،  تفاوت در زمینه ارزیابی است. در ایجاد یک Measure و استفاده از ویژوال جدول، عامل اثرگذار، زمینه فیلتر است اما در ایجاد یک ستون جدید، عامل اثرگذار زمینه ردیف است. زمینه ردیف یعنی انجام محسبات به ازای هر ردیف. به همین دلیل است که شما در DAX، بر خلاف بقیه زبان ها، توابع Loop یا حلقه ندارید. زمینه ردیف وظیفه محاسبات ردیفی را بر عهده دارد. در بالا اتفاقی که افتاده اینست که به ازای ردیف 1، مجموع ستون Value محاسبه شد و در ردیف 1 قرار داده شد. این کار برای بقیه ردیف ها نیز انجام شد. از آنجایی که مجموع ستونی برابر با 1200 است، در تمامی ردیف ها عدد 1200 مشاهده می شود.

چگونه از زمینه ردیف (Row Context) استفاده کنیم؟

بطور کلی در دو حالت است که زمینه ردیف (Row Context) فعال می شود:

  1. زمانی که از ستون جدید در جدول استفاده کنید.
  2. زمانی که از توابع Iterator، توابعی که ردیف به ردیف محاسبه انجام می دهند استفاده کنید. این توابع شامل توابع Xدار نظیر SUMX، تابع FILTER و توابع دیگر می شود.

جمع بندی

زمینه فیلتر (Filter Context) فیلتر می کند و زمینه ردیف (Row Context) ردیف به ردیف پیمایش می کند. این جمله را حتماً بخاطر بسپارید و بارها تکرار کنید تا این مفهوم برای شما جا بیفتد. نکته مهم دیگر اینست که این دو مفهوم در تعامل با یکدیگر کار می کنند. بنابراین برای انجام محاسبات پیشرفته، درک این دو مفهوم ضروری است.

دانلود فایل Power BI مربوطه

منبع: Businesstomy

daxpower biداشبورد مدیریتیتحلیل داده
دکترای مهندسی صنایع از دانشگاه یزد با گرایش و تمرکز بر تحلیل داده/مؤلف بیش از ۳۰ مقاله علمی در نشریات معتبر خارجی/دارای تجربه در بیش از ده ها پروژه در صنعت
شاید از این پست‌ها خوشتان بیاید