---
title: SUMIFS – ฟังก์ชันบวกตามหลายเงื่อนไข
url: https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumifs/
type: function-explainer
program: Excel
syntax: "=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)"
date: 2025-12-18
scores:
  popularity: 9
  difficulty: 5
  usefulness: 9
---

# SUMIFS – ฟังก์ชันบวกตามหลายเงื่อนไข

> บวกค่าที่ตรงตามหลายเงื่อนไขพร้อมกัน (AND logic)

## คำอธิบาย

SUMIFS บวกค่าจาก sum_range เฉพาะแถวที่ตรงตามเงื่อนไขทุกข้อพร้อมกัน (AND logic) รองรับได้สูงสุด 127 คู่เงื่อนไข สามารถใช้ comparison operators (>, =, <=, ), wildcard characters (*, ?), และ cell references ใน criteria ได้ เหมาะสำหรับการวิเคราะห์ข้อมูลแบบ multi-dimensional filtering เช่น รายงานยอดขายตามภูมิภาค ช่วงเวลา และสถานะพร้อมกัน โดยไม่ต้องใช้ helper columns หรือฟังก์ชันซ้อนซับซ้อน

## Syntax

```excel
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
```

**excel**

```excel
=SUMIFS(Sales[Amount], Sales[Region], "North")
```

รวมยอดขายเฉพาะภูมิภาค North (single criteria)

**excel**

```excel
=SUMIFS(Sales[Amount], Sales[Region], "North", Sales[Status], "Completed")
```

รวมยอดขาย North ที่ Status = Completed (dual criteria, AND logic)

**excel**

```excel
=SUMIFS(Sales[Amount], Sales[Date], ">="&DATE(2024,1,1), Sales[Date], "<="&DATE(2024,12,31))
```

รวมยอดขายในปี 2024 โดยใช้ DATE function กับ & operator สำหรับ date range

**excel**

```excel
=SUMIFS(Products[Revenue], Products[Name], "*Pro*", Products[Stock], ">0")
```

รวมรายได้สินค้าที่มีคำว่า Pro และมี stock เหลือ (wildcard + comparison)

**excel**

```excel
=SUMIFS(Expenses[Amount], Expenses[Category], G2, Expenses[Month], H2)
```

