تابع List.Alternate در پاورکوئری بهصورت ذیل تعریف میگردد، بهمنظور حذف و نگهداشت یک سری داده با یک الگوی خاص (مثلاً حذف یکی در میان دادهها) مورداستفاده قرار میگیرد.
List.Alternate( list as list, count as number, optional repeatInterval as nullable number, optional offset as nullable number ) as list |
این تابع چهار ورودی به شرح ذیل دریافت میکند.
- ورودی اول این تابع بیانگر لیست مرجع است.
- در ورودی دوم مشخص میکنیم در هر بار حذف چه تعداد از دادههای لیست حذف گردند.
- ورودی سوم این تابع اختیاری بوده و در آن مشخص میکنیم بعد از هر بار حذف چه تعداد از مقادیر در لیست نهایی باقی بمانند. در صورت وارد نکردن این ورودی، به معنی آن است که کلیه مقادیر تا انتهای لیست در خروجی باقی بمانند.
- این ورودی اختیاری بوده و با استفاده از آن مشخص میکنیم از چندمین کاراکتر از ابتدای لیست، این تابع اقدام به نگهداری دادهها بکند. برای مثال اگر در این ورودی عدد ۲ را وارد کنیم، به معنی آن است که دو داده ابتدایی لیست نگهداری شود (در خروجی نمایش داده شوند) و الگوی حذف و نگهداری دادهها از داده سوم شروع شود.
با توجه به توضیح فوق در فرمول ذیل گفتهشده است در لیست مرجع، فقط داده اول حذف شود و سایر دادهها به قوت خود باقی بمانند. لذا حاصل این فرمول برابر است با {۲٫٫۱۰}
= List.Alternate({1..10}, 1)
در فرمول ذیل کفتِ شده یکی در میان دادهها حذف شود. لذا حاصل فرمول برابر است با کلیه دادههای زوج درون لیست و برابر است با {۲,۴,۶,۸,۱۰}
= List.Alternate({1..10}, 1,1)
در فرمول ذیل گفتهشده است در هر مرحله یک رکورد حذف شود و دو رکورد بعدی باقی بماند و این زنجیره تا انتهای لیست ادامه پیدا کند، لذا حاصل فرمول عبارت است از:{۲,۳,۵,۶,۸,۹}
= List.Alternate({1..10}, 1,2)
و مثال ذیل برعکس مثال فوق بوده و در هر مرحله دو رکورد حذف میشود و رکورد بعدی باقی میماند، لذا حاصل فرمول ذیل برابر است با {۳,۶,۹}
= List.Alternate({1..10}, 2,1)
فرمول ذیل نیز مشابه با فرمول فوق بوده با این تفاوت که در فرمول ذیل محل شروع عملیات، دومین داده از لیست در نظر گرفته شده است. {۱,۲,۵,۸}
= List.Alternate({1..10}, 2,1,2)