จัดลำดับที่สอบได้ของนักเรียนง่าย ๆ ใน 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()

เมื่อเรียนรู้รูปแบบการใช้งานฟังก์ชัน 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 แบบไม่ข้ามลำดับ