Search

วิศวกรรีพอร์ต

Make your reports better with shorter time

RANK.EQ กับ RANK.AVG ใช้ฟังก์ชันไหนดี?

“อยากรู้ว่ายอดขายลูกค้าเจ้านี้จัดเป็นลำดับที่เท่าไร ทำไงดี?”

“ใน Excel มีฟังก์ชั่นช่วยหาลำดับของข้อมูลได้ครับ”

“มันมีฟังก์ชั่น RANK ตั้ง 3 ตัว ต้องใช้ตัวไหนอ่ะ?”

เจ้า 3 ตัวที่พี่เค้าพูดถึง หมายถึง 3 ตัวนี้ครับ

rank_3type_161028

“ใช้ RANK.EQ ครับพี่”

“แล้วทำไมไม่ใช้ RANK (เฉยๆ) ล่ะ?”

“RANK มันเป็นฟังก์ชั่นของเวอร์ชั่นตั้งแต่ 2007 ลงไปครับ ตอนนี้พี่ใช้เอ็กเซลเวอร์ชั่น 2010 แล้ว ใช้ RANK.EQ ดีกว่าครับ”

RANK_OldVersion_161027.png

“แล้วมันต่างกับ RANK.AVG ยังไงอ่ะ?”

เป็นคำถามที่ดีมาก

ถ้าลองเปิด Help ดู ไมโครซอฟต์เค้าอธิบาย RANK.EQ ไว้แบบนี้ครับ

RANK.EQ function – Office Support

Returns the rank of a number in a list of numbers. Its size is relative to other values in the list; if more than one value has the same rank, the top rank of that set of values is returned.

 

ส่วน RANK.AVG ไมโครซอฟต์เค้าอธิบายไว้แบบนี้ครับ

RANK.AVG function – Office Support

Returns the rank of a number in a list of numbers: its size relative to other values in the list; if more than one value has the same rank, the average rank is returned.

 

ถ้าใครอ่านแล้วงง (เหมือนผม T_T) ขออธิบายด้วยตัวอย่างนี้ครับ เข้าใจแน่นอน ^__^

สมมติว่าเรามีข้อมูลแบบนี้

RANK_RawData_161028.png

ถ้าสังเกตดีๆ จะพบว่ามีตัวเลขแค่ 7 ตัว

คือมีแค่ 1, 2, 3, 4, 5, 6, 7

แต่เลข 2 ซ้ำกัน 4 ตัว

จำนวนตัวเลขทั้งหมดจึงกลายเป็น 10 ตัว

ถ้าเราใช้ฟังก์ชั่น RANK.EQ และ RANK.AVG ผลลัพธ์ที่ได้จะต่างกันแบบนี้ครับ

RANK_Comparison.png

จะเห็นว่า ถ้าใช้ฟังก์ชั่น RANK.EQ กับ 2 ผลลัพธ์ที่ได้จะเท่ากับ 6

แต่ถ้าใช้ฟังก์ชั่น RANK.AVG กับ 2 ผลลัพธ์ที่ได้จะเท่ากับ 7.5

ทำไมจึงเป็นเช่นนั้น?

คำตอบก็คือความแตกต่างของ RANK.EQ และ RANK.AVG นั่นเองครับ

ถ้าเป็น RANK.EQ กรณีที่มีค่าซ้ำกัน มันจะส่งค่าดีที่สุดของลำดับที่ซ้ำกันกลับมา

แต่ถ้าเป็น RANK.AVG กรณีที่มีค่าซ้ำกัน มันจะส่งค่าเฉลี่ยของลำดับที่ซ้ำกันกลับมา

จากข้อมูลที่ให้มามีทั้งหมด 10 ค่า

1 คือข้อมูลที่มีค่าน้อยที่สุด เพราะฉะนั้นลำดับของ 1 คือ 10

2 มีซ้ำกัน 4 ค่า เพราะฉะนั้น ลำดับที่ได้คือ 9, 8, 7 , 6

ถ้าใช้ RANK.EQ มันจะส่งค่าที่ดีที่สุดกลับมา ซึ่งค่าที่ดีที่สุดของ 9, 8, 7, 6 ก็คือ 6 นั่นเอง!!

แต่ถ้าใช้ RANK.AVG มันจะส่งค่าเฉลี่ยของลำดับที่ซ้ำกันกลับมา โดยคิดค่าเฉลี่ยแบบนี้ครับ

