SORTBY เรียงลำดับข้อมูลตาม Array อื่นที่กำหนด รองรับหลายระดับการเรียง (multi-level) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| array | Range/Array | Yes | ช่วงข้อมูลที่ต้องการเรียงลำดับ (return ทั้ง array นี้) | |
| by_array1 | Range/Array | Yes | คอลัมน์หรือ Array ที่ใช้เป็นเกณฑ์เรียงลำดับ (ต้องมีจำนวนแถวเท่ากับ array) | |
| sort_order1 | Number | Optional | 1 | ลำดับการเรียง: 1 = น้อยไปมาก (A-Z), -1 = มากไปน้อย (Z-A) |
| by_array2 | Range/Array | Optional | – | คอลัมน์ที่ 2 สำหรับ multi-level sort (เรียงหลังจาก by_array1) |
| sort_order2 | Number | Optional | 1 | ลำดับการเรียงสำหรับคอลัมน์ที่ 2 |
เรียงข้อมูลหลายระดับ เช่น เรียงตามแผนก A-Z แล้วเรียงตามเงินเดือนจากมากไปน้อยภายในแผนกเดียวกัน
เรียงตามลำดับที่กำหนดเอง เช่น Priority (Urgent, High, Normal, Low) โดยใช้ XMATCH
สร้างตารางอันดับที่อัปเดตอัตโนมัติเมื่อข้อมูลเปลี่ยน
SORTBY(Sales, Sales[Amount], -1)=SORTBY(Sales, Sales[Amount], -1)
ตารางเรียงตามยอดขายสูงสุด
SORTBY(Employees, Employees[Department], 1, Employees[Salary], -1)=SORTBY(Employees, Employees[Department], 1, Employees[Salary], -1)
เรียงตามแผนกแล้วเงินเดือน
SORTBY(Tasks, XMATCH(Tasks[Priority], {"Urgent";"High";"Normal";"Low"}))=SORTBY(Tasks, XMATCH(Tasks[Priority], {"Urgent";"High";"Normal";"Low"}))
เรียงตาม Priority ที่กำหนดเอง
SORTBY(Orders, Orders[OrderDate], -1)=SORTBY(Orders, Orders[OrderDate], -1)
คำสั่งซื้อล่าสุดอยู่บนสุด
SORTBY(FILTER(Sales, Sales[Region]="North"), FILTER(Sales[Amount], Sales[Region]="North"), -1)=SORTBY(FILTER(Sales, Sales[Region]="North"), FILTER(Sales[Amount], Sales[Region]="North"), -1)
กรอง North แล้วเรียง
SORTBY(Names, RANDARRAY(ROWS(Names)))=SORTBY(Names, RANDARRAY(ROWS(Names)))
รายชื่อสุ่มลำดับใหม่
SORT เรียงตามคอลัมน์ภายใน array (ระบุเป็นเลขคอลัมน์) ส่วน SORTBY เรียงตาม Array อื่นภายนอกได้ และรองรับ custom sort order ด้วย XMATCH
ใช้ XMATCH กับ Array ที่กำหนดลำดับเอง เช่น =SORTBY(Data, XMATCH(Data[Status], {“High”;”Medium”;”Low”})) จะเรียง High ก่อน แล้ว Medium แล้ว Low
รองรับได้สูงสุด 126 คู่ (by_array, sort_order) แต่ในทางปฏิบัติ 2-3 ระดับก็เพียงพอ
เกิดเมื่อ by_array มีจำนวนแถวไม่เท่ากับ array หลัก ต้องตรวจสอบให้ขนาดเท่ากัน
Microsoft 365, Excel 2021, Excel 2024, และ Excel for Web เป็น Dynamic Array Function
SORTBY เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลตามคอลัมน์หรือ Array อื่นที่กำหนด ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้ รองรับหลายระดับการเรียง (multi-level sort) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ผลลัพธ์เป็น Spill Range ที่อัปเดตอัตโนมัติ