[DAX] RANKx Function

สวัสดีครับทุกท่าน บทความนี้เป็นเรื่องเกี่ยวกับสูตร RANKX ซึ่งเป็นสูตรประเภท DAX ของ Power BI กัน แต่ท่านไหนที่ใช้ Excel อยู่ก็ศึกษากันได้นะครับ เพราะว่าสูตร DAX นี่ก็ใช้กับ Power Query ใน Excel เช่นกัน เรียกได้ว่าศึกษาครั้งเดียวได้นกสองตัว เอ้ยสองโปรแกรมเลยครับ ดีงามใช่ไหมครับ งั้นเรามาศึกษากันได้จากบทความนี้กันครับ

 

โครงสร้างสูตร RANKX

RANKX(ตาราง, ค่าคอลัมม์สำหรับเช็คอันดับ, [ค่าตรวจสอบอันดับ], [การเรียงอันดับ]. [หากเจอค่าเท่ากันแล้ว อันดับถัดไปให้ข้ามหรือนับอันดับต่อ])

ในแต่ละส่วนมีรายละเอียดดังนี้ครับ
**สัญลักษณ์ [] ครอบแปลว่าจะใส่หรือไม่ใส่ก็ได้

ตาราง >> ชื่อตาราง
ค่าคอลัมม์สำหรับเช็คอันดับ >> คอลัมม์ที่ไว้ตรวจสอบค่าว่าอยู่อันดับที่เท่าไหร่
[ค่าตรวจสอบอันดับ] >> เป็นเสมือน Key ไว้เทียบว่าค่านี้อยู่ในอันดับที่เท่าไหร่ของช่วงข้อมูล
[การเรียงอันดับ] >> เลือกใส่ระหว่าง ASC = ค่าน้อยที่สุดอยู่อันดับ 1 หรือ DESC = ค่ามากที่สุดอยู่อันดับ 1
[เมื่อเจอค่าเท่ากัน] >> เลือกใส่ระหว่าง SKIP = เมื่อเจอค่าเท่ากัน อันดับถัดไปจะข้ามอันดับไปเลย หรือ DENSE = ถ้าค่าเท่ากัน อันดับถัดไปจะเป็นอันดับต่อเนื่องปกติ

เรามาดูตัวอย่างเพื่อให้เข้าใจง่ายขึ้นกันครับ 

จากตัวอย่างนี้ เราจะมีชื่อสินค้า และยอดขายของแต่ละสินค้ากันครับ


และเมื่อเราใส่สูตร RANKX โดยใส่ค่า ชื่อตาราง, คอลัมม์ Sales และกำหนดค่าดังนี้
ASC > เพื่อค่า Sales น้อยที่สุดให้อยู่อันดับ 1
และ Dense > เมื่อเจอค่า Sales เท่ากันให้ อันดับถัดไปให้เรียงปกติ
เมื่อสังเกตตรงกรอบสีแดงจะพบว่า สินค้า e,f ที่มียอดเท่ากันอยู่อันดับ 5 เหมือนกัน และสินค้า g ที่อยู่อันดับถัดไปจะเป็นลำดับ 6 


มาดูอีกตัวอย่างกันนะครับ ตัวอย่างนี้จะสลับไปใช้อีกค่าหนึ่งดังนี้ครับ
DESC > ให้ Sales มากที่สุดเป็นอันดับ 1
SKIP > เมื่อเจอค่าเท่ากัน อันดับถัดไปให้ข้ามเท่ากับจำนวนที่มีการซ้ำกัน โดยตรงกรอบสีแดงจะเห็นว่าอันดับที่ 11 ไม่มีเพราะมีอันดับที่ 10 ซ้ำกันสองค่านั่นเองครับ
ส่วน  [ค่าตรวจสอบอันดับ] นั้นมีโอกาสใช้ค่อนข้างน้อยครับ อธิบายได้ว่า เมื่อเราเอาฟิลล์อื่นหรือค่าอื่นมาใส่ เช่น ค่า 1 สูตรจะเอาค่า 1 นี้ไปเทียบกับในตารางว่า 1 อยู่อันดับที่เท่าไหร่ ซึ่งจะได้ค่าเดี่ยวๆคือค่า 15 ดังตัวอย่างภาพด้านล่างครับ

 
ก็จบลงแล้วครับสำหรับสูตร RANKX ลองฝึกฝนลองใช้กันดูนะครับ แต่ถ้าหากมีคำถามหรือข้อสงสัย ก็สามารถพูดคุยได้ที่เพจ Ping2Share กันได้นะครับ แล้วพบกันใหม่ในบทความถัดไปนะครับ สวัสดีครับ

No Comments

Leave a Comment