=(9+8+7+6)/4

= 7.5 !!

ในทางปฏิบัติแล้ว น่าจะต้องการคำตอบเป็น 6  (ความคิดแว่บแรกของคนเรา) เราจึงใช้ RANK.EQ กันเสียเป็นส่วนใหญ่

แต่ก็อาจมีเคสที่ต้องการคำตอบเป็น 7.5 บ้าง เอ็กเซลก็เลยจัด RANK.AVG สำหรับเคสนั้น

ในแง่ของโครงสร้างนั้น ทั้ง 2 ฟังก์ชั่นใช้โครงสร้าง (ไวยากรณ์) เดียวกัน คือ

=RANK.EQ( ค่าที่ต้องการรู้ลำดับ , ข้อมูลทั้งหมด , [ประเภทของลำดับ] )

rank_withformula_rank-eq

โดย [ประเภทของลำดับ] นั้นมี 2 แบบ คือ 0 และ 1 (รวมถึงเลขอื่นๆที่ไม่ใช่ 0)

0 คือให้เรียงลำดับจาก มาก ไปหา น้อย

1 คือให้เรียงลำดับจาก น้อย ไปหา มาก (ถ้าใส่เป็นเลขอื่นๆที่ไม่ใช่ 0 ก็จะได้ผลลัพธ์เหมือน 1 เช่น ใส่ 25 ก็จะได้การเรียงลำดับจากน้อยไปหามากเหมือน 1)

ในกรณีที่เราไม่ใส่ [ประเภทของลำดับ] ลงไปในสูตร หรือใส่ ค่าที่ต้องการรู้ลำดับ กับ ข้อมูลทั้งหมด  แค่ 2 อย่างแล้วปิดวงเล็บเลย (เช่น ตัวอย่างข้างบน) เอ็กเซลจะ “ติ๊ต่าง” ว่าเราต้องการให้เรียงข้อมูลจาก มาก ไปหา น้อย (เสมือนว่าใส่ [ประเภทของลำดับ] เป็น 0)

ลองดูตัวอย่างจากภาพด้านล่างได้เลยครับ

RANK_Descending_Ascending_161028.png

ไม่ยากใช่ไหมครับ ^__^

ส่วนฟังก์ชั่น RANK (ไม่มี .EQ หรือ .AVG ต่อท้าย) วิธีการใช้และผลลัพธ์เหมือนกับ RANK.EQ แต่อาจมีบั๊กนิดหน่อย ไมโครซอฟต์จึงพัฒนาเป็นฟังก์ชั่น RANK.EQ และ RANK.AVG แทน

อ้อ! ถ้านำไฟล์ที่มีฟังก์ชั่น RANK.EQ หรือ RANK.AVG ไปเปิดด้วยเอ็กเซลเวอร์ชั่นตั้งแต่ 2007 ลงไป จะมีปัญหานะครับ เพราะเวอร์ชั่นเหล่านั้นยังไม่มี 2 ฟังก์ชั่นนี้

แต่ในอนาคต ไมโครซอฟต์อาจตัดฟังก์ชั่น RANK ทิ้งไปนะครับ (ตอนนี้ยังปล่อยให้ลอยนวลอยู่) ทางที่ดีหันมาใช้ RANK.EQ หรือ RANK.AVG ดีกว่าครับ

เค้าขู่ไว้แบบนี้ครับ

RANK function – Office Support

Important: This function has been replaced with one or more new functions that may provide improved accuracy and whose names better reflect their usage. Although this function is still available for backward compatibility, you should consider using the new functions from now on, because this function may not be available in future versions of Excel.

 

น่ากลัวอ่ะ…

ใช้ RANK.EQ ก็ได้(ฟะ) ^__^

.

หากคุณชอบบทความแนวนี้ สามารถอัพเดตบทความใหม่ๆโดยคลิก Like เฟสบุ๊คแฟนเพจ วิศวกรรีพอร์ต หรือคลิก ที่นี่

อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^_^

 

 

 

2 thoughts on “RANK.EQ กับ RANK.AVG ใช้ฟังก์ชันไหนดี?

Add yours

  1. เรียน วิศวกรรีพอร์ต

    ขอบคุณค่ะ สำหรับข้อมูลดีๆ

    ปณิธี

    ________________________________

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: