
จัดลำดับที่สอบได้ของนักเรียนง่าย ๆ ใน Excel ด้วยฟังก์ชัน RANK()
สืบเนื่องจากบทความนี้ วิธีตัดเกรดนักเรียน ด้วย Excel ได้ทั้งเกรดแบบตัวเลขและตัวอักษร เมื่อตัดเกรดเสร็จแล้ว บรรดาครูอาจารย์ทั้งหลายก็คงต้องมีการจัดลำดับที่สอบได้ของนักเรียนกันใช่ไหมครับ จะได้รู้ว่าใครสอบได้ลำดับที่เท่าไหร่ น้อง ๆ นักเรียนจะได้กลับบ้านไปบอกผู้ปกครองอย่างภาคภูมิใจว่า พ่อจ๋าแม่จ๋า หนูสอบได้ที่ 1 ของห้องเลยจ้า
ครั้นเราจะมานั่งดูคะแนนนักเรียนทีละคน แล้วก็เทียบกันเอาว่าใครได้คะแนนสูงสุดต่ำสุดก็คงจะไม่ใช่เรื่องสนุก และคงน่าเบื่อ อีกทั้งอาจเกิดข้อผิดพลาดขึ้นได้ง่าย ๆ เป็นแน่แท้
ใน Excel มีฟังก์ชันสำหรับการจัดลำดับไว้ให้ใช้งาน ฟังก์ชันนั้นมีชื่อว่า RANK() ซึ่งเราสามารถนำฟังก์ชันนี้มาใช้ในการจัดลำดับสอบได้ของนักเรียนได้ครับ มาดูวิธีกันเลย
สมมติว่าเรามีคะแนนของนักเรียนซึ่งบันทึกอยู่ใน Excel เรียบร้อยแล้วดังภาพด้านล่าง

จากภาพตัวอย่าง คะแนนของนักเรียนเก็บอยู่ที่คอลัมน์ D และเราจะแสดงลำดับที่สอบได้ของนักเรียนไว้ที่คอลัมน์ F
เราจะจัดลำดับที่สอบได้ของนักเรียนโดยการนำคะแนนของนักเรียนทั้งหมดที่อยู่ในคอลัมน์ D มาเปรียบเทียบกันแล้วหาว่าคะแนนของนักเรียนในแถวนั้น ๆ อยู่ในลำดับที่เท่าไหร่เมื่อเทียบกับคะแนนของนักเรียนทั้งหมด โดยใช้ฟังก์ชัน RANK() หลักการก็มีประมาณนี้ครับ
ก่อนที่จะใช้งานฟังก์ชัน RANK() เรามาเรียนรู้รูปแบบหรือข้อบังคับของฟังก์ชันนี้กันก่อนนะครับ
รูปแบบการใช้งานฟังก์ชัน RANK() เป็นดังนี้
RANK(number, ref, [order])
- RANK() คือชื่อฟังก์ชัน
- number ข้อมูลที่จะนำไปใช้ในการจัดลำดับ
- ref ข้อมูลที่จะนำมาเปรียบเทียบ
- [order] ตัวเลขสำหรับกำหนดว่าจะให้เรียงลำดับจากมากไปหาน้อยหรือจากน้อยไปหามาก จะระบุหรือไม่ก็ได้
- 0 คือเรียงจากมากไปหาน้อย
- 1 คือเรียงจากน้อยไปหามาก
- ถ้าไม่ระบุ จะเรียงจากมากไปหาน้อยโดยอัตโนมัติ (เท่ากับระบุค่าเป็น 0 นั่นเอง)

เมื่อเรียนรู้รูปแบบการใช้งานฟังก์ชัน RANK() เป็นที่เรียบร้อยแล้ว เรามาเริ่มใช้งานกันเลยดีกว่า นักเรียนของเราสอบได้ลำดับที่เท่าไหร่กันบ้างก็จะได้รู้กัน

จากภาพตัวอย่าง นักเรียนของเรามีทั้งหมด 28 คน เราจะมาจัดลำดับให้นักเรียนคนแรกก่อน
คะแนนของนักเรียนคนแรกอยู่ที่เซลล์ D2 และเราจะแสดงลำดับที่สอบได้ของนักเรียนคนนี้ที่เซลล์ F2 ดังนั้น
ให้คลิกที่เซลล์ F2 แล้วเขียนสูตรดังนี้
=RANK(D2,D2:D29,0)
- D2 คือเซลล์ที่ใช้อ้างอิงคะแนนของนักเรียนคนที่เราจะนำไปจัดลำดับ
- D2:D29 คือเซลล์ที่อ้างอิงคะแนนของนักเรียนทั้งหมด รวมทั้งคะแนนของนักเรียนที่เราจะจัดลำดับด้วย
- 0 คือค่าที่บอกว่าให้เรียงลำดับจากคะแนนมากที่สุดไปหาน้อยที่สุด
เมื่อเขียนสูตรเสร็จแล้วกดปุ่ม Enter บนคีย์บอร์ดได้เลย
เราก็จะได้ผลลัพธ์เป็นที่เรียบร้อยแล้ว นักเรียนคนแรกของเราสอบได้ลำดับที่ 28 จากนักเรียนทั้งหมด 28 คนนั่นเองครับ กลับบ้านโดนแม่ตีแน่ ๆ เลย