รวมค่าใช้จ่ายตามหมวดและเดือนจาก cell references (dashboard-ready)

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| sum_range | Yes | Range |  | ช่วงตัวเลขที่ต้องการบวก (ต้องมีขนาดเท่ากับทุก criteria_range มิฉะนั้นจะได้ #VALUE! error) |
| criteria_range1 | Yes | Range |  | ช่วงแรกที่จะตรวจสอบตามเงื่อนไข (ต้องมีขนาดเท่ากับ sum_range) |
| criteria1 | Yes | Text/Number/Date/Cell Reference |  | เงื่อนไขที่ 1 สามารถเป็นตัวเลข, ข้อความ (ต้องครอบด้วย double quotes), comparison operators (">100", "0"), wildcard patterns ("*Pro*", "A???"), cell references, หรือ DATE function ร่วมกับ & operator |
| criteria_range2 | No | Range |  | ช่วงที่ 2 สำหรับเงื่อนไขเพิ่มเติม (optional, ต้องมีขนาดเท่ากับ sum_range) |
| criteria2 | No | Text/Number/Date/Cell Reference |  | เงื่อนไขที่ 2 (optional, ใช้รูปแบบเดียวกับ criteria1) |

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

### ยอดขายตามภูมิภาคและช่วงเวลา

วิเคราะห์ยอดขายรายภูมิภาคในช่วงเวลาเฉพาะ เช่น North ในเดือน ม.ค. 2024 โดยไม่ต้องใช้ PivotTable

_เหมาะกับ:_ sales-report

### คัดกรองค่าใช้จ่ายตามหมวดและสถานะ

รวมค่าใช้จ่ายเฉพาะหมวดที่กำหนดและผ่านการอนุมัติแล้ว เหมาะสำหรับรายงานทางการเงิน

_เหมาะกับ:_ financial-function

### สรุปคะแนนสอบตามวิชาและเกณฑ์

รวมคะแนนที่ผ่านเกณฑ์ขั้นต่ำและเป็นวิชาที่ต้องการวิเคราะห์

_เหมาะกับ:_ education

### Inventory ตามสินค้าและระดับ stock

คำนวณมูลค่า inventory เฉพาะสินค้าประเภทหนึ่งที่มี stock ต่ำกว่าเกณฑ์

_เหมาะกับ:_ inventory

### Dynamic Dashboard กรองหลายมิติ

สร้าง dashboard ที่ผู้ใช้เปลี่ยน criteria ผ่าน cell references (dropdowns, input cells) และสูตรคำนวณแบบ real-time

_เหมาะกับ:_ dashboard

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: Foundation - รวมยอดขายตามภูมิภาคเดียว

```excel
=SUMIFS(Sales[Amount], Sales[Region], "North")
```

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

รวมยอดขายจากคอลัมน์ Amount เฉพาะแถวที่ Region = "North"
.
นี่คือการใช้งานพื้นฐานที่สุดของ SUMIFS แม้จะมีเงื่อนไขเดียว (ซึ่งทำด้วย SUMIF ก็ได้นะ) แต่การเริ่มด้วย SUMIFS จะทำให้เพิ่มเงื่อนไขเพิ่มเติมได้ง่ายในภายหลัง โดยไม่ต้องเปลี่ยนโครงสร้างสูตรใหม่
.
ส่วนตัวผมแนะนำให้เริ่มด้วย SUMIFS เลยตั้งแต่แรก แม้ยังมีเงื่อนไขเดียวก็ตาม เพราะอนาคตถ้าต้องเพิ่มเงื่อนไขก็ไม่ต้องมานั่ง refactor สูตรอีกรอบ 😎

### 2. ตัวอย่างที่ 2: Practical - กรอง 2 เงื่อนไขพร้อมกัน (AND logic)

```excel
=SUMIFS(Sales[Amount], Sales[Region], "North", Sales[Status], "Completed")
```

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

รวมยอดขายที่ต้องตรงทั้ง 2 เงื่อนไข: Region = "North" AND Status = "Completed"
.
นี่คือ core use case ของ SUMIFS ที่ช่วยกรองข้อมูลหลายมิติในสูตรเดียว โดยไม่ต้องใช้ helper columns หรือซ้อนฟังก์ชันซับซ้อน
.
สังเกตว่าลำดับ arguments คือ sum_range ก่อน จากนั้นตามด้วยคู่ (criteria_range, criteria) ซ้ำกี่คู่ก็ได้ ถ้าจำไม่ได้ก็คิดง่ายๆ ว่า "บอกก่อนว่าจะบวกอะไร แล้วค่อยบอกว่าจะกรองยังไง" 💡

### 3. ตัวอย่างที่ 3: Date Range - กรองช่วงวันที่ด้วย DATE function

```excel
=SUMIFS(Sales[Amount], Sales[Date], ">="&DATE(2024,1,1), Sales[Date], "<="&DATE(2024,1,31))
```

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

รวมยอดขายในเดือน ม.ค. 2024 โดยใช้ Sales[Date] เป็น criteria_range 2 ครั้ง: ครั้งแรกตรวจ >= 1 ม.ค. 2024 และครั้งที่สองตรวจ

### 4. ตัวอย่างที่ 4: Wildcard - ค้นหาสินค้าด้วย pattern matching

```excel
=SUMIFS(Products[Sales], Products[Name], "*Pro*", Products[Category], "Electronics")
```

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

รวมยอดขายสินค้าที่มีคำว่า "Pro" อยู่ในชื่อ (เช่น iPhone Pro, MacBook Pro, AirPods Pro) และอยู่ในหมวด Electronics
.
การใช้ wildcard * ช่วยให้ไม่ต้อง list ชื่อสินค้าทีละตัว ซึ่งสะดวกมากเวลาต้องค้นหาแบบ pattern ตัวอักษร * แทน "ตัวอักษรกี่ตัวก็ได้" ส่วน ? แทน "ตัวอักษรเดียว" (เช่น "A???" = A ตามด้วย 3 ตัวอักษรใดๆ)
.
ข้อดีอีกอย่างคือ wildcards ทำงานแบบ case-insensitive คือ "pro" กับ "Pro" ให้ผลเหมือนกันเลย ไม่ต้องกังวลเรื่องตัวพิมพ์เล็ก-ใหญ่ 😎

### 5. ตัวอย่างที่ 5: Comparison Operators - มากกว่าและไม่เท่ากับ

```excel
=SUMIFS(Orders[Total], Orders[Total], ">1000", Orders[Status], "<>Cancelled")
```

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

รวมยอด order ที่มีมูลค่ามากกว่า 1000 และสถานะไม่ใช่ Cancelled
.
สังเกตว่า Orders[Total] ทำหน้าที่ทั้ง sum_range และ criteria_range ได้ (ตรวจสอบช่วงเดียวกันกับที่บวก) การใช้  หมายถึง "ไม่เท่ากับ" ซึ่งเป็นวิธีที่ดีในการ exclude ค่าบางอย่างออกจากผลรวม
.
เทคนิคนี้มีประโยชน์มากเวลาต้องการกรองข้อมูลที่มีคุณภาพ เช่น ตัดยอดที่ถูก cancel หรือยอดที่เล็กเกินไปออก ส่วนตัวผมใช้บ่อยเวลาทำรายงานยอดขายจริง 💡

### 6. ตัวอย่างที่ 6: Advanced - sum_range และ criteria_range เป็นช่วงเดียวกัน

```excel
=SUMIFS(Sales[Commission], Sales[Commission], ">10000", Sales[Commission], "<50000")
```

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

รวม commission เฉพาะรายการที่อยู่ในช่วง 10,000 - 50,000 โดยใช้ Sales[Commission] ทั้งเป็น sum_range และ criteria_range 2 ครั้ง
.
นี่เป็นเทคนิคที่มีประโยชน์เมื่อต้องการกรองตัวเลขเฉพาะในช่วงที่กำหนด โดยไม่ต้องสร้าง helper column แยกเพื่อเช็คเงื่อนไข
.
ตอนแรกดูซับซ้อน แต่พอเข้าใจแล้วก็ใช้งานได้คล่องมาก ผมเคยใช้เทคนิคนี้กรองยอดขายที่อยู่ใน range เฉพาะเพื่อคำนวณ commission tier ต่างๆ ได้สบายเลย 😎

### 7. ตัวอย่างที่ 7: Dynamic Criteria - ใช้ cell references สำหรับ dashboard

```excel
=SUMIFS(Sales[Amount], Sales[Region], G2, Sales[Year], H2, Sales[Quarter], I2)
```

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

รวมยอดขายตาม criteria ที่เก็บใน cells: G2="North", H2=2024, I2="Q1"
.
เทคนิคนี้เหมาะสำหรับ interactive dashboards ที่ผู้ใช้เลือก filters ผ่าน dropdowns หรือ input cells แล้วสูตรคำนวณผลแบบ real-time โดยไม่ต้องแก้สูตร
.
ส่วนตัวผมใช้วิธีนี้ทำ dashboard ทุกครั้งเลย เพราะทำให้ end user สามารถ explore ข้อมูลเองได้โดยไม่ต้องมาขอให้แก้สูตร แค่เปลี่ยน dropdown ตัวเลขก็อัพเดททันที 💪

### 8. ตัวอย่างที่ 8: Exclude Empty - กรองเซลล์ว่างออก

```excel
=SUMIFS(Sales[Amount], Sales[Region], "<>", Sales[Amount], ">0")
```

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

รวมยอดขายที่ Region ไม่ว่าง ("" หมายถึง not empty) และ Amount มากกว่า 0
.
การใช้ "" เป็น criteria ช่วยตัดแถวที่มี empty cells หรือ blank values ออก ซึ่งเป็นเทคนิคสำคัญในการทำความสะอาดข้อมูลก่อนคำนวณ
.
เคยเจอปัญหาตัวเลขผิดเพราะมีแถวว่างปนมั้ยครับ? ผมเจอบ่อยมาก 😅 พอเริ่มใช้เทคนิคนี้ ปัญหาหายไปเลย ข้อมูลที่ไม่สมบูรณ์ก็ไม่มาทำให้ผลรวมผิดเพี้ยนอีกต่อไป

### 9. ตัวอย่างที่ 9: Complex Real-World - Multi-dimensional sales analysis

```excel
=SUMIFS(Transactions[Revenue], Transactions[Region], "North", Transactions[Product], "*Laptop*", Transactions[Date], ">="&DATE(2024,1,1), Transactions[Date], "<="&DATE(2024,3,31), Transactions[Quantity], ">5")
```

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

สถานการณ์จริง: รวมรายได้จากการขาย Laptop ในภูมิภาค North ช่วง Q1 2024 ที่มี quantity มากกว่า 5 ชิ้น
.
สูตรนี้ใช้เงื่อนไข 5 ข้อพร้อมกัน: (1) Region filter, (2) Product wildcard search, (3-4) Date range, (5) Quantity threshold
.
นี่คือตัวอย่าง real-world ของการใช้ SUMIFS ในการวิเคราะห์ข้อมูลแบบ multi-dimensional filtering ที่ซับซ้อน โดยไม่ต้องพึ่ง PivotTable หรือ Power Query
.
ตอนแรกดูยาวน่ากลัว แต่ถ้าเขียนทีละคู่เงื่อนไข ก็ไม่ยากเลยครับ ผมเคยเขียนสูตรที่มี 7-8 เงื่อนไขสำหรับรายงานพิเศษ แล้วมันก็ยังทำงานได้ดีอยู่ 💪

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

💡 **Tip สำคัญ:** SUMIFS มีข้อดีตรงที่สามารถใช้ range เดียวกันทั้งเป็น sum_range และ criteria_range ได้ ทำให้กรองค่าในช่วงตัวเลข (เช่น commission 10,000-50,000) ได้สะดวกมาก ไม่ต้องสร้าง helper column เพิ่ม
.
ส่วนตัวผมใช้เทคนิคนี้บ่อยมากเวลาทำรายงานที่ต้องกรองข้อมูลตาม threshold หลายระดับ 😎

## รูปแบบ Criteria ที่ใช้บ่อย

| เป้าหมาย | Syntax | ตัวอย่าง | คำอธิบาย |
|----------|--------|----------|----------|
| เท่ากับ | "value" | "Apple" | Text ต้องครอบ quotes |
| มากกว่า | ">n" | ">1000" | Comparison operators ใน quotes |
| มากกว่าเท่ากับ | ">=n" | ">=500" | รวมค่าเท่ากับด้วย |
| น้อยกว่า | "<n" | "<100" | เลขเท่านั้น |
| น้อยกว่าเท่ากับ | "<=n" | "<=500" | รวมค่าเท่ากับด้วย |
| ไม่เท่ากับ | "value" | "0" | Exclude specific value |
| ไม่ว่าง | "" | "" | Exclude empty cells |
| ขึ้นต้นด้วย | "text*" | "A*" | Wildcard ท้าย |
| ลงท้ายด้วย | "*text" | "*son" | Wildcard หน้า |
| มีคำอยู่ใน | "*text*" | "*Pro*" | Wildcard ทั้ง 2 ข้าง |
| ตัวอักษรเดียว | "?" | "A???" | ? แทน 1 ตัวอักษร |
| ใช้ค่าจาก cell | operator&cell | ">"&A1 | Dynamic criteria |
| Date ใน criteria | ">="&DATE(y,m,d) | ">="&DATE(2024,1,1) | Best practice สำหรับ dates |

## เปรียบเทียบ SUMIF vs SUMIFS

| Feature | SUMIF | SUMIFS |
|---------|-------|--------|
| จำนวนเงื่อนไข | 1 เงื่อนไขเท่านั้น | 1-127 เงื่อนไข |
| ลำดับ arguments | (range, criteria, [sum_range]) | (sum_range, range1, criteria1, ...) |
| sum_range position | ท้ายสุด (optional) | แรกสุด (required) |
| Logic type | N/A | AND logic เท่านั้น |
| Performance | เร็ว | เร็ว (optimized เท่ากัน) |
| Use case | Simple single-condition | Multi-condition filtering |
| ความยืดหยุ่น | จำกัด | สูง |
| Recommendation | ใช้ SUMIFS แทนเสมอ | ✅ Recommended |

## วิธีทำ OR Logic (Workaround)

เนื่องจาก SUMIFS รองรับเฉพาะ AND logic วิธีทำ OR logic:

### วิธีที่ 1: รวม SUMIFS หลายตัว (แนะนำ)
```excel
=SUMIFS(Amount, Region, "North") + SUMIFS(Amount, Region, "South")
```
รวมยอดจาก North หรือ South (OR logic)

### วิธีที่ 2: ใช้ SUM กับ Array Constant
```excel
=SUM(SUMIFS(Amount, Region, {"North","South"}))
```
กระชับกว่าแต่อาจไม่ชัดเจนสำหรับผู้อื่น

### วิธีที่ 3: SUMPRODUCT (สำหรับ complex OR)
```excel
=SUMPRODUCT(Amount * ((Region="North")+(Region="South")))
```
**ข้อเสีย:** ช้ากว่า SUMIFS มาก โดยเฉพาะข้อมูลขนาดใหญ่

## Range Size Matching (Critical!)

ทุก range ต้องมีขนาดเท่ากัน มิฉะนั้นได้ #VALUE! error:

```excel
✅ CORRECT:
=SUMIFS(A2:A100, B2:B100, "North", C2:C100, ">1000")
ทุก range มี 99 rows

❌ WRONG:
=SUMIFS(A2:A100, B1:B100, "North", C2:C101, ">1000")
B1:B100 มี 100 rows, C2:C101 มี 100 rows → ไม่เท่ากับ A2:A100 (99 rows)
```

**Best Practice:** ใช้ Table structured references (Sales[Amount]) แทน cell ranges (A2:A100) เพราะ:
- Auto-adjust เมื่อเพิ่ม/ลบแถว
- ขนาด match กันเสมอ
- อ่านเข้าใจง่ายกว่า
- ลด range mismatch errors

## Performance Tips

### 1. SUMIFS เร็วกว่า SUMPRODUCT มาก
```excel
✅ FAST:
=SUMIFS(Amount, Region, "North", Status, "Active")

❌ SLOW:
=SUMPRODUCT(Amount * (Region="North") * (Status="Active"))
```
SUMIFS optimize แบบ native โดย Excel engine

### 2. ใช้ Table References แทน Whole Columns
```excel
✅ BETTER:
=SUMIFS(Sales[Amount], Sales[Region], "North")

❌ SLOWER:
=SUMIFS(A:A, B:B, "North")
```
Whole column references (A:A) ทำให้ Excel ต้องสแกนทั้งคอลัมน์ (1,048,576 rows)

### 3. หลีกเลี่ยง Volatile Functions ใน Criteria
```excel
❌ RECALCULATES OFTEN:
=SUMIFS(Amount, Date, ">"&TODAY())

✅ BETTER:
=SUMIFS(Amount, Date, ">"&$G$1)
โดย G1 = TODAY() (คำนวณครั้งเดียว)
```

### 4. ใช้ Helper Columns สำหรับ Complex Criteria
```excel
❌ COMPLEX:
=SUMIFS(Amount, Date, ">="&DATE(2024,1,1), Date, "=DATE(2024,1,1), Date10000", Commission, "<50000")
```
กรองค่าในช่วง (range filter)

### Pattern 2: Dynamic Multi-Select Dashboard
```excel
=SUM(SUMIFS(Amount, Region, FilterTable[Region]))
```
โดย FilterTable มีหลาย regions ที่เลือก (สำหรับ multi-select)

### Pattern 3: Exclude Multiple Values
```excel
=SUMIFS(Amount, Status, "Cancelled", Status, "Pending")
```
Exclude หลาย values พร้อมกัน

### Pattern 4: Conditional Subtotals
```excel
=SUMIFS(Amount, Category, A2, SubCategory, B2, Active, TRUE)
```
ใช้ใน summary table แต่ละแถว (ทำ subtotal แบบมีเงื่อนไข)

## Version History

| Version | Availability | Notes |
|---------|--------------|-------|
| Excel 2007 | ✅ Introduced | ฟังก์ชันใหม่ใน Excel 2007 |
| Excel 2010-2016 | ✅ Available | ไม่มีการเปลี่ยนแปลง |
| Excel 2019 | ✅ Available | Performance improvements |
| Excel 365 | ✅ Available | Full support |
| Excel Web App | ✅ Available | Cloud-based |
| Google Sheets | ✅ Compatible | Syntax เหมือนกัน |

## Conclusion

SUMIFS เป็นฟังก์ชันที่ powerful สำหรับ multi-dimensional data analysis โดยไม่ต้องพึ่ง PivotTable หรือ Power Query จุดแข็งคือ performance ดี, ยืดหยุ่นสูง, และใช้งานง่าย ข้อจำกัดคือรองรับเฉพาะ AND logic และต้องใช้ range จริง (ไม่ใช่ array) แต่สามารถ workaround ได้ด้วย helper columns หรือ SUMPRODUCT กรณีจำเป็น

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

**Q: SUMIFS ต่างจาก SUMIF อย่างไร และควรใช้ตัวไหน?**

ความแตกต่างหลัก 3 ข้อครับ:
.
(1) SUMIF รองรับเงื่อนไขเดียว, SUMIFS รองรับหลายเงื่อนไข (สูงสุด 127 คู่)
.
(2) ลำดับ arguments ต่างกัน: SUMIF ใช้ (range, criteria, sum_range) ส่วน SUMIFS ใช้ (sum_range, range1, criteria1, ...) โดย sum_range มาก่อน
.
(3) SUMIFS ยืดหยุ่นกว่า เพราะแม้ใช้เงื่อนไขเดียวก็สามารถเพิ่มเงื่อนไขภายหลังได้ง่าย
.
ส่วนตัวผมแนะนำให้ใช้ SUMIFS เป็นหลักในโปรเจกต์ใหม่ เพื่อ consistency และเตรียมพร้อมสำหรับการขยาย criteria ในอนาคตครับ

**Q: ทำ OR logic (รวมค่าที่ตรงเงื่อนไขใดก็ได้) ด้วย SUMIFS ได้ไหม?**

SUMIFS ทำได้เฉพาะ AND logic (ต้องตรงทุกเงื่อนไข) ถ้าต้องการ OR logic มี 2 วิธีครับ:
.
(1) รวม SUMIFS หลายตัวเข้าด้วยกัน เช่น =SUMIFS(Amount, Region, "North") + SUMIFS(Amount, Region, "South") เพื่อรวมยอดจาก North หรือ South
.
(2) ใช้ SUMPRODUCT กับ + operator สำหรับ OR เช่น =SUMPRODUCT(Amount * ((Region="North")+(Region="South")))
.
แต่ SUMPRODUCT ช้ากว่า SUMIFS มาก โดยเฉพาะข้อมูลเยอะๆ ดังนั้นถ้าทำได้ด้วย SUMIFS ควรใช้ SUMIFS เสมอครับ
.
ส่วนตัวผมใช้วิธีที่ 1 บ่อยกว่า เพราะอ่านง่ายและ maintain ได้ง่ายกว่า แม้สูตรจะยาวหน่อยก็ตาม 😅

**Q: ทำไมได้ #VALUE! error และจะแก้อย่างไร?**

#VALUE! error เกิดจาก 3 สาเหตุหลักครับ:
.
(1) sum_range และ criteria_ranges มีขนาด (rows × columns) ไม่เท่ากัน → แก้โดยตรวจสอบให้ทุก range มี dimensions เท่ากัน
.
(2) ใช้ array แทน range เช่น YEAR(B5:B16) ซึ่ง SUMIFS ไม่รองรับ → แก้โดยใช้ helper column หรือเปลี่ยนไปใช้ SUMPRODUCT
.
(3) Reference ไปยัง external workbook ที่ปิดอยู่ → แก้โดยเปิด workbook นั้นหรือ copy data มาที่ workbook ปัจจุบัน
.
วิธีป้องกันที่ดีที่สุด: ใช้ structured references (Table[Column]) แทน cell ranges เพราะจะ auto-adjust และลด errors 💡
.
ผมเคยเจอ error แบบนี้เยอะมากตอนเริ่มใช้ SUMIFS พอรู้แล้วว่าสาเหตุคืออะไร ก็แก้ได้ง่ายขึ้นเยอะครับ

**Q: ช่วงเงื่อนไข (criteria_range) ต้องขนาดเท่ากันทุกตัวหรือไม่?**

ใช่ครับ ทุก criteria_range ต้องมีขนาด (จำนวน rows และ columns) เท่ากับ sum_range ทุกประการ มิฉะนั้นจะได้ #VALUE! error
.
ตัวอย่าง: ถ้า sum_range คือ A2:A100 (99 rows × 1 column) ทุก criteria_range ต้องเป็น 99 rows × 1 column เช่น B2:B100, C2:C100 เป็นต้น
.
ข้อผิดพลาดที่เจอบ่อยคือการ reference ผิด row โดยไม่ตั้งใจ เช่น sum_range เป็น A2:A100 แต่ criteria_range เป็น B1:B100 (เยอะกว่า 1 แถว) 😅
.
วิธีป้องกัน: ใช้ Table structured references ซึ่งจะ auto-match ขนาดเสมอ
.
ผมเคยทำผิดแบบนี้เยอะเลย โดยเฉพาะตอนรีบๆ copy สูตร แล้วลืมปรับ range ให้ตรงกัน ตอนนี้เลยเปลี่ยนมาใช้ Table แทนเลย สบายกว่าเยอะ

**Q: ใช้ Wildcard อย่างไร และมีข้อจำกัดอะไรบ้าง?**

SUMIFS รองรับ wildcard 3 แบบครับ:
.
(1) * แทนตัวอักษรกี่ตัวก็ได้ เช่น "*Pro*" = มีคำว่า Pro อยู่ตรงไหนก็ได้, "A*" = ขึ้นต้นด้วย A
.
(2) ? แทนตัวอักษรเดียว เช่น "A???" = A ตามด้วย 3 ตัวอักษรใดๆ
.
(3) ~ escape character สำหรับค้นหา * หรือ ? จริงๆ เช่น "~?" = เครื่องหมาย ? ตัวอักษร
.
ข้อจำกัด: Wildcards ทำงานเฉพาะกับ text criteria และเป็นแบบ case-insensitive ("pro" กับ "Pro" ให้ผลเหมือนกัน) ถ้าต้องการ case-sensitive search ต้องใช้ SUMPRODUCT กับ EXACT function แทน
.
ผมใช้ wildcard บ่อยมาก โดยเฉพาะตอน * เพราะช่วยให้ค้นหาได้ยืดหยุ่นโดยไม่ต้องระบุคำเต็ม 💡

**Q: SUMIFS เร็วกว่า SUMPRODUCT จริงหรือ และแตกต่างกันอย่างไร?**

เร็วกว่ามากครับ SUMIFS ได้รับการ optimize เฉพาะสำหรับการกรองข้อมูลตาม criteria แบบ native โดย Excel engine ส่วน SUMPRODUCT ต้องคำนวณทุกเซลล์ก่อนรวม (evaluate entire arrays) ทำให้ช้ากว่าโดยเฉพาะกับข้อมูลขนาดใหญ่
.
ความแตกต่างหลัก:
.
(1) SUMIFS รองรับเฉพาะ AND logic, SUMPRODUCT ทำ OR และ complex logic ได้
.
(2) SUMIFS รองรับ wildcard, SUMPRODUCT ไม่รองรับโดยตรง
.
(3) SUMIFS ต้องใช้ range จริง, SUMPRODUCT ใช้ array functions ได้ เช่น YEAR()
.
กฎทอง: ถ้าทำได้ด้วย SUMIFS ให้ใช้ SUMIFS เสมอ
.
ผมเคยมีไฟล์ที่ช้ามาก พอเปลี่ยนจาก SUMPRODUCT มาเป็น SUMIFS ความเร็วดีขึ้นเห็นได้ชัดเลยครับ 😎

**Q: จะใช้ Date criteria ได้อย่างไร และมี best practices อะไร?**

Date criteria มี 3 วิธีครับ:
.
(1) ใช้ DATE function กับ & operator เช่น ">="&DATE(2024,1,1) (best practice - explicit และ locale-independent)
.
(2) ใช้ cell reference ที่เก็บ date เช่น ">="&E10 (ดีสำหรับ dynamic criteria)
.
(3) Hard-code date string เช่น ">=2024-01-01" (ไม่แนะนำ - อาจเกิด format issues)
.
Best practices:
.
(1) ใช้ DATE function แทน hard-coded strings เพื่อหลีกเลี่ยงปัญหา regional date format
.
(2) สำหรับ date range ใช้ 2 เงื่อนไข: >= start date และ

**Q: SUMIFS จัดการกับค่า TRUE/FALSE อย่างไร?**

เมื่อ sum_range มีค่า TRUE/FALSE Excel จะแปลงเป็นตัวเลขก่อนบวก: TRUE = 1, FALSE = 0
.
ตัวอย่าง: =SUMIFS(BoolColumn, Criteria_Range, "Yes") ถ้า BoolColumn มี TRUE 5 ตัว จะได้ผลรวม = 5
.
สำหรับ criteria: ค่า Boolean ใน criteria_range ก็แปลงเป็นตัวเลขเช่นกัน ดังนั้น criteria เช่น ">0" จะตรงกับ TRUE แต่ไม่ตรงกับ FALSE
.
ข้อควรระวัง: การแปลงนี้เกิด auto ทำให้อาจเกิดผลลัพธ์ที่ไม่คาดคิด แนะนำให้แปลง Boolean เป็น 1/0 อย่างชัดเจนผ่าน helper column หรือใช้ criteria แบบตรงตัว เช่น TRUE/FALSE แทน comparison
.
เคยเจอปัญหานี้มั้ยครับ? ผมเคยสับสนตอนเจอ TRUE/FALSE ในผลรวม พอรู้แล้วว่ามันทำงานยังไง ก็จัดการได้ง่ายขึ้นเยอะ 😅

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

- [SUMIF – หาผลรวมแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumif/)
- [SUM – ฟังก์ชันรวมตัวเลข](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sum/)
- [ฟังก์ชัน SUMPRODUCT ใน Excel](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumproduct/)
- [COUNTIFS – ฟังก์ชันนับเซลล์ตามหลายเงื่อนไขพร้อมกัน](https://www.thepexcel.com/functions/excel/statistical/countifs/)
- [COUNTIF – นับจำนวนแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/countif/)
- [AVERAGEIFS – คำนวณค่าเฉลี่ยตามหลายเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/averageifs/)
- [AVERAGEIF – หาค่าเฉลี่ยแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/averageif/)
- [MAXIFS – หาค่าสูงสุดแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/maxifs/)
- [MINIFS – หาค่าต่ำสุดแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/minifs/)
- [IFS – ทดสอบหลายเงื่อนไขแบบมีลำดับความสำคัญ](https://www.thepexcel.com/functions/excel/logical/ifs/)
- [FILTER – ฟังก์ชันกรองข้อมูลแบบไดนามิก](https://www.thepexcel.com/functions/excel/lookup-and-reference/filter/)
- [DATE – ฟังก์ชันสร้างวันที่จากปี เดือน วัน](https://www.thepexcel.com/functions/excel/date-and-time/date/)
- [EOMONTH – หาวันสิ้นสุดเดือน](https://www.thepexcel.com/functions/excel/date-and-time/eomonth/)

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

- [Microsoft Support: SUMIFS function](https://support.microsoft.com/en-us/office/sumifs-function-c9e748f5-7ea7-455d-9406-611cebce642b) _(official)_
- [ExcelJet: How to use the Excel SUMIFS function](https://exceljet.net/excel-functions/excel-sumifs-function) _(guide)_
- [Excel Campus: SUMIFS Function Tutorial](https://www.excelcampus.com/functions/sumifs-function/) _(tutorial)_

---

_Source: [https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumifs/](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumifs/)_
