• مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • DAX
  • دوره های آموزشی
    • کلاس اکسل پیشرفته
    • کلاس داشبورد با Power BI
    • کلاس DAX و مدلسازی داده‎
    • Power BI Report Server
    • گالری تصاویر
  • پکیج های آموزشی
    • اکسل
    • Power BI
    • SQL
    • سبد خرید
  • معرفی
  • تماس
  • اینستاگرام
  ورود
گروه تحلیلگری
  • مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • DAX
  • دوره های آموزشی
    • کلاس اکسل پیشرفته
    • کلاس داشبورد با Power BI
    • کلاس DAX و مدلسازی داده‎
    • Power BI Report Server
    • گالری تصاویر
  • پکیج های آموزشی
    • اکسل
    • Power BI
    • SQL
    • سبد خرید
  • معرفی
  • تماس
  • اینستاگرام
0
ثبت نام / ورود

وبلاگ

Fuzzy Matching در Power BI

حتما تا به حال پیش آمده که بخواهید دو جدول را بر اساس ستون هایی که مقادیرشان به یکدیگر شبیه است اما دقیقا یکسان نیستند، Join کنید. Power BI این ویژگی را تحت عنوان Fuzzy Matching برای کاربران خود در نظر گرفته است.

فعال کردن قابلیت Fuzzy Matching

اگر از نسخه های پایین تر Power BI استفاده می کنید نیاز به فعال سازی این ویژگی خواهید داشت. برای فعال سازی قابلیت Fuzzy Matching باید به طریق زیر عمل کنیم. مطابق تصویر از طریق منوی File، گزینه Option and Setting را انتخاب کرده و به Option می رویم.

حال برگه ای پیش روی شما باز می شود که اگر به قسمت Preview feature بروید می توانید با فعال کردن گزینه Enable Fuzzy Merge این قابلیت را در Power BI فعال کنید. پس از فعال سازی یک بار Power BI را بسته و دوباره باز کنید:

پیاده سازی Fuzzy Matching

برای پیاده سازی Fuzzy Matching از دو جدول ساده استفاده کرده ایم. یکی از جداول حاوی اطلاعات دپارتمان ها است. جدول Department حاوی ۳ دپارتمان فروش (Sales)، فناوری اطلاعات (Information Technology) و مدیریت (Management) است. جدول دیگر حاوی اطلاعات کارمندان است. همان طور که ملاحظه می کنید کاربران در ورود اطلاعات دقت کافی نداشته اند و اطلاعات دپارتمان ها را با نگارش های مختلف وارد کرده اند.

حال می خواهیم این دو جدول را با یکدیگر Join کنیم:

مطالعه کنید.
انواع Join در Power Query

ابتدا به صورت عادی و معمول عمل Join را انجام می دهیم. از طریق Merge Queries به برگه Merge وارد می شویم.

انواع Join در Power Query

حال ستون مشترک (Department) را انتخاب نموده و نوع Join را بر روی inner join قرار می دهیم:

 

حال ستون های مورد نظر را انتخاب می کنیم.

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

همین طور که مشاهده می کنید بسیاری از ردیف ها حذف شده اند و تنها دو ردیف باقی مانده اند. حال نوع Join را بر روی Left outer Join قرار می دهیم.

نتیجه Join به صورت تصویر زیر خواهد بود. همان طور که مشاهده می نمایید برای بسیاری از ردیف ها دپارتمان نامعلوم است، چرا که Join به صورت عادی تنها ردیف هایی را که مقادیر آن ها در هر دو ستون کاملا برابر است را به عنوان خروجی نمایش می دهد.

حال عمل Fuzzy Match را برای این دو جدول انجام می دهیم. باز هم مانند قبل گام های Merge را انجام داده و گزینه Use fuzzy matching to compare the merge را برای آن فعال می کنیم.

حال گزینه fuzzy merge option را به منظور انجام تنظیمات بیشتر باز می کنیم. ابتدا بدون تغییر در تنظیمات عمل Fuzzy Merge را انجام می دهیم. نتیجه مطابق تصویر زیر است.

همان طور که در تصویر مشاهده می کنید اکنون با عمل Fuzzy Merge تعداد بیشتری از ردیف ها در جدول نهایی ظاهر شده اند. ردیف هایی که با رنگ قرمز مشخص شده اند مواردی هستند که علیرغم یکسان نبودن مقادیر ستون ها به عنوان مقدار برابر تشخیص داده شده اند. در واقع fuzzy merge میزان شباهت مقادیر دو ستون را بررسی می کند و در صورتی که به آستانه تعیین شده توسط کاربر (به صورت پیش فرض ۹۰ درصد) برسد آن ها را مساوی تشخیص می دهد.