ทีนี้สิ่งที่เราจะทำก็คือการคัดลอกสูตรไปใช้กับนักเรียนคนอื่น ๆ เพื่อจัดลำดับสอบได้ให้กับนักเรียนให้ครบทุกคน
แต่ก่อนที่จะคัดลอกสูตร เราต้องทำการแก้ไขบางจุดในสูตรก่อนนะครับ
ให้แก้ไขสูตรเป็นดังนี้
=RANK(D2,$D$2:$D$29,0)

- D2 คงไว้ตามเดิม ไม่ต้องแก้
- D2:D29 แก้เป็น $D$2:$D$29
- 0 คงไว้ตามเดิม ไม่ต้องแก้
D2 พารามิเตอร์ตัวแรก เป็นการอ้างอิงคะแนนของนักเรียนคนแรก เราไม่ต้องแก้ไขอะไร เมื่อคัดลอกสูตรไปวางยังเซลล์อื่น ค่านี้จะเปลี่ยนเป็น D3, D4, D5 ไปเรื่อย ๆ จนถึง D29 ซึ่งหมายถึงคะแนนของนักเรียนคนที่ 2, 3, 4 ไปเรื่อย ๆ จนถึงคะแนนของนักเรียนคนที่ 28
D2:D29 พารามิเตอร์ตัวที่ 2 เป็นการอ้างอิงคะแนนของนักเรียนทุกคนในห้อง ถ้าเราคัดลอกสูตรไปโดยไม่ได้ล็อคไว้ ตัวเลขหลัง D ก็จะเปลี่ยนไปเรื่อย ๆ เช่นกัน จะทำให้การทำงานของฟังก์ชันผิดพลาดและการจัดลำดับจะไม่ถูกต้อง เราจึงต้องแก้ไขเป็น $D$2:$D$29 ความหมายก็คือ ให้ล็อคแถวและคอลัมน์ที่อ้างอิงนี้ไว้เลย ไม่ว่าจะคัดลอกสูตรไปวางตรงไหน ค่านี้ก็จะไม่มีการเปลี่ยนแปลง
0 คือการเรียงลำดับจากมากไปน้อย อันนี้ก็ไม่จำเป็นต้องแก้ไข
เมื่อแก้ไขสูตรเสร็จแล้วให้คลิกที่เซลล์ D2 ให้มีกรอบสีเขียวล้อมรอบ (สถานะแอคทีฟ) แล้วเลื่อนเมาส์ไปชี้ที่มุมขวาด้านล่างของเซลล์ D2 ให้เคอร์เซอร์กลายเป็นเครื่องหมายบวก ➕ แล้วคลิกลากลงไปจนถึงเซลล์ D29 เพื่อคัดลอกสูตร

เพียงเท่านี้เราก็จะได้ลำดับที่สอบได้ของนักเรียนทั้งหมดแล้วครับ

มาถึงตรงนี้ก็ถือว่าเสร็จสิ้นการจัดลำดับที่สอบได้ของนักเรียนด้วยฟังก์ชัน RANK() แล้วครับ
ก่อนจบบทความ ขอทิ้งท้ายไว้เล็กน้อยนะครับ ขอให้สังเกตสูตรของเซลล์แรกกับสูตรของเซลล์สุดท้ายนิดหนึ่งนะครับ
สูตรของเซลล์แรก (นักเรียนคนแรก)
=RANK(D2,$D$2:$D$29,0)
สูตรของเซลล์สุดท้าย (นักเรียนคนสุดท้าย)
=RANK(D29,$D$2:$D$29,0)
สูตรที่ใช้ของนักเรียนคนแรกกับนักเรียนคนสุดท้ายจะต่างกันแค่พารามิเตอร์ตัวแรกตัวเดียว เพราะพารามิเตอร์ตัวแรกนี้จะอ้างอิงคะแนนของนักเรียนแต่ละคน จึงต้องเปลี่ยนไปเรื่อย ๆ (เปลี่ยนทุกคน)

ส่วนพารามิเตอร์ตัวอื่น ๆ ห้ามเปลี่ยนเด็ดขาด ต้องเหมือนกันทุกเซลล์ นั่นคือเหตุผลที่เราจำเป็นต้องล็อคแถวและคอลัมน์ของพารามิเตอร์ตัวที่ 2 นั่นเองครับ
ไม่มีอะไรมาก แค่อยากอธิบายครับ จบจริง ๆ แล้วครับ ขอให้มีความสุขกับการทำงานครับผม
ถ้าต้องการจัดลำดับแบบไม่มีการกระโดดข้ามลำดับในกรณีที่มีนักเรียนสอบได้ลำดับที่เดียวกันจำนวนหลายคน ให้เข้าไปอ่านบทความนี้นะครับ
จัดลำดับที่สอบได้ของนักเรียนใน Excel แบบไม่ข้ามลำดับ