Thep Excel

SORTBY – เรียงลำดับข้อมูลตามคอลัมน์อื่น

SORTBY เรียงลำดับข้อมูลตาม Array อื่นที่กำหนด รองรับหลายระดับการเรียง (multi-level) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้

=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)

By ThepExcel AI Agent
1 December 2025

Function Metrics


Popularity
8/10

Difficulty
5/10

Usefulness
9/10

Syntax & Arguments

=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

How it works

Multi-Level Sort

เรียงข้อมูลหลายระดับ เช่น เรียงตามแผนก A-Z แล้วเรียงตามเงินเดือนจากมากไปน้อยภายในแผนกเดียวกัน

Custom Sort Order

เรียงตามลำดับที่กำหนดเอง เช่น Priority (Urgent, High, Normal, Low) โดยใช้ XMATCH

Dynamic Ranking

สร้างตารางอันดับที่อัปเดตอัตโนมัติเมื่อข้อมูลเปลี่ยน

Examples

ตัวอย่างที่ 1: เรียงจากมากไปน้อย
SORTBY(Sales, Sales[Amount], -1)
เรียง Sales ตามคอลัมน์ Amount จากมากไปน้อย (-1) ได้ Spill Range
Excel Formula:

=SORTBY(Sales, Sales[Amount], -1)

Result:

ตารางเรียงตามยอดขายสูงสุด

ตัวอย่างที่ 2: Multi-Level Sort (2 ระดับ)
SORTBY(Employees, Employees[Department], 1, Employees[Salary], -1)
เรียงตาม Department A-Z ก่อน แล้วเรียงตาม Salary มากไปน้อยภายในแผนกเดียวกัน
Excel Formula:

=SORTBY(Employees, Employees[Department], 1, Employees[Salary], -1)

Result:

เรียงตามแผนกแล้วเงินเดือน

ตัวอย่างที่ 3: Custom Sort Order ด้วย XMATCH
SORTBY(Tasks, XMATCH(Tasks[Priority], {"Urgent";"High";"Normal";"Low"}))
XMATCH คืนตำแหน่ง (1,2,3,4) ตามลำดับที่กำหนด SORTBY ใช้ตำแหน่งนี้เรียง
Excel Formula:

=SORTBY(Tasks, XMATCH(Tasks[Priority], {"Urgent";"High";"Normal";"Low"}))

Result:

เรียงตาม Priority ที่กำหนดเอง

ตัวอย่างที่ 4: เรียงตามวันที่ล่าสุด
SORTBY(Orders, Orders[OrderDate], -1)
เรียงตาม OrderDate จากมากไปน้อย (-1) ทำให้วันที่ล่าสุดอยู่บนสุด
Excel Formula:

=SORTBY(Orders, Orders[OrderDate], -1)

Result:

คำสั่งซื้อล่าสุดอยู่บนสุด

ตัวอย่างที่ 5: FILTER + SORTBY
SORTBY(FILTER(Sales, Sales[Region]="North"), FILTER(Sales[Amount], Sales[Region]="North"), -1)
กรอง Region=North ก่อน แล้ว SORTBY เรียงตาม Amount (ต้อง FILTER ทั้ง array และ by_array)
Excel Formula:

=SORTBY(FILTER(Sales, Sales[Region]="North"), FILTER(Sales[Amount], Sales[Region]="North"), -1)

Result:

กรอง North แล้วเรียง

ตัวอย่างที่ 6: เรียงตาม Random (สุ่มลำดับ)
SORTBY(Names, RANDARRAY(ROWS(Names)))
ใช้ RANDARRAY สร้างเลขสุ่ม เรียงตามเลขสุ่มนี้ทำให้ได้ลำดับสุ่ม (กด F9 สุ่มใหม่)
Excel Formula:

=SORTBY(Names, RANDARRAY(ROWS(Names)))

Result:

รายชื่อสุ่มลำดับใหม่

FAQs

SORTBY ต่างจาก SORT อย่างไร?

SORT เรียงตามคอลัมน์ภายใน array (ระบุเป็นเลขคอลัมน์) ส่วน SORTBY เรียงตาม Array อื่นภายนอกได้ และรองรับ custom sort order ด้วย XMATCH

ทำ Custom Sort Order อย่างไร?

ใช้ XMATCH กับ Array ที่กำหนดลำดับเอง เช่น =SORTBY(Data, XMATCH(Data[Status], {“High”;”Medium”;”Low”})) จะเรียง High ก่อน แล้ว Medium แล้ว Low

เรียงหลายระดับได้สูงสุดกี่ระดับ?

รองรับได้สูงสุด 126 คู่ (by_array, sort_order) แต่ในทางปฏิบัติ 2-3 ระดับก็เพียงพอ

#VALUE! error เกิดจากอะไร?

เกิดเมื่อ by_array มีจำนวนแถวไม่เท่ากับ array หลัก ต้องตรวจสอบให้ขนาดเท่ากัน

SORTBY รองรับ Excel เวอร์ชันไหน?

Microsoft 365, Excel 2021, Excel 2024, และ Excel for Web เป็น Dynamic Array Function

Resources & Related

Additional Notes

SORTBY เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลตามคอลัมน์หรือ Array อื่นที่กำหนด ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้ รองรับหลายระดับการเรียง (multi-level sort) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ผลลัพธ์เป็น Spill Range ที่อัปเดตอัตโนมัติ

Leave a Reply

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