بدیهیست هر چه این آستانه بالاتر تعیین شود عمل matching با سخت گیری بیشتر و هر چه پایین تر تنظیم شود، عمل تطابق با سخت گیری کمتری صورت می پذیرد. به طور مثال دو کلمه Sale و Sales موفق به رسیدن به آستانه تنظیمی کاربر شده اند و یکسان تشخیص داده شده اند. اما دو کلمه Mangmt و Management موفق به رسیدن به آستانه شباهت ۹۰ درصدی نشده اند.

عمل Fuzzy Merge تنظیمات زیادی دارد. اولین تنظیم مربوط به threshold است که بین ۰ تا ۱ قابل تنظیم است. عدد تنظیمی در این قسمت آستانه شباهت مد نظر کاربر را نشان می دهد. در واقع با وارد کردن عدد در این باکس می گوییم مقادیر با شباهت بالاتر از این مقدار یکسان در نظر گرفته شوند.

گزینه Ignore case تنظیمات مربوط به حساسیت یا عدم حساسیت به حروف بزرگ و کوچک را انجام می دهد. همچنین Ignore Space تنظیمات مربوط به در نظر گرفتن یا نگرفتن Space ها را انجام می دهد.

اما مهمترین بخش مربوط به Transformation table است. Transformation Table یا Mapping Table جدولی است که ما به صورت آگاهانه جدولی را مشخص کرده و مقادیر مورد نظر را در این جدول تعریف می کنیم. این جدول باید دارای دو ستون From و To باشد و فراموش نکنید که Power Query به حروف کوچک و بزرگ حساس است.

در واقع در این روش باید جدول mapping را تعریف کرده و تمام مقادیر مورد نظر را در آن تعریف کنیم و به جای تعریف کردن آستانه شباهت و سپردن عمل Join به قضا و قدر و احتمال، آگاهانه مقادیر ممکن و معادل آن ها را تعریف کنیم. با هم به بررسی مثال بپردازیم.

عمل Fuzzy Matching با استفاده از mapping table

برای پیاده سازی این عمل ۲ جدول شرکت ها و میزان فروش آن ها را ثبت شده است. در تصویر زیر شرکت های ثبت شده را مشاهده می نمایید. در این جدول ۳ شرکت سایپا، ایران خودرو و بهمن موتور ثبت شده است.

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

پس بهترین راه ایجاد یک transformation table است که در آن تمامی مقادیر ممکن برای هر شرکت ثبت شود. این جدول در تصویر زیر قابل مشاهده است.  ستون From مقادیر ممکن برای هر شرکت و To مقدار معتبر واحد برای هر شرکت است. به طور مثال تمام مقادیر سایپا، گروه سایپا، گروه خودرو سازی سایپا، شرکت سایپا و Saipa به عنوان سایپا شناخته شوند.

حال عمل Fuzzy Matching را انجام داده و جدول mapping ایجاد شده را به عنوان جدول Transformation Table، معرفی میکنیم. نحوه انجام این عمل را در تصویر زیر مشاهده می کنید.

نتیجه نهایی در تصویر زیر قابل مشاهده است. همان طور که مشاهده می کنید تمامی موارد به درستی تشخیص داده شده و عمل Join صورت پذیرفته است.

درباره حسین وثوقی

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

نوشته های بیشتر از حسین وثوقی
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • پروژه مدیریت مواد اولیه و تولید با Power BI

    3.57k بازدید

  • کاربرد پارامتر در پاوربی آی
    کاربرد پارامتر و تحلیل حساسیت در پاور بی آی

    2.23k بازدید

  • پیاده سازی Navigation شرطی در Power BI

    1.69k بازدید

  • امنیت در سطح Object در Power BI

    1.1k بازدید

  • پروژه Power BI خانم یاسمن طاهری

    2.9k بازدید

  • پروژه Power BI آقای محمد آذر

    2.29k بازدید

guest
تعداد ماههای سال به عدد
guest
2 نظر
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
حسین
حسین

سلام جناب وثوقی
تشکر از مطلب کارا و مفید شما
اما من در مورد ی دیتا به مشکل عجیبی در استفاده از Fuzzy Matching می خورم
چطور میتونم این مشکل رو با شما در میون بزارم؟

0
پاسخ
حسین وثوقی
حسین وثوقی
نویسنده
در پاسخ به  حسین

سلام

مورد شما را دیدم
حد رو رو ۰٫۹۵ بذارید درست میشه

0
پاسخ
جستجو
جستجو برای:
دسته بندی ها
  • Charts
  • DAX
  • Excel
  • Power BI
  • Power Query
  • هوش تجاری
بسته های آموزشی
  • Excel
  • Power BI
  • SQL
درباره گروه تحلیلگری

معتقدیم آموزش شروع یک تعهد بلند مدت است. این را از مشتریان ما سوال کنید.

اطلاعات تماس
  • تهران، خیابان مطهری، ابتدای خیابان سنایی، کوچه بیست و یکم
  • 543 30 910 - 021
پیوندها
  • آموزش Power BI
  • آموزش SQL
  • آموزش اکسل
دسته بندی محصولات
Excel Power BI SQL
نماد الکترونیک
wpDiscuz

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت