Thep Excel

List.Sort – เรียงลำดับรายการ

เรียงลำดับสมาชิกในรายการตามเงื่อนไขที่กำหนด ไม่ว่าจะเป็นจากน้อยไปมากหรือมากไปน้อย

=List.Sort(list as list, optional comparisonCriteria as any) as list

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=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 หรือฟังก์ชันเปรียบเทียบแบบกำหนดเอง ถ้าไม่ระบุ จะเรียงจากน้อยไปมากโดยอัตโนมัติ

Examples

เรียงจำนวนแบบพื้นฐาน (น้อยไปมาก)
List.Sort({3, 1, 4, 1, 5, 9, 2})
เรียงรายการหมายเลขจากน้อยไปมาก ใช้ค่าเริ่มต้น Order.Ascending โดยไม่ต้องระบุ comparisonCriteria
Power Query Formula:

= List.Sort({3, 1, 4, 1, 5, 9, 2})

Result:

{1, 1, 2, 3, 4, 5, 9}

เรียงแบบมากไปน้อย
List.Sort({3, 1, 4, 1, 5, 9, 2}, Order.Descending)
ระบุ Order.Descending เพื่อเรียงจากค่ามากสุดลงไปน้อยสุด
Power Query Formula:

= List.Sort({3, 1, 4, 1, 5, 9, 2}, Order.Descending)

Result:

{9, 5, 4, 3, 2, 1, 1}

เรียงข้อความตามตัวอักษร
List.Sort({"zebra", "apple", "banana", "cherry"})
List.Sort ทำงานกับข้อความได้เช่นกัน เรียงตามลำดับตัวอักษรอัตโนมัติจากน้อยไปมาก
Power Query Formula:

= List.Sort({"zebra", "apple", "banana", "cherry"})

Result:

{"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 SortByReciprocal
ใช้ฟังก์ชันเปรียบเทียบสองพารามิเตอร์ (x, y) => Value.Compare(…) เพื่อเรียงตามค่าส่วนกลับ (reciprocal) ของหมายเลข ค่าน้อยที่สุดจึงอยู่ท้ายสุด
Power Query Formula:

let
    Numbers = {3, 1, 4, 1, 5, 9, 2},
    SortByReciprocal = List.Sort(Numbers, (x, y) => Value.Compare(1/x, 1/y))
in
    SortByReciprocal

Result:

{9, 5, 4, 3, 2, 1, 1}

FAQs

List.Sort กับ List.SortBy ต่างกันอย่างไร?

List.Sort เรียงค่าในรายการโดยตรง ส่วน List.SortBy ใช้เมื่อต้องเรียงตามค่าที่คำนวณหรือค่าช่องที่ระบุในตัวเลือก ตัวอย่าง: List.SortBy(listOfNumbers, each 1/_) เรียงตามค่าส่วนกลับ

สามารถเรียงรายการที่มีค่าชนิดต่างๆ ได้ไหม?

ไม่แนะนำ List.Sort ออกแบบมาสำหรับเรียงค่าชนิดเดียวกัน ถ้ามีหมายเลขและข้อความปนกัน อาจเกิดข้อผิดพลาด ควรทำให้ข้อมูลเป็นชนิดเดียวกันก่อน

ถ้ารายการว่าง (empty) หรือมี null ค่าจะเป็นอย่างไร?

รายการว่าง {} จะคืน {} เสมอ ถ้ามี null ใน List คุณอาจต้องกรองออกก่อนเรียงหรือจัดการในฟังก์ชันเปรียบเทียบแบบกำหนดเอง

เรียงได้เร็วแค่ไหนสำหรับรายการขนาดใหญ่?

List.Sort ใช้ประสิทธิภาพเพียงพอสำหรับรายการที่มีหลักพัน หมื่น หรือแม้แต่แสนค่า ถ้าเรียงจำนวนมากมาย (เช่น ล้านค่า) อาจใช้เวลา แต่ยังรับได้ส่วนมาก

Resources & Related

Additional Notes

ฟังก์ชัน List.Sort ใช้สำหรับเรียงลำดับสมาชิกในรายการ (List) ตามลำดับที่ต้องการ เป็นเครื่องมือพื้นฐานที่มีประโยชน์เมื่อต้องจัดระเบียบข้อมูลตัวเลข ข้อความ หรือค่าใดๆ ที่สามารถเปรียบเทียบได้

ที่เจ๋งคือ List.Sort ยืดหยุ่นมาก – เราสามารถเรียงโดยค่าแรกๆ หรือกำหนดวิธีเปรียบเทียบแบบแนวทางเอง ตัวอย่างเช่น เรียงตามค่ากลับกัน (reciprocal) หรือเรียงตามเงื่อนไขที่ซับซ้อนโดยใช้ฟังก์ชันเปรียบเทียบ

ส่วนตัวผม มักใช้ List.Sort สำหรับการจัดระเบียบข้อมูลเบื้องต้น เช่น เรียงหมายเลขสั่งซื้อ คะแนนสอบ หรือชื่อตัวอักษรก่อนประมวลผลต่อไป ทำให้เห็นรูปแบบของข้อมูลได้ชัดเจนขึ้น 😎

Leave a Reply

Your email address will not be published. Required fields are marked *