ตัวอย่างที่ 1: จัดอันดับสินค้าตามยอดขาย (พื้นฐาน)
Sales Rank = RANKX( ALL('Product'), [Total Sales] )
เลขลำดับ 1, 2, 3... ตามยอดขาย
จัดอันดับข้อมูลตามเงื่อนไขที่กำหนด (Ranking)
RANKX วนลูปในตารางที่กำหนด เพื่อคำนวณหาอันดับของรายการใน Row Context ปัจจุบัน โดยเปรียบเทียบกับรายการอื่นๆ ทั้งหมดในตารางนั้น
=RANKX(Table, Expression, [Value], [Order], [Ties])
=RANKX(Table, Expression, [Value], [Order], [Ties])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Table | table | Yes | ตารางข้อมูลที่ต้องการนำมาจัดอันดับ (ควรใช้ ALL หรือ ALLSELECTED เพื่อให้เห็นข้อมูลครบทุกแถว) | |
| Expression | scalar | Yes | สูตรที่ใช้คำนวณคะแนนเพื่อจัดอันดับ (เช่น [Total Sales]) | |
| Value | scalar | Optional | ค่าเจาะจงที่ต้องการหาอันดับ (ปกติมักเว้นว่างไว้ เพื่อให้ใช้นิพจน์ใน Expression แทน) | |
| Order | enum | Optional | DESC | DESC (มากไปน้อย – ค่า Default) หรือ ASC (น้อยไปมาก) |
| Ties | enum | Optional | Skip | วิธีจัดการอันดับเสมอ: Skip (1, 2, 2, 4) หรือ Dense (1, 2, 2, 3) |
จัดอันดับสินค้าขายดีที่สุด เพื่อแสดงในตารางหรือนำไปกรองเฉพาะ Top 10
ดูว่าสาขาไหนทำยอดได้ดีที่สุดในแต่ละเดือน
Sales Rank = RANKX( ALL('Product'), [Total Sales] )
เลขลำดับ 1, 2, 3... ตามยอดขาย
Dense Rank = RANKX( ALL('Product'), [Total Sales], , DESC, Dense )
1, 2, 2, 3 (แทนที่จะเป็น 1, 2, 2, 4)
Rank in Group = RANKX(
ALLEXCEPT('Product', 'Product'[Category]),
[Total Sales]
)
อันดับของสินค้า เทียบกับสินค้าอื่นใน Category เดียวกัน
เพราะคุณไม่ได้ใช้ ALL หรือ ALLSELECTED ในอาร์กิวเมนต์ Table ทำให้ RANKX มองเห็นแค่แถวปัจจุบันแถวเดียว จึงจัดอันดับได้ที่ 1 เสมอ ต้องเปิด Context ให้กว้างด้วย ALL
RANKX เป็นฟังก์ชันสำหรับจัดอันดับ (Ranking) ข้อมูลตามค่าที่เรากำหนด เช่น จัดอันดับสินค้าขายดี, จัดอันดับพนักงานยอดเยี่ยม
ฟังก์ชันนี้มีความยืดหยุ่นสูง สามารถเลือกวิธีเรียงลำดับ (มากไปน้อย/น้อยไปมาก) และวิธีจัดการเมื่อคะแนนเท่ากัน (Skip หรือ Dense) ได้