หาค่าสูงสุด-ต่ำสุดอันดับที่ 1,2,3,... บน Excel✅

1/31 แก้ไขเป็น

... อ่านเพิ่มเติมเวลาเจอโจทย์แนว “ต้องการหาพนักงานที่มีเงินเดือนต่ำสุดในตารางข้อมูล (table) ควรใช้สูตรใด?” จริง ๆ ทำได้หลายแบบ แต่ที่ฉันใช้ประจำและเข้าใจง่ายคือผสม 2 ขั้นตอน: (1) หา “ค่าต่ำสุด” ก่อน แล้ว (2) ดึง “ชื่อพนักงาน” ที่สัมพันธ์กับค่านั้นออกมา 1) หาค่าต่ำสุด/ค่าสูงสุดแบบอันดับ (Top/Bottom N) - ค่าสูงสุดอันดับที่ n: =LARGE(ช่วงตัวเลข, n) - ค่าต่ำสุดอันดับที่ n: =SMALL(ช่วงตัวเลข, n) ตัวอย่าง ถ้าคอลัมน์ Income อยู่ที่ C3:C7 - อันดับ 1 (มากสุด): =LARGE($C$3:$C$7,1) - อันดับ 2: =LARGE($C$3:$C$7,2) - อันดับ 1 (น้อยสุด): =SMALL($C$3:$C$7,1) ทริค: ถ้าทำตารางอันดับ 1,2,3 ไว้ในเซลล์ F2,F3,F4 ให้ใส่สูตรแบบอ้างอิง n ได้เลย เช่น =SMALL($C$3:$C$7, F2) แล้วลากลง เพื่อให้เปลี่ยนเป็นอันดับ 2,3 อัตโนมัติ 2) ดึง “ชื่อเดือน/ชื่อพนักงาน” ที่ตรงกับค่าสูงสุด-ต่ำสุด กรณีข้อมูลเป็นช่วงปกติ (เช่น Month อยู่คอลัมน์ B และ Income อยู่คอลัมน์ C) - หาเดือนที่ Income ต่ำสุด (อันดับ 1): =INDEX($B$3:$B$7, MATCH(SMALL($C$3:$C$7,1), $C$3:$C$7, 0)) หลักการคือ SMALL/LARGE ให้ “ตัวเลข” แล้ว MATCH หาแถวที่ตัวเลขนั้นอยู่ จากนั้น INDEX ไปดึงชื่อเดือน/ชื่อพนักงาน 3) ถ้าข้อมูลเป็น Table (แนะนำในงานจริง) สมมติ Table ชื่อว่า Table1 มีคอลัมน์ [Employee] และ [Salary] - เงินเดือนต่ำสุด: =MIN(Table1[Salary]) - ชื่อพนักงานเงินเดือนต่ำสุด: =INDEX(Table1[Employee], MATCH(MIN(Table1[Salary]), Table1[Salary], 0)) 4) ข้อควรระวังเรื่อง “ค่าซ้ำ” ถ้ามีพนักงานเงินเดือนต่ำสุดเท่ากันหลายคน สูตร MATCH จะคืนคนแรกที่เจอเท่านั้น ถ้าต้องการดึงออกมาทุกคน อาจต้องใช้ FILTER (ใน Excel รุ่นใหม่) เช่น =FILTER(Table1[Employee], Table1[Salary]=MIN(Table1[Salary])) 5) เช็กลิสต์เวลาสูตรไม่ทำงาน - ล็อกช่วงด้วย $ ให้ถูก (เช่น $C$3:$C$7) - ตัวเลขเป็น “ตัวเลขจริง” ไม่ใช่ข้อความ (ลองแปลงด้วย VALUE หรือเช็กการชิดขวา) - ถ้าใช้ Table ให้สะกดชื่อคอลัมน์ตรงเป๊ะ เช่น Table1[Salary] สรุปสั้น ๆ: ถ้าถามว่า “ควรใช้สูตรใด” สำหรับเงินเดือนต่ำสุดใน Table ฉันเริ่มจาก MIN เพื่อหาค่าต่ำสุด และใช้ INDEX+MATCH (หรือ FILTER) เพื่อดึงชื่อพนักงานที่ตรงกับค่านั้น—ทำได้ไวและเอาไปใช้กับค่าสูงสุด/อันดับที่ 1,2,3 ได้เหมือนกันเลย