استفاده از محاسبات بصری Visual Calculations برای قالببندی شرطی
ما نسبت به محاسبات بصری (Visual Calculations) احساسات متناقضی داریم. از یک سو، چندین محاسبه ساده را میتوان بهراحتی مستقیماً روی ویژوال انجام داد. اما از سوی دیگر، بهمحض اینکه محاسبه کمی پیچیدهتر شود، ایجاد محاسبات بصری واقعاً سخت میشود – حتی برای توسعهدهندگان حرفهای DAX.
با این حال، محاسبات بصری در مواردی که محاسبات فقط به یک ویژوال خاص مربوط میشوند، فوقالعاده کاربردی هستند. بیایید واقعبین باشیم: تقریباً در هر مدل معنایی (semantic model) معیارهایی وجود دارد که شامل توابع پیچیدهای مثل ISINSCOPE
، HASONEVALUE
و SELECTEDVALUE
هستند که تنها هدفشان تعیین رنگ فونت یا پسزمینه یک سلول است.
از نسخهی فوریه ۲۰۲۵ Power BI به بعد، میتوان از محاسبات بصری برای کنترل قالببندی شرطی استفاده کرد. برای استفاده از این قابلیت باید چند نکتهی جزئی اما مهم را بدانید – اما بدون شک یادگیری آنها ارزشش را دارد.
بیایید فرض کنیم میخواهیم ستون «مقدار فروش» را به رنگ قرمز یا سبز نمایش دهیم، بر اساس اینکه مقدار فعلی از میانگین فروش بیشتر است یا کمتر.

ما میتوانیم به این هدف با استفاده از یک measure معمولی در مدل دست پیدا کنیم. ایجاد چنین measureی خودش یک تمرین جالب است و قطعاً ارزش امتحان کردن را دارد، چون برخی پیچیدگیها را در پسزمینه پنهان میکند.
در مدل Contoso ما، ستون Product[Category]
بر اساس Product[Category Code]
مرتب شده است. اگر دوست دارید، خودتان امتحان کنید؛ یا اینکه فقط به راهحل نهایی نگاه بیندازید:

در این فرمول چند اشکال اساسی وجود دارد:
اول اینکه ترکیب CALCULATE
و ALLEXCEPT
کمی عجیب و برای افراد تازهکار در DAX بهراحتی قابل درک نیست.
نکته: ستون Product[Category Code]
در زمینه فیلتر (filter context) حضور دارد و توسط تغییر زمینه (context transition) داخل AVERAGEX
نادیده گرفته نمیشود.
دوم اینکه این کد با بررسی میانگین بهازای هر دسته (Category) کار میکند. اگر کاربر نمای ماتریس (matrix) را تغییر دهد و بهجای دسته از ستون دیگری برای برش (slicing) استفاده کند، نتیجه رنگبندی بهدرستی محاسبه نخواهد شد.
در عوض، استفاده از محاسبه بصری (Visual Calculation) برای محاسبه همین رنگبندی بسیار سادهتر خواهد بود:

نهتنها نوشتن این نوع محاسبه بصری سادهتر است، بلکه هیچ ارجاع مستقیمی به ستون Product[Category]
در آن وجود ندارد. بنابراین، این روش برای هر نوع بُرش (slicing) روی ویژوال کار میکند، بدون وابستگی به ستون خاصی.
علاوه بر این، محاسبه فقط درون ویژوال باقی میماند و مدل معنایی (semantic model) را با منطق تجاریای که فقط به یک ویژوال خاص مربوط است، آلوده نمیکند.
اما استفاده از محاسبه بصری برای قالببندی شرطی یک measure، یک تله کوچک دارد؛ دلیل آن، پیادهسازی ناقص محاسبات بصری در حال حاضر است.
یادتان باشد که در زمان نگارش این مطلب، محاسبات بصری هنوز یک ویژگی پیشنمایش (preview feature) هستند؛ بنابراین وجود باگها و محدودیتها طبیعی است.
یکی از این مشکلات، عدم تشخیص صحیح نوع داده برای محاسبات بصری است. Power BI بهطور پیشفرض فرض میکند که خروجی هر محاسبه بصری، عددی است. اما در مثال ما، خروجی محاسبهی رنگ (Color
) یک رشته متنی است.
برای حل این مشکل (تا زمان رفع آن در نسخههای آینده Power BI)، باید به Power BI اطلاع دهیم که نوع داده این محاسبه متنی (Text) است.
برای این کار: به بخش Format | General | Data Format | Format Options در تنظیمات ویژوال بروید و نوع فرمت را به Text تغییر دهید.

با تغییر اجباری نوع داده به Text، میتوان از محاسبه بصری (Visual Calculation) در بخش قالببندی شرطی (Conditional Formatting) برای Sales Amount استفاده کرد.
این کار باعث میشود Power BI محاسبه رنگ را بهدرستی تشخیص دهد و آن را بهعنوان رشتهای متنی (مانند "red"
یا "green"
) تفسیر کند، و بتوان آن را برای تعیین رنگ فونت یا پسزمینه سلولها بهکار برد.
در نتیجه، حتی با وجود محدودیت فعلی در تشخیص خودکار نوع داده در ویژگی پیشنمایش، همچنان میتوان از مزایای محاسبات بصری در قالببندی شرطی استفاده کرد.

و تمام! حالا ستون Sales Amount دقیقاً به همان شکلی که میخواستیم رنگبندی شده است.
نکته مهم این است که محاسبه بصری به ویژوال وابسته است، اما به ستون خاصی برای برش (slicing) وابسته نیست.
یعنی اگر کاربر مثلاً بهجای Product[Category]
از Product[Brand]
برای برش استفاده کند، قالببندی شرطی بهطور خودکار با ستون جدید تطبیق پیدا میکند، بدون نیاز به بازنویسی فرمول یا تغییرات در منطق مدل.
این ویژگی باعث میشود محاسبات بصری برای قالببندی شرطی، راهکاری قدرتمند، انعطافپذیر و تمیز برای کنترل ظاهر گزارشها باشند.

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