فیلتر کردن در Power Query

فیلتر کردن در Power Query

فیلتر کردن (filtering) در Power Query خیلی آسان است، اما به همان اندازه گمراه کننده می باشد. در این مطلب انواع فیلتر کردن در Power Query مورد بررسی قرار می گیرد. دلیل این اتفاق آن است که افراد بیشتر به آنچه می بینند باور دارند تا آنچه واقعا اتفاق می افتد. بیایید با هم مثالی را بررسی کنیم. برای بررسی فیلترینگ یک جدول ساده را ایجاد کردیم که در تصویر زیر قابل مشاهده است. این جدول ساده شامل ۲ ستون کد خودرو و نام خودرو می باشد.

 

Filtering_Power_BI_image1

 

نحوه فیلتر کردن در Power Query

فیلتر کردن ردیف ها یکی از نیاز های اولیه و پایه ای هر نرم افزار هوش تجاری می باشد. Power BI نیز از این قاعده مستثنی نیست و این امکان را با قدرت و سادگی برای کاربران فراهم کرده است. جدولی مانند جدول نمونه ایجاد کنید. سپس  به قسمت Edit Queries بروید.

 

filtering_power_BI_image2

 

در Power Query در سمت راست هر ستون کلیدی وجود دارد که می توانید از آن برای فیلتر کردن استفاده کنید.  با انتخاب مقادیر مورد نظر تنها ردیف های با همان مقدار در جدول نمایش داده می شوند و مابقی ردیف ها حذف خواهند شد.

 

Filtering_power_BI_image3

 

نتیجه فیلترینگ به صورت جدول زیر خواهد بود.

 

filtering_power_BI_image4

 

فیلترینگ ساده

برای فیلتر کردن معمولی تمام کاری که باید بکنید این است که مقدار مورد نظر خود را در باکس جستجو وارد نمایید. تمام ردیف هایی که شامل آن مقدار باشند برای شما لیست می شوند. به طور مثال فرض کنید ما می خواهیم جدولی حاوی تمامی خودروهای پراید را در مدل خود بارگذاری نماییم. با تایپ پراید در این باکس تمامی ردیف هایی که در ستون نام خودرو شامل این مقدار هستند نمایش داده می شود. به تصویر زیر توجه کنید.

 

filtering_Power_bI_image5

 

جدول حاصل از این فیلترینگ در تصویر زیر نمایش داده شده است. تمامی خودرو های پراید در جدول باقی مانده و مابقی ردیف ها حذف گردیده اند.

 

Filtering_Power_BI_image6

 

اگر به کد تولید شده توسط Power Query دقت کنید به دلیل گمراه کننده بودن این نوع فیلترینگ پی خواهید برد. کدی که در پشت صحنه ایجاد شده به این صورت است که تک تک خودرو های پراید در کد آورده شده است. مشکل این فیلترینگ چیست؟

درست حدس زدید اگر خودروی جدیدی حاوی نام پراید به محصولات ما اضافه شود شامل این فیلترینگ نخواهد شد و در جدول نمایش داده نمی شود. برای تست این موضوع خودروی پراید ۲۰۲۲ را به مدل محصولات خود اضافه می کنیم.

 

filtering_Power_BI_image7

 

مطمئنا شما نمی خواهید با اضافه کردن هر محصول جدید تغییرات را به صورت دستی ایجاد کنید بلکه می خواهید این تغییرات به صورت اتوماتیک ایجاد شوند. اما متاسفانه با انجام این نوع فیلترینگ نتیجه حاصله به صورت تصویر زیر خواهد بود و اثری از پراید ۲۰۲۲ در جدول نهایی ما نخواهد بود. دلیل اتفاق ساده است. کدی که برای این فیلترینگ توسط Power Query ایجاد شده است ردیف جدید را لحاظ نمی کند بلکه همان مدل های قبلی خودرو را در دل خود دارد.

 

filtering_power_BI_image8

 

فیلترینگ پیشرفته

فیلترینگ معمولی اگر چه بسیار ساده است و کاربر به راحتی فیلتر های مورد نیاز خود را ایجاد می کند اما به دلایلی که تا اینجا ذکر شد به سادگی ممکن است باعث اشتباه شود و باعث نتایجی شود که انتظار آن را ندارید. دقت کنید جداول شما در دنیای واقعی شامل ۱۰ رکورد نیستند و گاهی اوقات رصد کردن مشکلات بسیار پیچیده است. برای رهایی از گمراهی، فیلترینگ پیشرفته پاسخگوی نیاز ما خواهد بود. برای این عمل مطابق تصویر زیر عمل می کنیم.

 

filtering_Power_BI_image10

 

همان طور که در تصویر بالا مشاهده می کنید می توانید از انتخاب های متعددی برای فیلتر استفاده کنید. اما مورد قابل استفاده در مثال فعلی ما Contains است. مقدار مورد نظر خود را مطابق تصویر پایین در باکس وارد می کنید که به این معنی است که ستون نام خودرو شامل پراید باشد. همان طور که مشاهده می کنید مقدار پراید در باکس وارد شده است.

 

Filtering_Power_bi_image11

 

ابتدا جدول اول را بررسی می کنیم که کاملا مشابه روش اول عمل می کند و تمامی رکورد های شامل کلمه پراید را بر می گرداند. نتیجه در تصویر زیر قابل مشاهده است.

filtering_Power_bI_image12

 

اکنون یک رکورد جدید به نام پراید ۲۰۲۲ را وارد جدول اصلی کرده و نتیجه را بررسی می کنیم. همان طور که در تصویر زیر قابل مشاهده است، جدول نهایی و فیلتر شده ما به صورت خودکار آپدیت می شود و محصول جدید ما در فیلتر نهایی رویت می شود. اگر نگاهی به کد ایجاد شده توسط M بیندازید متوجه تفاوت آن با کد ایجاد شده در روش اول می شوید. در واقع این نوع از فیلتر داینامیک و پویا عمل می کند و تغییرات آینده نیز شامل این فیلتر می شوند و هیچ داده ای از دست نمی رود.

 

filtering_Power_BI_image13

 

خلاصه

روش فیلترینگ معمولی بسیار ساده و مناسب عمل می کند اما تنها زمانی که رشته و عددی را دقیقا جستجو کنید. به طور مثال اگر دقیقا می خواهید کلمه پراید ۲۰۲۲ را جستجو کنید این روش بسیار مناسب عمل می کند. اما زمانی که به دنبال مقادیر شامل یک رشته یا رنجی از اعداد و تاریخ هستید بهتر است از فیلترینگ پیشرفته استفاده کنید.

حسین وثوقی

حسین وثوقی

دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
حسین وثوقی

حسین وثوقی (همه)

مطالب مرتبط

دیدگاه بگذارید

avatar
  عضویت  
به دوستتان خبر دهید.