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

# COUNTIFS – ฟังก์ชันนับเซลล์ตามหลายเงื่อนไขพร้อมกัน

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

## คำอธิบาย

COUNTIFS นับจำนวนเซลล์ที่ตรงกับหลายเงื่อนไขพร้อมกัน โดยใช้ AND logic หมายความว่าเงื่อนไขทุกข้อต้องเป็นจริงถึงจะนับ ซึ่งต่างจาก COUNTIF ที่มีได้แค่เงื่อนไขเดียว
.
ข้อดีคือรองรับได้ถึง 127 คู่ criteria_range/criteria ทำให้วิเคราะห์ข้อมูลซับซ้อนได้อย่างมีประสิทธิภาพ รองรับ wildcard characters (* แทนตัวอักษรกี่ตัวก็ได้, ? แทนตัวอักษรหนึ่งตัว) และ operators (>, =, <=, ) สำหรับเปรียบเทียบตัวเลขและวันที่
.
ที่ต้องระวังคือ criteria_range ทุกตัวต้องมีขนาดเท่ากันทุกประการ (rows × columns) มิฉะนั้นจะเกิด #VALUE! error ทันที COUNTIFS เป็นส่วนหนึ่งของ IFS family (SUMIFS, AVERAGEIFS, MAXIFS, MINIFS) ที่มี syntax คล้ายกัน เหมาะมากสำหรับสร้าง dashboard แบบ real-time และวิเคราะห์ KPI หลายมิติ

## Syntax

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

**excel**

```excel
=COUNTIFS(Sales[Region], "North", Sales[Amount], ">1000", Sales[Status], "Completed")
```

นับรายการที่ Region="North" และ Amount>1000 และ Status="Completed" (3 เงื่อนไขพร้อมกัน)

**excel**

```excel
=COUNTIFS(Orders[Date], ">="&DATE(2024,1,1), Orders[Date], "<"&DATE(2024,2,1))
```

นับรายการในเดือน ม.ค. 2024 (ใช้ criteria_range เดียวกันสองครั้งเพื่อสร้างช่วง between)

**excel**

```excel
=COUNTIFS(Products[Name], "iPhone*", Products[Stock], ">0", Products[Price], "<=30000")
```

นับสินค้าที่ชื่อขึ้นต้นด้วย "iPhone" มีสต็อก>0 และราคา

**excel**

```excel
=COUNTIFS(Data[Column1], "<>", Data[Column2], "<>", Data[Column3], "<>")
```

นับแถวที่ทุกคอลัมน์ไม่ว่าง (ใช้ "" ตรวจสอบ non-blank cells)

**excel**

```excel
=SUM(COUNTIFS(Tickets[Status], {"Open","In Progress","Pending"}))
```

