Thep Excel

ORDERBY – กำหนดการเรียงลำดับใน Window Functions

ORDERBY ระบุ expression และทิศทางการเรียงลำดับ (ASC/DESC) สำหรับ window functions เพื่อกำหนดลำดับของแถวภายในกลุ่มที่แบ่งด้วย PARTITIONBY และทำงานร่วมกับ OFFSET/INDEX/WINDOW

=ORDERBY(<Expression>[, <Order>])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
5/10

Syntax & Arguments

=ORDERBY(<Expression>[, <Order>])

Argument Type Required Default Description
Expression expression Yes นิพจน์/คอลัมน์ที่ใช้จัดเรียง
Order text Optional ASC ทิศทางการเรียง (ASC หรือ DESC)

How it works

กำหนดลำดับเพื่อหาแถวก่อนหน้า/ถัดไป

ใช้ ORDERBY กับ OFFSET เพื่อเลื่อนตำแหน่งตามลำดับที่กำหนด

กำหนดลำดับเพื่อดึงอันดับที่ N

ใช้ ORDERBY กับ INDEX เพื่อดึงตำแหน่งคงที่ตามลำดับ

Examples

ตัวอย่างที่ 1: ใช้ ORDERBY กับ OFFSET (แนวคิด)
แถวก่อนหน้า (แนวคิด) = OFFSET( -1, SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]), ORDERBY([Sales], DESC) )
ORDERBY กำหนดลำดับภายใน relation แล้ว OFFSET เลื่อนตำแหน่งจากแถวปัจจุบันตามลำดับนั้น
DAX Formula:

=แถวก่อนหน้า (แนวคิด) =
OFFSET(
    -1,
    SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]),
    ORDERBY([Sales], DESC)
)

Result:

ได้ตารางที่เป็นแถวก่อนหน้าตามการเรียงยอดขายจากมากไปน้อย

ตัวอย่างที่ 2: ดึงอันดับ 1 ตามยอดขาย (แนวคิด)
อันดับ 1 (แนวคิด) = INDEX( 1, SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]), ORDERBY([Sales], DESC) )
INDEX ใช้ ORDERBY เพื่อกำหนดลำดับก่อน แล้วเลือกตำแหน่งที่ 1
DAX Formula:

=อันดับ 1 (แนวคิด) =
INDEX(
    1,
    SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]),
    ORDERBY([Sales], DESC)
)

Result:

ได้ตาราง 1 แถว (แถวอันดับ 1 ตามลำดับที่กำหนด)

ตัวอย่างที่ 3: เรียงหลายคีย์ (แนวคิด)
ORDERBY หลายคีย์ (แนวคิด) = ORDERBY( Sales[OrderDate], ASC, Sales[SalesAmount], DESC )
เมื่อมีค่าซ้ำในคีย์แรก การใส่คีย์รองช่วยให้ลำดับนิ่งขึ้น
DAX Formula:

=ORDERBY หลายคีย์ (แนวคิด) =
ORDERBY(
    Sales[OrderDate], ASC,
    Sales[SalesAmount], DESC
)

Result:

กำหนดลำดับหลักเป็นวันที่ แล้วรองเป็นยอดขาย

FAQs

ORDERBY ใช้เดี่ยว ๆ ได้ไหม?

โดยหลัก ORDERBY ใช้ภายใน window functions (เช่น OFFSET/INDEX/WINDOW) เพื่อบอกวิธีเรียงลำดับ ไม่ได้ใช้เป็น measure เดี่ยวเพื่อคืนผลลัพธ์เอง

ถ้าคีย์เรียงมีค่าซ้ำควรทำอย่างไร?

เพิ่มคีย์รองใน ORDERBY และ/หรือใช้ MATCHBY เพื่อระบุแถวให้ชัดเจนขึ้น

Resources & Related

Additional Notes

ORDERBY ใช้ภายในกลุ่ม Window Functions (เช่น OFFSET, INDEX, WINDOW) เพื่อกำหนด “ลำดับการเรียง” ของแถวภายในกลุ่ม (partition) โดยระบุ expression ที่ใช้เรียงและทิศทาง (ASC/DESC) ได้หลายคีย์

แนวคิดคือ: PARTITIONBY แบ่งกลุ่ม, ORDERBY เรียงลำดับในกลุ่ม, และ window functions จะใช้ลำดับนี้ในการเลือก/เลื่อนตำแหน่งแถว

Leave a Reply

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