تابع List.Select در پاورکوئری یکی از محبوبترین و قویترین توابع جهت استخراج دادههای مدنظر از درون یک لیست در پاورکوئری است و بهصورت ذیل تعریف میگردد:
List.Select( list as list, selection as function ) as list |
این تابع دو ورودی به شرح ذیل دریافت میکند و خروجی آن همواره یک لیست از دادهها است.
- در ورودی اول لیست مرجع که میخواهیم دادههای خاصی را از آن استخراجکنیم وارد میشود.
- در ورودی دوم شرط انتخاب دادهها از لیست مرجع بهصورت تابع تعریف میگردد. حالتهای مختلفی برای این ورودی میتوان تعریف نمود که در ادامه به بررسی بعضی از آنها پرداختهشده است.
برای مثال در فرمول List.Select({1..10},each _>5) لیست مرجع بهصورت لیست اعداد ۱ تا ۱۰ است و در آن تابع شرط بهصورت each _>5 تعریف شده است که به معنی آ« است که در دادههای مرجع اعداد بزرگتر از۵ در خروجی نمایش داده شود، لذا نتیجه این فرمول برابر با لیست {۶,۷,۸,۹,۱۰} است.
استفاده از این تابع ساده بوده و در جدول ذیل مثالهای مختلف از این تابع به همراه نتایج آن آورده شده است.
نتیجه | تابع |
{۶,۷,۸,۹,۱۰} |
= List.Select({1..10},each _>5) |
{۶,۷} |
= List.Select({1..10},each _>5 and _<8) |
{۱,۳,۵,۷,۹} |
= List.Select({1..10},each Number.IsOdd(_)) |
{۳,۶,۹} |
= List.Select({1..10},each Number.Mod(_,3)=0) |
{۱,۳} |
= List.Select({1,”a”,3,”x”,”n”},each Value.Is(_,type number)) |
در مثالهای فوق، شرط each Number.IsOdd(_) به معنی آن است که تنها دادههای فرد از درون لیست مرجع استخراج شوند، شرط each Number.Mod(_,3)=0 به معنی آن است که تنها اعداد مضرب ۳ از درون لیست استخراج شوند و نهایتاً شرط each Value.Is(_,type number) به معنی آن است که دادههای از جنس عدد از لیست مرجع استخراج شود.