เรียงลำดับสมาชิกในรายการตามเงื่อนไขที่กำหนด ไม่ว่าจะเป็นจากน้อยไปมากหรือมากไปน้อย
=List.Sort(list as list, optional comparisonCriteria as any) as list
=List.Sort(list as list, optional comparisonCriteria as any) as list
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| list | List | Yes | รายการที่ต้องการเรียงลำดับ เป็น List ที่มีข้อมูลเป็นหมายเลข ข้อความ วันที่ หรือค่าอื่นๆ ที่สามารถเปรียบเทียบได้ | |
| comparisonCriteria | Any | Optional | Order.Ascending | ตัวเลือกการเรียงลำดับ – สามารถเป็น Order.Ascending (ค่าเริ่มต้น) หรือ Order.Descending หรือฟังก์ชันเปรียบเทียบแบบกำหนดเอง ถ้าไม่ระบุ จะเรียงจากน้อยไปมากโดยอัตโนมัติ |
List.Sort({3, 1, 4, 1, 5, 9, 2})= List.Sort({3, 1, 4, 1, 5, 9, 2})
{1, 1, 2, 3, 4, 5, 9}
List.Sort({3, 1, 4, 1, 5, 9, 2}, Order.Descending)= List.Sort({3, 1, 4, 1, 5, 9, 2}, Order.Descending)
{9, 5, 4, 3, 2, 1, 1}
List.Sort({"zebra", "apple", "banana", "cherry"})= List.Sort({"zebra", "apple", "banana", "cherry"})
{"apple", "banana", "cherry", "zebra"}
let Numbers = {3, 1, 4, 1, 5, 9, 2}, SortByReciprocal = List.Sort(Numbers, (x, y) => Value.Compare(1/x, 1/y)) in SortByReciprocallet
Numbers = {3, 1, 4, 1, 5, 9, 2},
SortByReciprocal = List.Sort(Numbers, (x, y) => Value.Compare(1/x, 1/y))
in
SortByReciprocal
{9, 5, 4, 3, 2, 1, 1}
List.Sort เรียงค่าในรายการโดยตรง ส่วน List.SortBy ใช้เมื่อต้องเรียงตามค่าที่คำนวณหรือค่าช่องที่ระบุในตัวเลือก ตัวอย่าง: List.SortBy(listOfNumbers, each 1/_) เรียงตามค่าส่วนกลับ
ไม่แนะนำ List.Sort ออกแบบมาสำหรับเรียงค่าชนิดเดียวกัน ถ้ามีหมายเลขและข้อความปนกัน อาจเกิดข้อผิดพลาด ควรทำให้ข้อมูลเป็นชนิดเดียวกันก่อน
รายการว่าง {} จะคืน {} เสมอ ถ้ามี null ใน List คุณอาจต้องกรองออกก่อนเรียงหรือจัดการในฟังก์ชันเปรียบเทียบแบบกำหนดเอง
List.Sort ใช้ประสิทธิภาพเพียงพอสำหรับรายการที่มีหลักพัน หมื่น หรือแม้แต่แสนค่า ถ้าเรียงจำนวนมากมาย (เช่น ล้านค่า) อาจใช้เวลา แต่ยังรับได้ส่วนมาก
ฟังก์ชัน List.Sort ใช้สำหรับเรียงลำดับสมาชิกในรายการ (List) ตามลำดับที่ต้องการ เป็นเครื่องมือพื้นฐานที่มีประโยชน์เมื่อต้องจัดระเบียบข้อมูลตัวเลข ข้อความ หรือค่าใดๆ ที่สามารถเปรียบเทียบได้
ที่เจ๋งคือ List.Sort ยืดหยุ่นมาก – เราสามารถเรียงโดยค่าแรกๆ หรือกำหนดวิธีเปรียบเทียบแบบแนวทางเอง ตัวอย่างเช่น เรียงตามค่ากลับกัน (reciprocal) หรือเรียงตามเงื่อนไขที่ซับซ้อนโดยใช้ฟังก์ชันเปรียบเทียบ
ส่วนตัวผม มักใช้ List.Sort สำหรับการจัดระเบียบข้อมูลเบื้องต้น เช่น เรียงหมายเลขสั่งซื้อ คะแนนสอบ หรือชื่อตัวอักษรก่อนประมวลผลต่อไป ทำให้เห็นรูปแบบของข้อมูลได้ชัดเจนขึ้น 😎