خانه / هوش تجاری / پاور کوئری / ادعام لیستها در پاورکوئری

ادعام لیستها در پاورکوئری

توابع متعددی برای ادغام لیستها در پاورکوئری وجود دارد که در این بخش به توضیح آن‌ها پرداخته‌شده است. علاوه بر توابع موجود، برای ترکیب دو لیست، می‌توان به‌راحتی آن دو را با عملگر & ترکیب نموده و آن دو را در زیر هم قرارداد لذا حاصل فرمول ذیل برابر است با ترکیب آن دو لیست و {۱,۲,۱,۴,۳}

={۱,۲} & {1,4,3}

اما اگر بخواهیم حالت‌های پیشرفته‌تر ترکیب لیست‌ها را بررسی کنیم، نیاز به استفاده از توابع ذیل است.

×     List.Combine

این تابع برای ترکیب ۲ یا چند لیست با یکدیگر به‌صورت ذیل مورداستفاده قرار می‌گیرد.

List.Combine(lists as list) as list

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

حاصل این تابع برای حالت‌های متفاوت در جدول ذیل آورده شده است.

 

نتیجه فرمول

{۱,۲,۱,۴,۳}

= List.Combine({{1,2},{1,4,3}})

{۱,۲,۱,۳,۱,۳}

= List.Combine({ {1,2},{1,3},{1,3}})

×     List.Union

تابع List.Union  مشابه با تابع List.Combine به‌منظور ترکیب دو یا چند لیست مورداستفاده قرار می‌گیرد، با این تفاوت که خروجی این تابع فاقد داده تکراری بوده و در صورت تکرار یک مقدار در لیست‌های ورودی، آن مقدار تنها یک‌بار در لیست خروجی نمایش داده می‌شود. این تابع به‌صورت ذیل مورداستفاده قرار می‌گیرد.

List.Union(

       lists as list,

       optional equationCriteria as any

              ) as list

این تابع دو ورودی به شرح ذیل دریافت می‌کند.

  • ورودی اول این تابع بیانگر لیست مرجع که شامل لیست‌هایی است که می‌خواهیم با یکدیگر ادغام کنیم است.
  • در ورودی دوم این تابع معیار تساوی مقادیر تعریف می‌گردد.

ازاین‌رو نتیجه این تابع برای مثال‌های متفاوت به شرح ذیل است.

 

نتیجه فرمول

{۱,۲,۴,۳}

= List.Union({{1,2},{1,4,3}})

{۱,۲,۱,۴,۳}

= List.Union({{1,2,1},{1,4,3}})

{۱,۲,۳}

= List.Union({{1,2},{1,3},{1,3}})

 

×     List.Intersect

تابع List.Intersect جهت استخراج مقادیر مشترک در دو یا چند لیست به‌صورت ذیل مورداستفاده قرار می‌گیرد.

List.Intersect(

       lists as list,

       optional equationCriteria as any

              ) as list

خروجی آن شامل داده‌هایی ی باشد که در تمامی لیست‌های واردشده به‌عنوان ورودی تکرار شده باشند.

این تابع دو ورودی به شرح ذیل دریافت می‌کند.

  • ورودی اول آن بیانگر یک لیست مرجع شامل مجموعه لیست‌هایی که می‌خواهیم اشتراک آن‌ها را محاسبه کنیم است.
  • ورودی دوم این تابع اختیاری بوده و بیانگر معادله تساوی مقادیر است.

با توجه به توضیحات فوق، نتیجه این تابع برای حالت‌های مختلف به شرح ذیل است.

 

فرمول نتیجه

= List.Intersect({{1..4},{2..5}})

{۲,۳,۴}

= List.Intersect({{1..4},{2..5},{3..6}})

{۳,۴}

×     List.Difference

تابع List.Difference به‌منظور محاسبه اختلاف دو لیست به‌صورت ذیل مورداستفاده قرار می‌گیرد و همواره نتیجه آن برابر با یک لیست از داده‌هایی است که در لیست اول وجود دارند اما در لیست دوم وجود ندارند.

List.Difference(

       list1 as list,

       list2 as list,

       optional equationCriteria as any

              ) as list

این تابع سه ورودی به شرح ذیل دریافت می‌کند.

  • لیست اول
  • لیست دوم
  • ورودی سوم این تابع که اختیاری است، بیانگر معیار تساوی دو داده است.

بر اساس این توضیحات حاصل این تابع برای حالت‌های متفاوت ورودی به شرح ذیل است.

 

فرمول نتیجه

= List.Difference({1..10},{3..12})

{۱,۲}

= List.Difference({3..12},{1..10})

{۱۱,۱۲}

= List.Difference({3..12},{1..30})

{}

 

درباره‌ی امید معتمدی

محقق، مدرس، نویسنده و مشاور در حوزه تحلیل داده

دیدگاهتان را بنویسید

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.