Function RANKX
ใช้สำหรับการหาลำดับ Expression ในแต่ละแถวของตารางที่กำหนด เช่น ต้องการดูว่าสินค้าใดขายดีในลำดับเท่าไหร่ตามยอดขาย เป็นต้น
รูปแบบของ Syntax
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
table คือ ชื่อของตารางที่มีข้อมูลเพื่อจะทำการหาลำดับ
expression คือ คำสั่ง expression ที่จะใช้ในการคืนค่า 1 ค่า (single scalar value) เพื่อทำการตรวจสอบแต่ละ Row ใน Table เพื่อดูค่าของลำดับ (Ranking)
value นั้น โดยส่วนใหญ่จะไม่ระบุค่านี้ จะใช้เมื่อมีการนำเอาค่าไปเปรียบเทียบเพิ่มเติม จะส่งผลต่อลำดับที่ได้
order คือ การระบุประเภทของการเรียงลำดับว่าจากมากไปน้อย หรือ จากน้อยไปมาก
0 หรือ FALSE คือเรียงจากมากไปน้อย โดยค่าที่มากสุดจะได้ RANKX เท่ากับ 1
(เป็นค่าตั้งต้น กรณีไม่ได้ระบุค่านี้)
1 หรือ TRUE คือเรียงจากน้อยไปมาก โดยค่าที่น้อยสุดจะได้ RANKX เท่ากับ 1
ties คือ กำหนดค่าจะให้เรียงลำดับในกรณีมีค่าเท่ากันอย่างไร โดยมีรูปแบบด้วยกัน 2 ลักษณะ คือ
Skip คือ หากมีค่าซ้ำในลำดับที่ 11 เหมือนกัน 5 รายการ ก็จะแสดงลำดับถัดไป คือ ลำดับที่ 16 (11+5)
(เป็นค่าตั้งต้น กรณีไม่ได้ระบุค่านี้)
Dense คือ หากมีค่าซ้ำในลำดับที่ 11 เหมือนกัน 5 รายการ ก็จะแสดงลำดับถัดไป คือ ลำดับที่ 12
การคืนค่า
ผลลัพธ์เป็นค่า 1 ค่า (single scalar value)
ตัวอย่างเช่น
หากเรามีข้อมูล Table Sales ในรูป

เราสามารถสร้าง Measure เพื่อคำนวณหาลำดับการขายในแต่ละ Product และในแต่ละ Category ได้ดังนี้
RankByCategory = RANKX(ALL(Sales[Category]),[Total Sales],,DESC)
//คำนวณลำดับยอดขายตามรายการสินค้า Category
RankByProduct = RANKX(ALL(Sales[ProductCode]),[Total Sales],,DESC)
//คำนวณลำดับยอดขายตามรายการสินค้า Product Code โดยหากมีลำดับเท่ากันจะข้ามลำดับที่ซ้ำไป เช่นในรูปมีสินค้าลำดับที่ 1 จำนวน 2 รายการ ก็จะแสดงลำดับถัดไปเป็นลำดับที่ 3 เป็นต้น
RankByProductDense = RANKX(ALL(Sales[ProductCode]),[Total Sales],,DESC,Dense)
//คำนวณลำดับยอดขายตามรายการสินค้า Product Code โดยหากมีลำดับเท่ากันจะไม่ข้ามลำดับ เช่นในรูปมีสินค้าลำดับที่ 1 จำนวน 2 รายการ ก็จะแสดงลำดับถัดไปเป็นลำดับที่ 2 เป็นต้น
โดย Total Sales = SUM(Sales[SaleAmount])

โดย Measure ดังกล่าวสามารถนำไปใช้คำนวณได้กับ Dimension ที่ต้องการ โดยดังแสดงในตัวอย่างนี้ อีกทั้งจะยังคงคำนวณอัตโนมัติ เมื่อมีการ Filter จาก Slicer อีกด้วย เช่น จากในภาพจะเป็นการคำนวณลำดับการขายสินค้า โดยแสดงเฉพาะ Beverages และ Meat/Poultry ตามที่มีการเลือก Slicer ของ Category ที่กำหนด
ตัวอย่างการใช้งาน RANKX











![Power BI Desktop [Infographic]](https://www.9experttraining.com/sites/default/files/styles/large_cover/public/articles/cover/Cover-Infographic-What-is-PowerBI1400x500-2.png)
