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

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

تابع ALLNOBLANKROW در DAX

تابع ALLNOBLANKROW در DAX

تابع ALLNOBLANKROW در Power BI

تابع ALLNOBLANKROW در Power BI برای حذف فیلترها و بازگرداندن تمام ردیف‌های یک جدول یا مقادیر یک ستون است، با این تفاوت که ردیف‌های خالی (Blank Row) ناشی از روابط نامعتبر را حذف می‌کند.

تعریف تابع ALLNOBLANKROW

DAX
ALLNOBLANKROW(<tableName or columnName>)
  • اگر نام یک جدول را وارد کنید، تمام ردیف‌ها به‌جز ردیف خالی بازگردانده می‌شوند.
  • اگر نام یک ستون را وارد کنید، تمام مقادیر منحصربه‌فرد آن ستون به‌جز مقدار خالی بازگردانده می‌شوند.

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

در مدل داده‌ای Power BI، زمانی که رابطه‌ای بین دو جدول وجود دارد اما برخی ردیف‌ها در جدول فرزند (child) با هیچ ردیفی در جدول والد (parent) مطابقت ندارند، Power BI یک ردیف خالی (Blank Row) برای حفظ یکپارچگی مدل ایجاد می‌کند. تابع ALLNOBLANKROW این ردیف را حذف می‌کند تا فقط داده‌های معتبر نمایش داده شوند.

 مثال ساده

فرض کنید جدول Products با ستون Category دارید و می‌خواهید تمام دسته‌بندی‌ها را بدون مقدار خالی بازگردانید:

DAX
ALLNOBLANKROW(Products[Category])

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

مثال کاربردی

در داده‌های نمونه، جدول ResellerSales_USD شامل یک ردیف است که هیچ مقداری ندارد و بنابراین نمی‌تواند به هیچ یک از جداول والد در روابط درون ورک‌بوک مرتبط باشد. شما از این جدول در یک PivotTable استفاده خواهید کرد تا بتوانید رفتار ردیف خالی و نحوه مدیریت شمارش روی داده‌های نامرتبط را مشاهده کنید.

مرحله 1: داده‌های نامرتبط را تأیید کنید

پنجره Power Pivot را باز کنید، سپس جدول ResellerSales_USD را انتخاب کنید. در ستون ProductKey، مقادیر خالی را فیلتر کنید. یک ردیف باقی خواهد ماند. در آن ردیف، تمام مقادیر ستون باید به جز SalesOrderLineNumber خالی باشند.

مرحله 2: ایجاد یک PivotTable

یک PivotTable جدید ایجاد کنید، سپس ستون datetime[Calendar Year] را به پنجره Row Labels بکشید. جدول زیر نتایج مورد انتظار را نشان می‌دهد:

برچسب‌های ردیف
2005
2006
2007
2008
Grand Total

ALLNOBLANKROW

به برچسب خالی بین ۲۰۰۸ و جمع کل توجه کنید. این برچسب خالی نشان‌دهنده عضو ناشناس است که یک گروه ویژه است که برای محاسبه هر مقداری در جدول فرزند که هیچ مقدار منطبقی در جدول والد ندارد، ایجاد شده است. در این مثال، ستون datetime.[Calendar Year] است.

وقتی این برچسب خالی را در PivotTable می‌بینید، می‌دانید که در برخی از جداول مرتبط با ستون datetime[Calendar Year]، یا مقادیر خالی یا مقادیر غیر منطبق وجود دارد. جدول والد، جدولی است که برچسب خالی را نشان می‌دهد، اما ردیف‌هایی که مطابقت ندارند در یک یا چند جدول فرزند قرار دارند.

ردیف‌هایی که به این گروه برچسب خالی اضافه می‌شوند یا مقادیری هستند که با هیچ مقداری در جدول والد مطابقت ندارند – به عنوان مثال، تاریخی که در جدول datetime وجود ندارد – یا مقادیر تهی هستند، به این معنی که اصلاً مقداری برای تاریخ وجود ندارد. در این مثال، ما یک مقدار خالی در تمام ستون‌های جدول فروش فرزند قرار داده‌ایم. داشتن مقادیر بیشتر در جدول والد نسبت به جداول فرزند مشکلی ایجاد نمی‌کند.

مرحله 3: شمارش ردیف‌ها با استفاده از ALL و ALLNOBLANK

