Thep Excel

SORT – ฟังก์ชันเรียงลำดับแบบสไปล์

SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่ต้องการ (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ต่างจาก SORTBY ที่ใช้คอลัมน์ภายนอกเป็นเกณฑ์

=SORT(array, [sort_index], [sort_order], [by_col])

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
8/10

Difficulty
4/10

Usefulness
9/10

Syntax & Arguments

=SORT(array, [sort_index], [sort_order], [by_col])

Argument Type Required Default Description
array Range/Array Yes ช่วงข้อมูลหรือ Array ที่ต้องการเรียงลำดับ
sort_index Number/Array Optional 1 เลขคอลัมน์ที่ใช้เรียง (1=คอลัมน์แรก) หรือ Array สำหรับ multi-level sort
sort_order Number/Array Optional 1 1 = น้อยไปมาก (A-Z), -1 = มากไปน้อย (Z-A) หรือ Array สำหรับ multi-level
by_col Boolean Optional FALSE FALSE = เรียงตามแถว (แนวตั้ง ค่าเริ่มต้น), TRUE = เรียงตามคอลัมน์ (แนวนอน)

How it works

จัดอันดับยอดขาย

เรียงยอดขายจากมากไปน้อยเพื่อหาท็อปเซลล์

เตรียมข้อมูลก่อน UNIQUE

เรียงข้อมูลก่อนส่งให้ UNIQUE เพื่อให้ผลลัพธ์ดูเป็นระเบียบ

เรียงตารางที่กรองแล้ว

ใช้ SORT คร่อม FILTER เพื่อเรียงผลลัพธ์ที่กรองแล้ว

Examples

ตัวอย่างที่ 1: เรียง A-Z (ค่าเริ่มต้น)
SORT(Products[Name])
เรียงคอลัมน์ Name จากน้อยไปมาก (A-Z) โดยใช้ค่าเริ่มต้น sort_order=1
Excel Formula:

=SORT(Products[Name])

Result:

{"Apple"; "Banana"; "Cherry"; "Date"}

ตัวอย่างที่ 2: เรียงตัวเลขจากมากไปน้อย
SORT(Sales[Amount], 1, -1)
sort_order=-1 เรียงจากมากไปน้อย ได้ยอดขายสูงสุดอยู่บนสุด
Excel Formula:

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

Result:

{5000; 3500; 2800; 1200; 500}

ตัวอย่างที่ 3: เรียงตารางตามคอลัมน์ที่ 3
SORT(Employees, 3, -1)
sort_index=3 ระบุคอลัมน์ที่ใช้เรียง (เงินเดือน) เรียงทั้งตารางโดย keep ทุกคอลัมน์
Excel Formula:

=SORT(Employees, 3, -1)

Result:

ตารางเรียงตามเงินเดือน (คอลัมน์ 3) มากไปน้อย

ตัวอย่างที่ 4: Multi-Level Sort (2 ระดับ)
SORT(Sales, {1,3}, {1,-1})
ใช้ Array: {1,3} = เรียงคอลัมน์ 1 แล้ว 3, {1,-1} = คอลัมน์ 1 A-Z, คอลัมน์ 3 มากไปน้อย
Excel Formula:

=SORT(Sales, {1,3}, {1,-1})

Result:

เรียง Region A-Z แล้ว Amount มาก→น้อย

ตัวอย่างที่ 5: FILTER + SORT
SORT(FILTER(Orders, Orders[Status]="Pending"), 2, -1)
กรอง Status=Pending ก่อน แล้ว SORT ตามคอลัมน์ที่ 2 (วันที่) จากมากไปน้อย
Excel Formula:

=SORT(FILTER(Orders, Orders[Status]="Pending"), 2, -1)

Result:

Orders ที่ Pending เรียงตามคอลัมน์ 2

ตัวอย่างที่ 6: SORT + INDEX ดึง Top N
INDEX(SORT(Products, 2, -1), SEQUENCE(5), {1,2})
SORT เรียงตามคอลัมน์ 2 (ยอดขาย) มากไปน้อย INDEX+SEQUENCE ดึง 5 แถวแรก (Top 5)
Excel Formula:

=INDEX(SORT(Products, 2, -1), SEQUENCE(5), {1,2})

Result:

Top 5 สินค้าขายดี (2 คอลัมน์)

FAQs

SORT ต่างจากการ Sort ในเมนูอย่างไร?

SORT เป็นสูตรที่ return Spill Range ใหม่ ไม่แก้ไขข้อมูลต้นฉบับ และอัปเดตอัตโนมัติ ส่วนการ Sort ในเมนูจัดเรียงข้อมูลจริงในตาราง

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

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

ทำ Multi-Level Sort ได้ไหม?

ได้ ใช้ Array สำหรับ sort_index และ sort_order เช่น =SORT(Data, {1,3}, {1,-1}) เรียงคอลัมน์ 1 ก่อน (A-Z) แล้วคอลัมน์ 3 (มากไปน้อย)

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

เกิดเมื่อเซลล์ด้านล่างไม่ว่าง ทำให้ผลลัพธ์ Spill ไม่ได้ ลบข้อมูลที่ขวางหรือย้ายสูตรไปที่ว่าง

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

Microsoft 365, Excel 2021, Excel 2024, และ Excel for Web เป็น Dynamic Array Function ไม่รองรับ Excel 2019 หรือเก่ากว่า

Resources & Related

Related posts

Additional Notes

SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่กำหนด (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ใช้ร่วมกับ FILTER UNIQUE เพื่อสร้างรายงานไดนามิก

Leave a Reply

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