OR logic: นับ status ที่เป็น Open หรือ In Progress หรือ Pending (ใช้ array constant กับ SUM)

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| criteria_range1 | Yes | Range |  | ช่วงข้อมูลแรกที่จะตรวจสอบตามเงื่อนไข ต้องเป็น cell range (ไม่ใช่ array) และต้องมีขนาด (จำนวน rows × columns) เท่ากับทุก criteria_range อื่นๆ ในฟังก์ชันเดียวกัน รองรับการอ้างอิง table column (Table[Column]) หรือ named range |
| criteria1 | Yes | Number/Text/Expression/Cell Reference |  | เงื่อนไขสำหรับ criteria_range1 รองรับหลายรูปแบบ: ตัวเลข (100), ข้อความ ("Apple"), นิพจน์เปรียบเทียบ (">100", "100" ไม่ใช่ >100 สำหรับ dynamic criteria ให้ใช้ & concatenate เช่น ">"&B2 |
| criteria_range2 | No | Range |  | ช่วงข้อมูลเพิ่มเติมสำหรับเงื่อนไขที่ 2 ต้องมีขนาดเท่ากับ criteria_range1 ทุกประการ (จำนวน rows และ columns เท่ากัน) criteria_range ทั้งหมดไม่จำเป็นต้องติดกัน แต่ต้องมีขนาดตรงกัน รองรับได้สูงสุด 127 คู่ criteria_range/criteria |
| criteria2 | No | Number/Text/Expression/Cell Reference |  | เงื่อนไขสำหรับ criteria_range2 รูปแบบเดียวกับ criteria1 สามารถใช้ criteria_range เดียวกันหลายครั้งกับ criteria ต่างกัน เช่น COUNTIFS(A:A, ">60", A:A, " |

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

### สร้างรายงานยอดขายตามเงื่อนไข

นับจำนวนรายการขายที่อยู่ในช่วงวันที่ ภูมิภาค และสถานะที่กำหนด เหมาะสำหรับทำ dashboard แบบ real-time

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

### ตรวจสอบคุณภาพข้อมูล

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

_เหมาะกับ:_ data-validation

### วิเคราะห์ KPI และ metrics

นับจำนวนงานที่อยู่ใน SLA, นับจำนวน tasks ตาม priority และ status, หรือนับ tickets ที่ยังไม่จบภายในกำหนด

_เหมาะกับ:_ performance-tracking

### จัดทำสถิติข้อมูล

นับจำนวนนักเรียนที่ได้คะแนนในช่วงที่กำหนด (เกรด A, B, C) หรือนับจำนวนผลิตภัณฑ์ตามหมวดหมู่และสต็อก

_เหมาะกับ:_ statistical-reporting

### วิเคราะห์พฤติกรรมลูกค้า

นับจำนวนลูกค้าที่ซื้อสินค้าในช่วงเวลา ช่วงราคา และหมวดหมู่ที่กำหนด เพื่อวิเคราะห์แนวโน้ม

_เหมาะกับ:_ customer-analytics

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: พื้นฐาน - เงื่อนไขเดียว (เทียบเท่า COUNTIF)

```excel
=COUNTIFS(Sales[Status], "Completed")
```

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

นับรายการทั้งหมดที่มี Status เป็น "Completed" ในตาราง Sales
.
แม้ว่า COUNTIFS จะออกแบบมาสำหรับหลายเงื่อนไข แต่ก็ใช้กับเงื่อนไขเดียวได้เหมือน COUNTIF เปี๊ยบ ส่วนตัวผมแนะนำให้ใช้ COUNTIFS เสมอครับ เพราะถ้าวันหนึ่งต้องเพิ่มเงื่อนไขอื่น ก็แค่เติมต่อท้ายได้เลย ไม่ต้องมาเปลี่ยนฟอร์มูลาใหม่ 😎

### 2. ตัวอย่างที่ 2: สองเงื่อนไข - AND logic พื้นฐาน

```excel
=COUNTIFS(Sales[Region], "North", Sales[Amount], ">1000")
```

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

นับรายการที่ Region="North" และ Amount>1000 พร้อมกัน ต้องตรงทั้งสองเงื่อนไขถึงจะนับ (AND logic)
.
สังเกตว่า operator > ต้องอยู่ใน quotes เป็น ">1000" เสมอนะครับ ถ้าเขียนแค่ >1000 (ไม่มี quotes) Excel จะ error ทันที นี่คือรูปแบบพื้นฐานของ COUNTIFS ที่ใช้บ่อยที่สุด

### 3. ตัวอย่างที่ 3: สามเงื่อนไข - ตรวจสอบหลายมิติ

```excel
=COUNTIFS(Sales[Region], "North", Sales[Amount], ">1000", Sales[Status], "Completed")
```

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

นับรายการที่ตรงทั้ง 3 เงื่อนไข: (1) Region="North" และ (2) Amount>1000 และ (3) Status="Completed" การเพิ่มเงื่อนไขที่ 3 ทำให้ผลลัพธ์ลดลงจาก 23 เหลือ 18 เพราะกรองเฉพาะรายการที่ Completed แล้ว ตัวอย่างนี้แสดงให้เห็นว่า COUNTIFS ยิ่งมีเงื่อนไขมากเท่าไร ผลลัพธ์ยิ่งเฉพาะเจาะจงขึ้น

### 4. ตัวอย่างที่ 4: ช่วงตัวเลข - Between (ใช้ range เดียวกันสองครั้ง)

```excel
=COUNTIFS(Scores[Score], ">60", Scores[Score], "<=80")
```

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

นับคะแนนที่อยู่ในช่วง 60 < Score

### 5. ตัวอย่างที่ 5: ช่วงวันที่ - ใช้ DATE function

```excel
=COUNTIFS(Orders[Date], ">="&DATE(2024,1,1), Orders[Date], "<"&DATE(2024,2,1))
```

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

นับรายการทั้งหมดในเดือน ม.ค. 2024 (1 มกราคม ถึง 31 มกราคม) ใช้ DATE(2024,1,1) สร้างวันที่ 1 ม.ค. และ DATE(2024,2,1) สร้างวันที่ 1 ก.พ. แล้วใช้ operator >= และ < เพื่อครอบคลุมทั้งเดือน สังเกตการใช้ & (ampersand) เพื่อ concatenate operator กับ DATE function เป็น ">="&DATE(...) แทนการ hardcode วันที่เป็นข้อความ วิธีนี้ทำให้ฟอร์มูลาทำงานถูกต้องแม้ Excel ตั้งค่า regional format ต่างกัน

### 6. ตัวอย่างที่ 6: Wildcard - ค้นหา pattern ข้อความ

```excel
=COUNTIFS(Products[Name], "iPhone*", Products[Stock], ">0")
```

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

นับสินค้าที่ชื่อขึ้นต้นด้วย "iPhone" (เช่น iPhone 15, iPhone 15 Pro, iPhone SE) และมีสต็อกมากกว่า 0 wildcard * แทนตัวอักษรกี่ตัวก็ได้ต่อท้าย ดังนั้น "iPhone*" จะ match iPhone ตามด้วยอะไรก็ได้ wildcard อื่นๆ ได้แก่ ? (แทนตัวอักษรหนึ่งตัว) และ ~ (escape character สำหรับค้นหา * หรือ ? จริงๆ)

### 7. ตัวอย่างที่ 7: Wildcard - ค้นหาข้อความที่มีคำใดๆ ในนั้น

```excel
=COUNTIFS(Customers[Company], "*กรุงเทพ*", Customers[Status], "Active")
```

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

นับบริษัทที่มีคำว่า "กรุงเทพ" อยู่ที่ไหนก็ได้ในชื่อ (เช่น "บริษัท ABC กรุงเทพ จำกัด" หรือ "กรุงเทพประกันภัย") และมีสถานะเป็น Active pattern "*กรุงเทพ*" ใช้ * ทั้งหน้าและหลัง หมายความว่าอนุญาตให้มีตัวอักษรใดๆ ทั้งก่อนและหลังคำว่ากรุงเทพ การค้นหาแบบนี้ case-insensitive (ไม่แยกตัวพิมพ์ใหญ่เล็ก)

### 8. ตัวอย่างที่ 8: ตรวจสอบเซลล์ว่างและไม่ว่าง

```excel
=COUNTIFS(Forms[Name], "<>", Forms[Email], "<>", Forms[Phone], "<>")
```

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

นับจำนวนแถวที่ทุกฟิลด์ (Name, Email, Phone) ถูกกรอกครบ (ไม่ว่าง) criteria "" หมายถึง "ไม่เท่ากับเซลล์ว่าง" ตรงข้ามกับ "" ที่หมายถึง "เซลล์ว่าง" ตัวอย่างนี้เหมาะสำหรับตรวจสอบความสมบูรณ์ของข้อมูล (data completeness) หรือนับจำนวนฟอร์มที่กรอกครบถ้วน

### 9. ตัวอย่างที่ 9: Dynamic criteria - ใช้ cell reference

```excel
=COUNTIFS(Sales[Region], B2, Sales[Amount], ">"&C2, Sales[Date], ">="&D2)
```

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

นับรายการตามเงื่อนไขที่อยู่ในเซลล์ B2, C2, D2 (dynamic criteria) สมมติ B2="North", C2=1000, D2=DATE(2024,1,1) ฟังก์ชันจะนับ Region="North" และ Amount>1000 และ Date>=01/01/2024 การใช้ cell reference ทำให้เปลี่ยนเงื่อนไขได้โดยไม่ต้องแก้ฟอร์มูลา สำหรับ operators (>, >=, C2

### 10. ตัวอย่างที่ 10: OR logic - ใช้ SUM กับ array constant

```excel
=SUM(COUNTIFS(Tickets[Status], {"Open","In Progress","Pending"}))
```

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

นับ tickets ที่มี status เป็น "Open" หรือ "In Progress" หรือ "Pending" (OR logic - เงื่อนไขใดเงื่อนไขหนึ่ง) เนื่องจาก COUNTIFS รองรับเฉพาะ AND logic เราจึงใช้เทคนิค array constant {"Open","In Progress","Pending"} ใน criteria ซึ่ง COUNTIFS จะนับแต่ละค่าแยกกัน (คืน array {45,32,12}) แล้วใช้ SUM รวมผลลัพธ์ทั้งหมด = 89 เทคนิคนี้ใช้ได้เมื่อต้องการ OR สำหรับเงื่อนไขเดียว ถ้า OR หลายเงื่อนไขให้ใช้ SUMPRODUCT แทน

### 11. ตัวอย่างที่ 11: Advanced - Multiple wildcards และ range

```excel
=COUNTIFS(Products[SKU], "PRD-???-*", Products[Category], "Electronics", Products[Price], ">=10000", Products[Price], "<=50000", Products[Stock], ">0")
```

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

นับสินค้าที่ตรงทุกเงื่อนไข: (1) SKU มี pattern PRD-xxx-* เช่น PRD-001-A, PRD-999-XYZ (??? = 3 ตัวอักษรใดก็ได้, * = ตามด้วยอะไรก็ได้), (2) Category="Electronics", (3) ราคา 10,000-50,000 บาท (ใช้ criteria_range เดียวกันสองครั้ง), (4) มีสต็อก>0 ตัวอย่างนี้แสดงการผสมใช้ wildcard, range comparison, และ exact match ในฟอร์มูลาเดียว เหมาะสำหรับการวิเคราะห์ข้อมูลที่ซับซ้อน

### 12. ตัวอย่างที่ 12: Real-world - Dashboard summary

```excel
=COUNTIFS(Projects[StartDate], ">="&DATE(YEAR(TODAY()),1,1), Projects[StartDate], "<="&TODAY(), Projects[Status], "Completed", Projects[Budget], ">1000000", Projects[Department], B5)
```

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

นับโครงการที่เริ่มในปีนี้ (ตั้งแต่ 1 ม.ค. ถึงวันนี้) ที่เสร็จสมบูรณ์แล้ว มีงบประมาณเกิน 1 ล้านบาท และเป็นของแผนกที่ระบุในเซลล์ B5 ฟอร์มูลานี้ใช้ DATE(YEAR(TODAY()),1,1) สร้างวันที่ 1 มกราคมของปีปัจจุบันแบบ dynamic และใช้ TODAY() เป็นวันสิ้นสุดช่วง ทำให้ฟอร์มูลาอัปเดตอัตโนมัติทุกวัน เหมาะสำหรับ dashboard ที่ต้องการข้อมูล real-time โดยไม่ต้องแก้ฟอร์มูลา

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

💡 **เทคนิคที่ผมใช้บ่อย:**
.
COUNTIFS เป็นฟังก์ชันที่ผมใช้บ่อยมากสำหรับทำ dashboard และ summary report เพราะมันนับตามเงื่อนไขหลายข้อพร้อมกันได้ (AND logic) ส่วนตัวผมมักใช้ร่วมกับ wildcard characters เช่น "*phone*" เพื่อหาข้อความที่มีคำว่า phone อยู่ที่ตำแหน่งไหนก็ได้
.
**Pattern ที่ใช้บ่อย:**
```
=COUNTIFS(A:A, "North", B:B, ">1000")           → นับ North + ยอดเกิน 1000
=COUNTIFS(A:A, "*phone*", B:B, "Active")        → นับมี phone + Active
=COUNTIFS(A:A, ">=5", A:A, "1000" ไม่ใช่ >1000
- COUNTIFS ไม่แยกตัวพิมพ์ใหญ่-เล็ก (case-insensitive) ถ้าต้องการแยกต้องใช้ SUMPRODUCT + EXACT
.
**Wildcard Characters:**
- `*` = แทนตัวอักษรกี่ตัวก็ได้ (0 ตัวขึ้นไป)
- `?` = แทนตัวอักษร 1 ตัวเท่านั้น
- `~` = escape character สำหรับหา * หรือ ? จริงๆ
.
ส่วนตัวผมใช้ COUNTIFS เป็นหลักในการทำ KPI tracking และ quality control มากครับ เจ๋งและยืดหยุ่นมาก 💡

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

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

COUNTIF รองรับได้แค่หนึ่งเงื่อนไข (criteria_range, criteria) เหมาะสำหรับงานง่ายๆ เช่น =COUNTIF(A:A, "Red")
.
ส่วน COUNTIFS รองรับได้สูงสุด 127 คู่เงื่อนไข เหมาะสำหรับการวิเคราะห์ที่ซับซ้อน เช่น =COUNTIFS(A:A, "Red", B:B, ">100", C:C, "Active")
.
ถ้ามีเงื่อนไขเดียว ทั้งสองฟังก์ชันทำงานเหมือนกันเลย แต่ส่วนตัวผมแนะนำให้ใช้ COUNTIFS เสมอครับ เพราะ (1) รองรับการเพิ่มเงื่อนไขในอนาคต (2) syntax สอดคล้องกับ SUMIFS, AVERAGEIFS ที่ใช้บ่อย (3) เป็นมาตรฐานใหม่ตั้งแต่ Excel 2007 อยู่แล้ว 😎

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

ปัญหานี้เจอบ่อยมากครับ 😅 #VALUE! error ใน COUNTIFS มักเกิดจาก 3 สาเหตุหลักๆ:
.
(1) ขนาด criteria_range ไม่เท่ากัน - นี่คือสาเหตุอันดับ 1 เลย ทุก criteria_range ต้องมีจำนวน rows และ columns เท่ากันทุกประการ เช่น ถ้า criteria_range1 = A1:A100 (100 rows) ทุก criteria_range อื่นต้องเป็น 100 rows เช่นกัน วิธีแก้: ตรวจสอบ range ทุกตัวด้วย ROWS() และ COLUMNS()
.
(2) อ้างอิง workbook ภายนอกที่ปิดอยู่ - COUNTIFS ไม่รองรับ closed workbook วิธีแก้: เปิดไฟล์ที่อ้างอิงหรือ copy ข้อมูลมาไว้ workbook เดียวกัน
.
(3) criteria ยาวเกิน 255 ตัวอักษร - Excel จำกัด string length วิธีแก้: ใช้ helper column หรือแยกเงื่อนไขออก

**Q: COUNTIFS แยกตัวพิมพ์ใหญ่-เล็ก (case-sensitive) หรือไม่?**

ไม่แยกครับ COUNTIFS เป็น case-insensitive เช่น "RED", "Red", "red", "rEd" มันถือว่าเป็นค่าเดียวกันหมด
.
ดังนั้น =COUNTIFS(A:A, "Apple") จะนับทั้ง "Apple", "apple", "APPLE" รวมกันไปหมด 😅
.
ถ้าต้องการนับแบบ case-sensitive (แยกตัวพิมพ์ใหญ่-เล็ก) ให้ใช้ SUMPRODUCT ร่วมกับ EXACT แทน เช่น =SUMPRODUCT((EXACT(A2:A100,"Apple"))*(B2:B100>100)) จะนับเฉพาะ "Apple" (ตัวพิมพ์ตรงทุกตัว) ที่คอลัมน์ B >100
.
EXACT เป็นฟังก์ชันเดียวใน Excel ที่แยกตัวพิมพ์ใหญ่-เล็กได้ครับ

**Q: จะใช้ wildcard ได้อย่างไร และมีอะไรบ้าง?**

COUNTIFS รองรับ wildcard 3 ตัวครับ:
.
(1) * (asterisk) = แทนตัวอักษรกี่ตัวก็ได้ เช่น "*ไทย" = ลงท้ายด้วยไทย, "ไทย*" = ขึ้นต้นด้วยไทย, "*ไทย*" = มีคำว่าไทยอยู่ที่ไหนก็ได้
.
(2) ? (question mark) = แทนตัวอักษร 1 ตัวเท่านั้น เช่น "??-???" = 2 ตัวอักษร ตามด้วย - แล้วตามด้วย 3 ตัวอักษร (เช่น AB-CDE)
.
(3) ~ (tilde) = escape character สำหรับค้นหา * หรือ ? จริงๆ เช่น "~*" = ค้นหาเครื่องหมาย * (ไม่ใช่ wildcard)
.
ตัวอย่าง: =COUNTIFS(A:A, "Prod-???-*", B:B, ">100") นับรายการที่ A มี pattern Prod-xxx-อะไรก็ได้ และ B >100

**Q: จะนับแบบ OR logic (เงื่อนไขใดเงื่อนไขหนึ่ง) ได้อย่างไร?**

COUNTIFS รองรับแค่ AND logic (ทุกเงื่อนไขต้องเป็นจริงพร้อมกัน) ถ้าอยากใช้ OR logic (เงื่อนไขใดเงื่อนไขหนึ่ง) มี 3 วิธีครับ:
.
(1) ใช้ SUM + array constant (เหมาะกับ OR เงื่อนไขเดียว) เช่น =SUM(COUNTIFS(A:A, {"Red","Blue","Green"})) นับ Red หรือ Blue หรือ Green
.
(2) ใช้ COUNTIF หลายตัวบวกกัน เช่น =COUNTIF(A:A,"Red")+COUNTIF(A:A,"Blue")
.
(3) ใช้ SUMPRODUCT สำหรับ OR หลายเงื่อนไข เช่น =SUMPRODUCT(((A2:A100="Red")+(A2:A100="Blue"))*(B2:B100>100)) นับ (Red หรือ Blue) และ B>100
.
ส่วนตัวผมแนะนำให้ใช้ SUMPRODUCT ถ้า logic ซับซ้อน เพราะยืดหยุ่นที่สุดครับ 😎

**Q: ทำไมนับตัวเลขยาวๆ (เช่น เลขบัตรประชาชน) ไม่ถูกต้อง?**

นี่เป็นปัญหาที่เจอบ่อยมากครับ 😭 Excel จัดเก็บตัวเลขได้แค่ 15 หลัก ถ้ายาวกว่านี้ (เช่น เลขบัตรประชาชน 13 หลัก, เลขบัญชี 16 หลัก) Excel จะปัดเศษหลักที่ 16+ เป็น 0 ทันที ทำให้ 1234567890123456 กลายเป็น 1234567890123450
.
วิธีแก้มี 3 วิธี:
.
(1) จัดเก็บเป็น Text แทน โดยใส่เครื่องหมาย ' หน้าตัวเลข (เช่น '1234567890123) หรือ format cell เป็น Text ก่อนกรอกข้อมูล
.
(2) ใช้ criteria เป็น text เช่น =COUNTIFS(A:A, "1234567890123") ไม่ใช่ =COUNTIFS(A:A, 1234567890123)
.
(3) ถ้า import จาก CSV ต้อง import เป็น Text column ตั้งแต่แรก มิฉะนั้นข้อมูลเสียหายแล้วครับ

**Q: จะนับเซลล์ว่าง (blank) และไม่ว่าง (non-blank) อย่างไร?**

สำหรับเซลล์ว่าง ใช้ criteria เป็น "" (empty string) เช่น =COUNTIFS(A:A, "") นับเซลล์ว่างในคอลัมน์ A หรือ =COUNTIFS(A:A, "", B:B, "") นับแถวที่ A และ B ว่างพร้อมกัน สำหรับเซลล์ไม่ว่าง ใช้ criteria เป็น "" เช่น =COUNTIFS(A:A, "") นับเซลล์ที่มีค่าใดๆ (ไม่ว่าง) หรือ =COUNTIFS(A:A, "", B:B, "", C:C, "") นับแถวที่ A, B, C ไม่ว่างทั้งหมด (ใช้ตรวจสอบความสมบูรณ์ของข้อมูล) หมายเหตุ: COUNTBLANK ใช้สำหรับนับเซลล์ว่างเท่านั้น ไม่รองรับเงื่อนไขเพิ่มเติม ส่วน COUNTA นับเซลล์ไม่ว่างทั้งหมดโดยไม่มีเงื่อนไข

**Q: จะนับวันที่ในช่วงที่กำหนด (date range) อย่างไร?**

นับวันที่ในช่วงให้ใช้ criteria_range เดียวกันสองครั้งกับ operators >= และ < เช่น =COUNTIFS(A:A, ">="&DATE(2024,1,1), A:A, "="&TODAY()-30, Status, "Active") นับรายการ Active ใน 30 วันล่าสุด

**Q: COUNTIFS รองรับ array formulas หรือ spill ranges หรือไม่?**

ไม่ COUNTIFS ต้องการ static ranges เท่านั้น (cell ranges ที่อ้างอิงตรงๆ) ไม่รองรับ array formulas หรือ dynamic spill ranges ที่ได้จากฟังก์ชัน เช่น =COUNTIFS(FILTER(...), criteria) จะ error เพราะ FILTER คืน array ไม่ใช่ range ถ้าต้องการนับจาก dynamic array ให้ใช้ SUMPRODUCT แทน เช่น =SUMPRODUCT((FILTER(A:B,C:C="X")=criteria)*1) หรือใช้ helper column เก็บผลลัพธ์จาก FILTER แล้ว COUNTIFS จาก helper column ตัวอย่าง: แทน =COUNTIFS(UNIQUE(A:A), ">100") (error) ใช้ =SUMPRODUCT((UNIQUE(A:A)>100)*1) หรือใส่ =UNIQUE(A:A) ในเซลล์ D1 แล้วใช้ =COUNTIFS(D:D, ">100") แทน ข้อจำกัดนี้เป็น Excel limitation ไม่ใช่ bug

**Q: จะใช้ COUNTIFS กับ Table (structured references) อย่างไร?**

COUNTIFS ทำงานได้ดีกับ Excel Tables และแนะนำให้ใช้ structured references เสมอเพราะ (1) ชัดเจน อ่านง่าย (2) auto-expand เมื่อเพิ่มแถว (3) ไม่ต้องล็อค range ด้วย $ syntax: =COUNTIFS(TableName[ColumnName], criteria) เช่น =COUNTIFS(Sales[Region], "North", Sales[Amount], ">1000") หมายถึงนับในตาราง Sales คอลัมน์ Region="North" และคอลัมน์ Amount>1000 สามารถใช้ [@ColumnName] สำหรับแถวเดียวกัน เช่น =COUNTIFS(Sales[Region], [@Region]) นับจำนวนรายการที่มี Region เดียวกับแถวปัจจุบัน หรือใช้ Table[#All] สำหรับทั้งตารางรวม header, Table[#Data] สำหรับข้อมูลอย่างเดียว, Table[#Headers] สำหรับ header row ตัวอย่างการผสม: =COUNTIFS(Sales[Region], B2, Sales[Date], ">="&Sales[[#Headers],[Date]]) นับ region จาก B2 ที่วันที่ >= header column Date

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

- [AVERAGEIFS – คำนวณค่าเฉลี่ยตามหลายเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/averageifs/)
- [COUNT – ฟังก์ชันนับจำนวนตัวเลข](https://www.thepexcel.com/functions/excel/statistical/count/)
- [COUNTA – ฟังก์ชันนับเซลล์ที่ไม่ว่าง](https://www.thepexcel.com/functions/excel/statistical/counta/)
- [COUNTBLANK – นับเซลล์ว่าง](https://www.thepexcel.com/functions/excel/statistical/countblank/)
- [COUNTIF – นับจำนวนแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/countif/)
- [FILTER – ฟังก์ชันกรองข้อมูลแบบไดนามิก](https://www.thepexcel.com/functions/excel/lookup-and-reference/filter/)
- [MAXIFS – หาค่าสูงสุดแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/maxifs/)
- [MINIFS – หาค่าต่ำสุดแบบมีเงื่อนไข](https://www.thepexcel.com/functions/excel/statistical/minifs/)
- [SUMIFS – ฟังก์ชันบวกตามหลายเงื่อนไข](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumifs/)
- [ฟังก์ชัน SUMPRODUCT ใน Excel](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumproduct/)
- [UNIQUE – ฟังก์ชันดึงค่าที่ไม่ซ้ำ](https://www.thepexcel.com/functions/excel/lookup-and-reference/unique/)

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

- [Microsoft Support: COUNTIFS function](https://support.microsoft.com/en-us/office/countifs-function-dda3dc6e-f74e-4aee-88bc-aa8c2a866842) _(documentation)_
- [ExcelJet: Excel COUNTIFS function](https://exceljet.net/functions/countifs-function) _(guide)_
- [Microsoft Support: Count numbers or dates based on a condition](https://support.microsoft.com/en-us/office/count-numbers-or-dates-based-on-a-condition-in-excel-976d0074-245d-49e6-bf5f-1207983f82ed) _(tutorial)_

---

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