دو معیار زیر را به جدول datetime اضافه کنید تا ردیف‌های جدول را بشمارید: Countrows ALLNOBLANK از datetime، Countrows ALL از datetime. فرمول‌هایی که می‌توانید برای تعریف این معیارها استفاده کنید عبارتند از:

 

DAX
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))

// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime'))

// Countrows ALLNOBLANKROW of ResellerSales_USD
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))

// Countrows ALL of ResellerSales_USD
= COUNTROWS(ALL('ResellerSales_USD'))

در یک PivotTable خالی، ستون datetime[Calendar Year] را به برچسب‌های ردیف اضافه کنید و سپس معیارهای تازه ایجاد شده را اضافه کنید. نتایج باید مانند جدول زیر باشد:

برچسب‌های ردیف شمارشگرها ALLNOBLANK از datetime شمارش همه تاریخ و زمان
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Grand Total 1280 1281

نتایج، اختلاف ۱ سطری را در تعداد سطرهای جدول نشان می‌دهد. با این حال، اگر پنجره Power Pivot را باز کنید و جدول datetime را انتخاب کنید، نمی‌توانید هیچ سطر خالی در جدول پیدا کنید زیرا سطر خالی ویژه ذکر شده در اینجا، عضو ناشناس است.

مرحله 4: تأیید کنید که شمارش دقیق است

برای اثبات اینکه ALLNOBLANKROW هیچ سطر واقعاً خالی را نمی‌شمارد و فقط سطر خالی ویژه جدول والد را مدیریت می‌کند، دو معیار زیر را به جدول ResellerSales_USD اضافه کنید: Countrows ALLNOBLANKROW از ResellerSales_USD، Countrows ALL از ResellerSales_USD.

یک PivotTable جدید ایجاد کنید و ستون datetime[سال تقویمی] را به پنل Row Labels بکشید. اکنون معیارهایی را که ایجاد کرده‌اید اضافه کنید. نتایج باید مانند زیر باشد:

Row Labels Countrows ALLNOBLANKROW of ResellerSales_USD Countrows ALL of ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Grand Total 60856 60856

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

تفاوت با تابع ALL

تابع عملکرد
ALL حذف فیلترها و بازگرداندن همه مقادیر، شامل ردیف خالی
ALLNOBLANKROW حذف فیلترها و بازگرداندن همه مقادیر، به‌جز ردیف خالی ناشی از رابطه نامعتبر

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

  • حذف ردیف‌های خالی در مدل‌های دارای روابط ناقص
  • ساخت معیارهای دقیق‌تر در گزارش‌هایی که به مقادیر معتبر نیاز دارند
  • جلوگیری از نمایش داده‌های ناقص یا نامعتبر در تحلیل‌ها

نکات مهم

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

ملاحظات

  • تابع ALLNOBLANKROW فقط ردیف خالی را فیلتر می‌کند که جدول والد، در یک رابطه، زمانی نشان می‌دهد که یک یا چند ردیف در جدول فرزند وجود داشته باشد که مقادیر آنها با ستون والد مطابقت نداشته باشد. برای توضیح کامل به مثال زیر مراجعه کنید.

جدول زیر خلاصه‌ای از انواع ALL که در DAX ارائه می‌شوند و تفاوت‌های آنها را نشان می‌دهد:

تابع و کاربرد توضیحات
ALL(Column) تمام فیلترها را از ستون مشخص شده در جدول حذف می‌کند؛ تمام فیلترهای دیگر در جدول، روی ستون‌های دیگر، همچنان اعمال می‌شوند.
ALL(Table) تمام فیلترها را از جدول مشخص شده حذف می‌کند.
ALLEXCEPT(Table,Col1,Col2...) تمام فیلترهای زمینه در جدول را به جز ستون‌های مشخص شده، لغو می‌کند.
ALLNOBLANK(table|column)
  • برای توضیحات کلی در مورد نحوه عملکرد تابع ALL، همراه با مثال‌های گام به گام که از ALL(Table) و ALL(Column) استفاده می‌کنند، به تابع ALL مراجعه کنید.
  • این تابع برای استفاده در حالت DirectQuery، هنگام استفاده در ستون‌های محاسبه‌شده یا قوانین امنیتی سطح ردیف (RLS) پشتیبانی نمی‌شود.

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

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

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

 

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

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

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