List.Select จะรับ List และฟังก์ชันเงื่อนไข (selection as function) โดยจะประเมินฟังก์ชันเงื่อนไขกับสมาชิกแต่ละตัว หากฟังก์ชันคืนค่า true จะเก็บสมาชิกนั้นไว้ใน List ใหม่ หากคืนค่า false จะถูกคัดทิ้งไป
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| list | list | List ที่ต้องการกรอง |
| selection | function | ฟังก์ชันเงื่อนไขที่คืนค่า true/false (มักใช้ ‘each …’) |
List.Select ใช้สำหรับกรองสมาชิกใน List โดยประเมินฟังก์ชันเงื่อนไขกับแต่ละสมาชิก เก็บเฉพาะสมาชิกที่คืนค่า true
ที่เจ๋งคือ List.Select ทำให้โค้ดอ่านง่ายมากเมื่อต้องทำความสะอาดข้อมูล เช่น กรองตัวเลขบวก ลบช่องว่าง หรือเลือกเฉพาะสมาชิกที่ตรงเงื่อนไข ใช้ได้กับ List ที่มีประเภทข้อมูลใดก็ได้
ส่วนตัวผมชอบใช้ List.Select คู่กับ each เพื่อเขียน filter condition แบบสั้นๆ สำหรับข้อมูลที่ซับซ้อน เช่นกรองแต่เฉพาะ Records ที่มี Status = “Active” ได้เลย ทำให้โค้ดสะอาดและอ่านง่ายมากครับ
กรอง List ของตัวเลข เพื่อเลือกเก็บเฉพาะตัวเลขคู่
เมื่อ List มี Record (เช่น Table.ToRecords) สามารถเลือกเฉพาะ Record ที่คอลัมน์ [Status] = 'Active'
กรองเฉพาะตัวเลขที่มากกว่า 0 จากลิสต์ _ หมายถึงสมาชิกปัจจุบันในลิสต์
เลือกสมาชิกข้อความที่ขึ้นต้นด้วยตัว 'A' โดยใช้ Text.StartsWith
กรองวันหยุดสุดสัปดาห์โดยใช้ Date.DayOfWeek ตรวจสอบว่าวันนั้นตรงกับ Saturday (5) หรือ Sunday (6)
กรอง Records ที่ Status = 'Active' และ Purchases > 100 โดยรวมหลายเงื่อนไขด้วย 'and'
List.Select ใช้กรองสมาชิกใน List ส่วน Table.SelectRows ใช้กรองแถวใน Table หลักการทำงานคล้ายกันแต่ใช้กับ Structure ของข้อมูลที่ต่างกัน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ List.Select จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
List.AllTrue คืนค่า true หากทุกเงื่อนไขใน List เป็นจริงทั้งหมด
List.Alternate ใช้สร้าง List ใหม่โดยการสลับระหว่างการข้าม (Skip) และการเก็บ (Take) สมาชิกจาก List ต้นฉบับ สามารถกำหนดจำนวนที่จะข้าม จำนวนที่จะเก็บ และจุดเริ่มต้นได้
List.Buffer เก็บรายการข้อมูลไว้ในหน่วยความจำเพื่อเพิ่มประสิทธิภาพเมื่อต้องเข้าถึงรายการเดียวกันหลายครั้ง ฟังก์ชันนี้มีประโยชน์เมื่อต้องใช้ผลลัพธ์จากการคำนวณซ้ำๆ หรือเมื่อต้องการลดจำนวนการเข้าถึงแหล่งข้อมูลภายนอก
List.FindText ค้นหาสมาชิกในรายการที่มีข้อความย่อยที่กำหนด เหมาะเมื่อต้องการกรองข้อมูลไม่ใช่แค่ตรงแม่นทั้งคำ แต่ต้องการค้นหาแบบบางส่วนก็ได้
List.First ใช้เพื่อดึงค่าสมาชิกตัวแรกจาก List หากเอา List ว่างเปล่า ให้ใช้ค่า Default ปกป้อง
List.FirstN จะคืน List ใหม่ที่มีสมาชิก N ตัวแรกจาก List ต้นฉบับ สามารถระบุจำนวน N ด้วยตัวเลข หรือกำหนดเป็นฟังก์ชันเงื่อนไขเพื่อให้ดึงสมาชิกที่ตรงเงื่อนไขจากจุดเริ่มต้นไปเรื่อยๆ จนกว่าเงื่อนไขจะไม่เป็นจริง
List.LastN จะคืน List ใหม่ที่มีสมาชิก N ตัวสุดท้ายจาก List ต้นฉบับ สามารถระบุจำนวน N ด้วยตัวเลข หรือกำหนดเป็นฟังก์ชันเงื่อนไขเพื่อให้ดึงสมาชิกที่ตรงเงื่อนไขจากจุดสิ้นสุดย้อนกลับไปเรื่อยๆ จนกว่าเงื่อนไขจะไม่เป็นจริง
List.MatchesAll คืนค่า true หากสมาชิกทุกตัวใน List ผ่านเงื่อนไขที่กำหนด
List.Mode หาค่าที่ปรากฏบ่อยที่สุดในรายการ (Mode คือค่าที่เกิดขึ้นมากที่สุด) ใช้สำหรับการวิเคราะห์ข้อมูล สถิติ และการหาแนวโน้มกลาง
List.Modes หารายการของค่าทั้งหมดที่ปรากฏบ่อยที่สุดในรายการ หากมีหลายค่าที่เกิดขึ้นจำนวนครั้งเท่ากัน จะคืนค่าทั้งหมด
List.NonNullCount นับจำนวนของค่าในรายการที่ไม่เป็น null ใช้สำหรับการวิเคราะห์ข้อมูลและการตรวจสอบความเสมบูรณ์ของข้อมูล
List.Percentile คำนวณค่า percentile ของรายการตัวเลข ใช้สำหรับการวิเคราะห์ข้อมูล การหากลุ่มควอร์ไทล์ และการประเมินการกระจายตัวของข้อมูล
List.PositionOfAny หาตำแหน่งแรกของค่าใดค่าหนึ่งจากชุดค่าที่ระบุในรายการ ใช้สำหรับการค้นหาและการจัดการรายการข้อมูล
List.Positions หารายการของตำแหน่งทั้งหมดของค่าที่ระบุในรายการ ใช้สำหรับการค้นหาและการกำหนดตำแหน่งข้อมูล
List.Random สร้างรายการของตัวเลขสุ่มจำนวนที่ระบุ ใช้สำหรับการสุ่มตัวอย่าง การทดลอง และการสร้างข้อมูลทดสอบ
List.RemoveFirstN ลบจำนวน N รายการแรกจากรายการข้อมูล ใช้สำหรับการสุ่มตัวอย่าง การแยกข้อมูล และการตัดหัวข้อของรายการ
List.RemoveItems จะคืน List ใหม่ที่ไม่มีสมาชิกที่ตรงกับสมาชิกใน removeItems List โดยการเปรียบเทียบจะเป็นแบบ Case Sensitive และตรงกันทุกประการ (Ordinal Comparison)
List.RemoveLastN ลบจำนวน N รายการสุดท้ายจากรายการข้อมูล ใช้สำหรับการตัดข้อมูลท้าย การแยกข้อมูล และการจัดการรายการ
List.RemoveMatchingItems จะคืน List ใหม่ที่ไม่มีสมาชิกที่ตรงกับสมาชิกใน removeItems List โดยใช้ Comparer ที่กำหนด เช่น Comparer.OrdinalIgnoreCase เพื่อลบรายการแบบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ ซึ่งเป็นจุดเด่นที่ทำให้ฟังก์ชันนี้ยืดหยุ่นกว่า List.RemoveItems
List.RemoveNulls ลบค่า null ทั้งหมดจากรายการ ใช้สำหรับการทำความสะอาดข้อมูล การลบข้อมูลที่หายไป และการเตรียมข้อมูล
List.RemoveRange ลบรายการจำนวนที่ระบุโดยเริ่มจากตำแหน่งที่ระบุ ใช้สำหรับการตัดข้อมูล การจัดการรายการ และการแยกข้อมูล
List.ReplaceMatchingItems แทนที่รายการที่ตรงกับเงื่อนไขด้วยค่าใหม่ ใช้สำหรับการแปลงข้อมูล การแทนที่มูลค่า และการทำความสะอาดข้อมูล
List.ReplaceRange แทนที่รายการในช่วงที่ระบุด้วยรายการใหม่ ใช้สำหรับการแก้ไขข้อมูล การจัดการรายการ และการอัปเดตข้อมูล
ประเภทการแจงนับ (Enumeration Type) สำหรับกำหนดประเภทการควบคุมการเข้าถึงข้อมูล ใช้ในการพัฒนาตัวเชื่อมต่อ Power Query แบบกำหนดเอง
List.SingleOrDefault คืนค่าเดียวจากรายการ หรือค่าเริ่มต้นหากไม่พบหรือมีมากกว่า 1 ค่า ใช้สำหรับการดึงข้อมูลเดียว
List.Split แบ่งรายการให้เป็นกลุ่มย่อยตามขนาดที่ระบุ ใช้สำหรับการจัดกลุ่มข้อมูล การแบ่งหน้า และการประมวลผลแบทช์
List.StandardDeviation คำนวณส่วนเบี่ยงเบนมาตรฐานของรายการตัวเลข ใช้สำหรับการวิเคราะห์ข้อมูล สถิติ และการวัดความเปลี่ยนแปลง
List.Sum รวมค่าตัวเลขทั้งหมดในรายการ โดยละเว้นค่า null โดยอัตโนมัติ ฟังก์ชันนี้เป็นพื้นฐานสำหรับการคำนวณสรุป การจำสรุป และการวิเคราะห์ข้อมูลในการแปลงข้อมูล
List.Times สร้างรายการของค่าเวลาที่มีช่วงเวลาเท่ากัน ใช้สำหรับการสร้างลำดับเวลา การวิเคราะห์อนุกรมเวลา และการสร้างข้อมูลทดสอบ
List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม
List.TransformMany ประมวลผลข้อมูลและคืนค่าผลลัพธ์ ใช้สำหรับการจัดการข้อมูล การแปลงข้อมูล และการวิเคราะห์
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่