คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ฟังก์ชันหน้าต่าง (Window) › RANK

RANK

DAX · Power BIฟังก์ชันหน้าต่าง (Window)ระดับกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชัน

อัปเดต 2 ต.ค. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop

เอกสารอ้างอิง: RANK (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)

RANK คืออะไร

คืนอันดับของแถวปัจจุบันในตารางที่เรียงตาม ORDERBY เลือกได้ว่าค่าเสมอกันให้ข้ามอันดับ (SKIP) หรือไม่ข้าม (DENSE)

ใช้เมื่อไหร่

  • จัดอันดับพนักงาน สินค้า หรือภาค ตามยอดขาย
  • จัดอันดับแยกกลุ่มด้วย PARTITIONBY

รูปแบบสูตร

RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
[ties]ไม่บังคับSKIP (ค่าเริ่มต้น) ข้ามอันดับเมื่อเสมอ, DENSE ไม่ข้าม
relationจำเป็นรายการที่จัดอันดับ เช่น ALLSELECTED('พนักงานขาย'[ชื่อพนักงาน])
orderByจำเป็นORDERBY([ยอดขาย], DESC) เรียงจากมากไปน้อย
[partitionBy]ไม่บังคับจัดอันดับแยกกลุ่ม

ลองเลย: อันดับยอดขายของพนักงาน

คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ชื่อพนักงาน] = "สุภาพร หงษ์ทอง"
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 29 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
อันดับยอดขายของพนักงาน
อันดับยอดขายของพนักงาน · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
พนักงานขายยอดขายอันดับยอดขาย
สุภาพร หงษ์ทอง
กมลชนก พงษ์พานิช
นันทิดา กิจเจริญ
อรทัย พิทักษ์วงศ์
ธีรพงษ์ ฉัตรแก้ว
วรวุฒิ แสงทอง
ปิยะนุช ศรีสวัสดิ์
ชยพล บุญมา
ยอดรวม
7อันดับยอดขาย · สุภาพร หงษ์ทอง · 2025
ดูทีละขั้นขั้น 3 / 3

ถ้าคุณเขียน Excel อยู่แล้ว

EXCEL=RANK.EQ(B2, $B$2:$B$9, 0)

Excel จัดอันดับจากช่วงตัวเลข

DAXอันดับยอดขาย = RANK(DENSE, ALLSELECTED('พนักงานขาย'[ชื่อพนักงาน]), ORDERBY([ยอดขาย], DESC))

จัดอันดับพนักงานที่เลือกอยู่ตามยอดขาย

ข้อผิดพลาดและเคล็ดลับ

แถวยอดรวมว่างเสมอ Microsoft Learn ระบุว่า RANK คืนค่าว่างในแถวยอดรวม
ถ้ามี Slicer ภาค อันดับจะเริ่มใหม่ในภาคที่เลือก เพราะ ALLSELECTED เก็บตัวกรองจาก Slicer ไว้ (ดูตัวอย่างในหน้า ROWNUMBER)
เทียบกับ RANKX: RANK เขียนสั้นกว่าและบอกลำดับด้วย ORDERBY ส่วน RANKX ต้องเขียนนิพจน์และ ALL เอง

แบบทดสอบ 3 ข้อ

1. RANK ในแถวยอดรวมได้อะไร

2. ยอดขาย 100, 90, 90, 80 แบบ DENSE คนที่ได้ 80 อยู่อันดับใด

3. ไม่ใส่ ties ใช้แบบใด

ไฟล์ฝึก RANK

9Expert-DAX-RANK-Practice-v1.0.xlsx

รุ่น 1.0 · 26/9/2026 · 70 KB · ไม่มี Macro · นำเข้า Power BI แล้วทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นยอดขายสินค้าพนักงานขายวันที่คงคลังเป้าภูมิภาคแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1[อันดับยอดขาย] อันดับยอดขายของพนักงานในกลุ่มที่เลือก (1 = สูงสุด) · กรอง พนักงานขาย = กมลชนก พงษ์พานิช, ปี = 2024
  2. ข้อ 2[อันดับยอดขาย] อันดับยอดขายของพนักงานในกลุ่มที่เลือก (1 = สูงสุด) · กรอง พนักงานขาย = ธีรพงษ์ ฉัตรแก้ว, ภูมิภาค = ตะวันออกเฉียงเหนือ, ปี = 2025
  3. ข้อ 3[ยอดขาย] ยอดขายของพนักงานที่กรอง · กรอง พนักงานขาย = อรทัย พิทักษ์วงศ์, ภูมิภาค = กลาง, ปี = 2025
  4. ข้อ 4[ยอดขาย] ยอดขายของพนักงานที่กรอง · กรอง พนักงานขาย = วรวุฒิ แสงทอง, ปี = 2024
  5. ข้อ 5[ยอดขาย] ยอดขายของพนักงานที่กรอง · กรอง ปี = 2025

ไปต่อ

อยากเขียน DAX สำหรับรายงานจริงทั้งระบบ

ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)

ดูหลักสูตร