---
title: AVERAGEIF – หาค่าเฉลี่ยแบบมีเงื่อนไข
url: https://www.thepexcel.com/functions/excel/statistical/averageif/
type: function-explainer
program: Excel
syntax: "=AVERAGEIF(range, criteria, [average_range])"
date: 2025-11-30
updated: 2025-12-20
scores:
  popularity: 8
  difficulty: 4
  usefulness: 9
---

# AVERAGEIF – หาค่าเฉลี่ยแบบมีเงื่อนไข

> AVERAGEIF จะหาค่าเฉลี่ยของตัวเลขในช่วงข้อมูลที่ตรงตามเงื่อนไขเพียง 1 ข้อเท่านั้น เช่น หาคะแนนเฉลี่ยข

## คำอธิบาย

AVERAGEIF จะหาค่าเฉลี่ยของตัวเลขในช่วงข้อมูลที่ตรงตามเงื่อนไขเพียง 1 ข้อเท่านั้น เช่น หาคะแนนเฉลี่ยของนักเรียนที่สอบผ่าน หรือหาเงินเดือนเฉลี่ยตามแผนก ประสิทธิภาพดีกว่าการใช้ AVERAGEPRODUCT หรือ Array Formula มาก

## Syntax

```excel
=AVERAGEIF(range, criteria, [average_range])
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| range | Yes | Range |  | ช่วงข้อมูลที่ต้องการตรวจสอบเงื่อนไข (เช่น รายชื่อสินค้า, ชื่อแผนก, เกรดนักเรียน) |
| criteria | Yes | Text/Number/Expression |  | เงื่อนไขที่ต้องการ (เช่น "Apple", ">80", "*Pro*") รองรับ Wildcard (* ?) และ Operator (>, =, |
| average_range | No | Range | range | ช่วงข้อมูลตัวเลขที่ต้องการนำมาหาค่าเฉลี่ย (ถ้าไม่ระบุ จะใช้ range มาคำนวณแทน) |

## เคสการใช้งาน

### หาราคาเฉลี่ยตามหมวดหมู่

หาว่าสินค้าในหมวด "เครื่องใช้ไฟฟ้า" มีราคาเฉลี่ยเท่าไหร่

### หาคะแนนเฉลี่ยเฉพาะคนสอบผ่าน

คำนวณคะแนนเฉลี่ยของนักเรียนที่ได้คะแนนมากกว่า 50 คะแนนขึ้นไป

### ยอดขายเฉลี่ยรายเดือน

หายอดขายเฉลี่ยของเดือน "มกราคม" จากข้อมูลหลายปี

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: หาคะแนนเฉลี่ยเฉพาะคนที่สอบผ่าน

```excel
=AVERAGEIF(Scores, ">60")
```

**ผลลัพธ์:** `78.5`

สมมติว่า Scores = {45, 65, 72, 55, 82, 90}
.
สูตรจะหาค่าเฉลี่ยของคะแนนเฉพาะที่มากกว่า 60 (ที่สอบผ่าน) = (65+72+82+90)/4 = 78.5
.
ที่เจ๋งคือแบบนี้ไม่ต้องเขียน IF ลำดับความสำคัญเองหรือใช้ Helper Column ครับ 💡

### 2. ตัวอย่างที่ 2: หาเงินเดือนเฉลี่ยตามแผนก

```excel
=AVERAGEIF(Department, "Sales", Salary)
```

**ผลลัพธ์:** `45000`

สมมติว่า:
- Department = {Sales, IT, Sales, HR, Sales, IT}
- Salary = {40000, 50000, 48000, 38000, 45000, 52000}
.
สูตรจะตรวจสอบ Department หาแถวที่เป็น "Sales" (แถว 1, 3, 5) แล้วหาค่าเฉลี่ยเงินเดือน = (40000+48000+45000)/3 = 44333
.
ส่วนตัวผมใช้เทคนิคนี้บ่อยมากตอนทำ HR Analytics หรือ Department Performance Report ครับ

### 3. ตัวอย่างที่ 3: ใช้ Wildcard หาค่าเฉลี่ยสินค้าตระกูล

```excel
=AVERAGEIF(ProductNames, "*Pro*", Sales)
```

**ผลลัพธ์:** `8500`

สมมติว่า:
- ProductNames = {iPad Pro, MacBook, iPad Air, MacBook Pro}
- Sales = {10000, 8000, 6000, 9000}
.
ใช้ "*Pro*" ค้นหาสินค้าที่มีคำว่า Pro อยู่ตรงไหนก็ได้ (iPad Pro, MacBook Pro) แล้วหาค่าเฉลี่ยยอดขาย = (10000+9000)/2 = 9500
.
ที่เจ๋งคือ Wildcard ทำให้ยืดหยุ่นมาก ไม่ต้องพิมพ์ชื่อเต็ม 😎

### 4. ตัวอย่างที่ 4: ใช้ cell reference เปลี่ยนเกณฑ์ได้เอง

```excel
=AVERAGEIF(Sales, ">"&E2, Amount)
```

**ผลลัพธ์:** `7500`

สมมติว่า:
- E2 = 5000 (เกณฑ์ที่ User ตั้ง)
- Sales = {3000, 5500, 6000, 8000}
- Amount = {1000, 2000, 3000, 4000}
.
สูตรจะหาค่าเฉลี่ย Amount ของแถวที่ Sales > 5000 = (2000+3000+4000)/3 = 3000
.
ที่เจ๋งคือ ทำให้ฟอร์มูลยืดหยุ่น User แค่เปลี่ยนค่าใน E2 ก็ได้ผลลัพธ์ต่างกันเลยครับ 💡

### 5. ตัวอย่างที่ 5: หาค่าเฉลี่ยเฉพาะค่า Non-Blank

```excel
=AVERAGEIF(Comments, "<>", SentimentScore)
```

**ผลลัพธ์:** `7.5`

สมมติว่า:
- Comments = {Great!, , Good, , Excellent}
- SentimentScore = {8, 0, 7, 0, 9}
.
ใช้ "" (ไม่เท่ากับ) ค้นหาเซลล์ที่ไม่ว่าง แล้วหาค่าเฉลี่ยคะแนนความรู้สึก = (8+7+9)/3 = 8
.
ประโยชน์มากเวลาต้องข้าม Empty Cell โดยอัตโนมัติครับ

### 6. ตัวอย่างที่ 6: หาค่าเฉลี่ยหลายช่วงราคา (nested)

```excel
=(AVERAGEIF(Price, "<100", Quantity) + AVERAGEIF(Price, ">=100", Quantity))/2
```

**ผลลัพธ์:** `4.5`

สมมติว่า:
- Price = {80, 150, 90, 200}
- Quantity = {2, 5, 4, 7}
.
สูตรจะหาค่าเฉลี่ย Quantity ของราคา =100 = (5+7)/2 = 6
.
แล้วหาค่าเฉลี่ยรวมของทั้งสอง = (3+6)/2 = 4.5
.
ส่วนตัวผมใช้วิธีนี้ตอนต้องการ Nested Calculation มากมายครับ

## หมายเหตุเพิ่มเติม

- **รูปแบบ Criteria ที่ใช้บ่อย:**

- | เป้าหมาย | Criteria | ตัวอย่าง |

- |----------|----------|----------|

- | เท่ากับ | "value" | "Apple" |

- | มากกว่า | ">n" | ">80" |

- | น้อยกว่าหรือเท่ากับ | "<=n" | "<=100" |

- | ไม่เท่ากับ | "value" | "0" |

- | ไม่ว่าง | "" | "" |

- | ขึ้นต้นด้วย | "text*" | "Pro*" |

- | มีคำอยู่ใน | "*text*" | "*Pro*" |

- | ใช้ค่าจากเซลล์ | ">"&A1 | ">"&B2 |

- ส่วนตัวผมใช้ตารางนี้อ้างอิงบ่อยมากครับ โดยเฉพาะ Wildcard กับ cell reference 💡

- **เปรียบเทียบ AVERAGEIF กับฟังก์ชัน Average อื่นๆ:**

- | | AVERAGE | AVERAGEIF | AVERAGEIFS | AVERAGEPRODUCT |

- |---|---------|-----------|------------|-----------------|

- | ธรรมชาติ | ทั้งหมด | 1 เงื่อนไข | หลายเงื่อนไข | ยืดหยุ่น |

- | ความเร็ว | เร็ว | เร็ว | เร็ว | ช้า |

- | Wildcard | ไม่ได้ | ได้ | ได้ | ไม่ได้ |

- ส่วนตัวผมแนะนำให้ใช้ AVERAGEIF เป็นตัวเลือกแรกเพื่อประสิทธิภาพ ครับ

- **Performance:**

- AVERAGEIF/AVERAGEIFS เร็วกว่า AVERAGEPRODUCT หรือ Array Formula มาก ควรเป็นตัวเลือกแรก
.
ส่วนตัวผมเคยทดสอบในไฟล์ใหญ่ๆ AVERAGEIF เร็วกว่า AVERAGEPRODUCT ประมาณ 5-10 เท่า เลยแนะนำให้ใช้ AVERAGEIF เป็นหลักเลยครับ 😎

- **ใช้ AVERAGEIFS แทน:**

- แนะนำให้ใช้ AVERAGEIFS แทน AVERAGEIF เพราะ AVERAGEIFS รองรับทั้งเงื่อนไขเดียวและหลายเงื่อนไข ครับ 💡
.
วิธีนี้จะได้จำสูตรแค่ตัวเดียวก็ใช้ได้ครบทุกกรณี แล้วทีหลังถ้าต้องเพิ่มเงื่อนไข ก็แค่เพิ่ม criteria_range และ criteria ให้ AVERAGEIFS ก็เอาอยู่ไม่ต้องเปลี่ยนฟอร์มูลใหม่ ส่วนตัวผมใช้ AVERAGEIFS เสมอเลยแม้จะมีเงื่อนไขเดียว เพื่อความยืดหยุ่นครับ 😎

## คำถามที่พบบ่อย

**Q: AVERAGEIF ต่างจาก AVERAGEIFS อย่างไร?**

AVERAGEIF รองรับได้ 1 เงื่อนไข ส่วน AVERAGEIFS รองรับหลายเงื่อนไข (AND logic)
.
ตัวอย่าง: AVERAGEIF หาค่าเฉลี่ยยอดขายเฉพาะสินค้า A ได้ แต่ AVERAGEIFS หาค่าเฉลี่ยยอดขายสินค้า A ในภาคเหนือได้
.
ส่วนตัวผมแนะนำให้ใช้ AVERAGEIFS เสมอนะครับ เพราะยืดหยุ่นกว่า และถึงแม้จะมีเงื่อนไขเดียวก็ใช้ AVERAGEIFS ได้เลย จะได้ไม่ต้องเปลี่ยนฟอร์มูลทีหลัง 💡

**Q: ถ้าไม่มีข้อมูลตรงเงื่อนไขจะเป็นอย่างไร?**

จะแสดง Error #DIV/0! (Division by Zero) เพราะหารด้วย 0 แนะนำให้ครอบด้วย IFERROR เพื่อจัดการกรณีนี้
.
ตัวอย่าง: =IFERROR(AVERAGEIF(A1:A10, "xxx", B1:B10), "ไม่พบข้อมูล")
.
ที่เจ๋งคือวิธีนี้ให้ผู้ใช้เห็นข้อความที่เข้าใจง่าย แทนที่จะ Error ที่งง 😎

**Q: AVERAGEIF เป็น case-sensitive หรือไม่?**

ไม่ครับ AVERAGEIF ไม่แยกตัวพิมพ์ใหญ่/เล็ก เช่น "Apple", "APPLE", "apple" ถือเป็นค่าเดียวกัน
.
ที่เจ๋งคือทำให้สะดวกในการใช้งาน ไม่ต้องกังวลเรื่องตัวพิมพ์เวลาค้นหาครับ

**Q: ใช้ Wildcard ได้อย่างไร?**

ใช้ * แทนตัวอักษรกี่ตัวก็ได้ ("*Pro*" = มีคำว่า Pro อยู่ที่ไหนก็ได้) และ ? แทนตัวอักษรเดียว ("A?" = A ตามด้วยตัวเดียว)
.
ที่ต้องระวังคือถ้าต้องการค้นหา * หรือ ? จริงๆ ให้ใช้ ~ นำหน้า เช่น "~*" จะค้นหา * ตัวอักษรจริงๆ ครับ

**Q: ถ้า average_range ขนาดไม่เท่ากับ range จะเป็นอย่างไร?**

Excel จะปรับขนาด average_range ให้เท่ากับ range โดยเริ่มจากจุดเริ่มต้นของ average_range
.
แต่ที่ต้องระวังคือวิธีนี้อาจทำให้ผลลัพธ์ผิดพลาดได้ ควรเลือกช่วงให้ขนาดเท่ากันเสมอครับ 😅

**Q: AVERAGEIF ใช้กับไฟล์ที่ปิดอยู่ (Closed Workbook) ได้ไหม?**

ได้ครับ AVERAGEIF ทำงานได้แม้ไฟล์ต้นทางจะปิดอยู่ (Excel รุ่นใหม่รองรับแล้ว)
.
ส่วนตัวผมใช้เทคนิคนี้บ่อยมากตอนต้องรวมข้อมูลจากหลายไฟล์ โดยไม่ต้องเปิดทุกไฟล์พร้อมกันครับ 😎

## ฟังก์ชันที่เกี่ยวข้อง

- [AVERAGEIFS – คำนวณค่าเฉลี่ยตามหลายเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/averageifs/)
- [AVERAGE – หาค่าเฉลี่ยของตัวเลข](https://www.thepexcel.com/functions/excel/statistical/average/)
- [SUMIF – หาผลรวมแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumif/)
- [SUMIFS – ฟังก์ชันบวกตามหลายเงื่อนไข](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumifs/)
- [COUNTIF – นับจำนวนแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/countif/)
- [COUNTIFS – ฟังก์ชันนับเซลล์ตามหลายเงื่อนไขพร้อมกัน](https://www.thepexcel.com/functions/excel/statistical/countifs/)
- [MAXIFS – หาค่าสูงสุดแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/maxifs/)
- [MINIFS – หาค่าต่ำสุดแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/minifs/)
- [IFERROR – ดักจับ Error และเปลี่ยนเป็นค่าอื่น](https://www.thepexcel.com/functions/excel/logical/iferror/)
- [TRIM – ลบช่องว่างส่วนเกินออกจากข้อความ](https://www.thepexcel.com/functions/excel/text/trim/)
- [VALUE – แปลงข้อความเป็นตัวเลข](https://www.thepexcel.com/functions/excel/text/value/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support: AVERAGEIF function](https://support.microsoft.com/en-us/office/averageif-function-faec8e2e-0dec-4308-af69-f5576d8ac642) _(official)_
- [ExcelJet: Excel AVERAGEIF function](https://exceljet.net/functions/averageif) _(guide)_
- [Microsoft Learn: Statistical functions (AVERAGEIF overview)](https://learn.microsoft.com/en-us/office/client-developer/excel/excel-functions-by-category) _(official)_

---

_Source: [https://www.thepexcel.com/functions/excel/statistical/averageif/](https://www.thepexcel.com/functions/excel/statistical/averageif/)_
