توابع متعددی برای ادغام لیستها در پاورکوئری وجود دارد که در این بخش به توضیح آنها پرداختهشده است. علاوه بر توابع موجود، برای ترکیب دو لیست، میتوان بهراحتی آن دو را با عملگر & ترکیب نموده و آن دو را در زیر هم قرارداد لذا حاصل فرمول ذیل برابر است با ترکیب آن دو لیست و {۱,۲,۱,۴,۳}
={۱,۲} & {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}) |
{} |