หน้าแรก บทความ Microsoft
Microsoft

สูตร AVERAGEIF และ AVERAGEIFS หาค่าเฉลี่ยแบบมีเงื่อนไขใน Excel

เผยแพร่ 13 ส.ค. 69

เวลาต้องหาค่าเฉลี่ยแต่ไม่ใช่ค่าเฉลี่ยของข้อมูลทั้งหมด อยากเจาะเฉพาะบางหมวดหรือบางเงื่อนไข สูตร AVERAGE ธรรมดาจะช่วยไม่ได้แล้ว บทความนี้พาไปรู้จัก AVERAGEIF และ AVERAGEIFS สองสูตรที่ช่วยหาค่าเฉลี่ยแบบมีเงื่อนไข พร้อมตัวอย่างจำลองให้เห็นภาพจริงจากสถานการณ์ในชีวิตประจำวัน

AVERAGEIF คืออะไร ใช้งานยังไง

AVERAGEIF คือสูตรที่หาค่าเฉลี่ยของตัวเลข โดยนับเฉพาะแถวที่ตรงตามเงื่อนไขที่กำหนดไว้เท่านั้น รูปแบบสูตรคือ

=AVERAGEIF(range, criteria, [average_range])

โดย range คือช่วงข้อมูลที่จะใช้ตรวจสอบเงื่อนไข, criteria คือเงื่อนไขที่ต้องการ และ average_range คือช่วงตัวเลขที่จะเอามาหาค่าเฉลี่ย (ถ้าไม่ใส่ Excel จะใช้ range เดิมมาคำนวณเลย)

ตัวอย่างใช้งานจริง: หาค่าใช้จ่ายเฉลี่ยเฉพาะหมวด “อาหาร”

สมมติมีตารางบันทึกรายจ่ายประจำเดือนของครอบครัว อยากรู้ว่าเฉลี่ยแล้วจ่ายค่าอาหารครั้งละเท่าไหร่ โดยไม่นับหมวดอื่นปนเข้ามา

D2fx=AVERAGEIF(A2:A7,"อาหาร",B2:B7)
A B
1 หมวด จำนวนเงิน
2 อาหาร 350
3 ค่าน้ำค่าไฟ 1,200
4 อาหาร 250
5 เดินทาง 400
6 อาหาร 300
7 เดินทาง 150
8 300

สูตรจะไล่ดูคอลัมน์ A ทีละแถว เจอคำว่า “อาหาร” แถวไหนก็เอาตัวเลขในคอลัมน์ B ของแถวนั้นมารวมกันแล้วหารด้วยจำนวนแถวที่เจอ ได้ผลลัพธ์ 300 บาท ซึ่งเป็นค่าเฉลี่ยของ 350, 250 และ 300 เท่านั้น ไม่ปนกับหมวดค่าน้ำค่าไฟหรือค่าเดินทางเลย

AVERAGEIFS คืออะไร ต่างจาก AVERAGEIF ยังไง

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

=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

ตัวอย่างใช้งานจริง: หาคะแนนเฉลี่ยวิชาคณิตศาสตร์เฉพาะห้อง ม.1

สมมติมีตารางคะแนนสอบของนักเรียนหลายวิชาหลายห้อง อยากรู้คะแนนเฉลี่ยวิชาคณิตศาสตร์ เฉพาะนักเรียนห้อง ม.1 เท่านั้น

E2fx=AVERAGEIFS(C2:C7,A2:A7,"คณิตศาสตร์",B2:B7,"ม.1")
A B C
1 วิชา ห้อง คะแนน
2 คณิตศาสตร์ ม.1 78
3 คณิตศาสตร์ ม.2 65
4 วิทยาศาสตร์ ม.1 82
5 คณิตศาสตร์ ม.1 90
6 คณิตศาสตร์ ม.1 84
7 คณิตศาสตร์ ม.2 70
8 84

สูตรจะเช็คสองเงื่อนไขพร้อมกันคือ คอลัมน์ A ต้องเป็น “คณิตศาสตร์” และคอลัมน์ B ต้องเป็น “ม.1” แถวไหนตรงทั้งสองเงื่อนไขถึงจะถูกเอาคะแนนในคอลัมน์ C มาเฉลี่ย ได้ผลลัพธ์ 84 คะแนน ซึ่งเป็นค่าเฉลี่ยของ 78, 90 และ 84 เท่านั้น จะเห็นว่า AVERAGEIFS ใส่เงื่อนไขเพิ่มได้เรื่อยๆ เป็นคู่ criteria_range, criteria ต่อท้ายได้ไม่จำกัด ถ้าจะเช็คแค่เงื่อนไขเดียวก็ใช้ AVERAGEIF ตามปกติได้เลย ไม่จำเป็นต้องใช้ AVERAGEIFS ให้ซับซ้อนเกินความจำเป็น สำหรับใครที่ยังไม่คุ้นกับสูตรแบบมีเงื่อนไขมาก่อน แนะนำให้อ่านพื้นฐานที่ SUMIF, COUNTIF และ IF สูตรเงื่อนไขที่ต้องรู้ ก่อน จะช่วยให้เข้าใจ AVERAGEIF/AVERAGEIFS ได้เร็วขึ้นเพราะใช้หลักการเดียวกัน

ข้อควรระวังที่เจอบ่อย

มีจุดที่มักพลาดกันบ่อยเวลาใช้ AVERAGEIF และ AVERAGEIFS ดังนี้

ปัญหา สาเหตุ/วิธีแก้
ขึ้น #DIV/0! ไม่มีแถวไหนตรงเงื่อนไขเลย ทำให้หารด้วยศูนย์ ควรครอบด้วย IFERROR เช่น =IFERROR(AVERAGEIF(A2:A7,"เครื่องดื่ม",B2:B7),"ไม่มีข้อมูล") อ่านวิธีใช้เพิ่มเติมได้ที่ สูตร IFERROR ดักจับ Error ใน Excel
ใช้ wildcard ในเงื่อนไขข้อความ ใส่ * แทนตัวอักษรกี่ตัวก็ได้ เช่น "อาหาร*" จะจับคำที่ขึ้นต้นด้วย “อาหาร” ทั้งหมด และใช้ ? แทนตัวอักษร 1 ตัว เช่น "ห้อง?"
average_range กับ range ขนาดไม่เท่ากัน ต้องเลือกช่วงให้มีจำนวนแถวเท่ากันเสมอ ไม่งั้นผลลัพธ์จะคลาดเคลื่อนหรือ Error

สรุป

AVERAGEIF ใช้เมื่อต้องการหาค่าเฉลี่ยแบบมีเงื่อนไขเดียว ส่วน AVERAGEIFS ใช้เมื่อต้องเช็คหลายเงื่อนไขพร้อมกัน โดยจำไว้ว่า AVERAGEIFS จะสลับเอา average_range มาไว้ตำแหน่งแรกสุดต่างจาก AVERAGEIF เข้าใจหลักการนี้แล้วจะนำไปปรับใช้กับงบรายจ่าย คะแนนสอบ หรือข้อมูลอื่นๆ ในชีวิตประจำวันได้สะดวกขึ้นมาก

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line