Thep Excel

COUNTA – นับค่าไม่ว่างทุกชนิดในคอลัมน์

COUNTA นับจำนวนเซลล์ที่มีค่าไม่ว่าง (non-blank) ในคอลัมน์ โดยรวมตัวเลข ข้อความ วันที่ และค่าตรรกะ ต่างจาก COUNT ที่นับเฉพาะตัวเลขเท่านั้น

=COUNTA(<column>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=COUNTA(<column>)

Argument Type Required Default Description
column Column Yes คอลัมน์ที่ต้องการนับจำนวนค่าไม่ว่าง ยอมรับทุกชนิดข้อมูล (ตัวเลข ข้อความ วันที่ Boolean)

How it works

นับจำนวนรายการที่มีการกรอกค่า

เช่น นับจำนวนแถวที่มีการกรอกหมายเหตุ/สถานะ

นับจำนวนรหัสที่ไม่ว่าง

เช่น นับจำนวน CustomerID ที่ถูกกรอก (รวมทั้งข้อความ)

Examples

ตัวอย่างพื้นฐาน: นับจำนวนลูกค้าที่มีชื่อ
Total Customers = COUNTA(Customers[Name])
COUNTA นับทุกเซลล์ที่มีข้อมูลในคอลัมน์ Name ไม่ว่าจะเป็น "John Smith" หรือค่าใด ก็ตามที่ไม่ว่าง
DAX Formula:

Total Customers =
COUNTA(Customers[Name])

Result:

จำนวนแถวที่ Name ไม่ว่างในบริบทตัวกรองปัจจุบัน

ตัวอย่างการวัด Data Quality: นับค่าของหมายเลขโทรศัพท์
Customers With Phone = COUNTA(Customers[Phone])
ใช้วัดว่ากี่ลูกค้าที่มีข้อมูลหมายเลขโทรศัพท์ ถ้านับได้น้อยกว่าจำนวนลูกค้าทั้งหมด แปลว่าข้อมูล Phone มี gap
DAX Formula:

Customers With Phone =
COUNTA(Customers[Phone])

Result:

จำนวนลูกค้าที่มีหมายเลขโทรศัพท์

ตัวอย่างการนับที่มีเงื่อนไข: นับหมายเหตุที่ไม่ว่างในคำสั่งซื้อ
Orders With Notes = CALCULATE( COUNTA(Orders[Notes]), Orders[Status] = "Completed" )
ใช้ CALCULATE เพื่อนับ COUNTA ภายใต้เงื่อนไข – ในที่นี้นับเฉพาะคำสั่งซื้อที่ Status เป็น 'Completed' เท่านั้น
DAX Formula:

Orders With Notes =
CALCULATE(
    COUNTA(Orders[Notes]),
    Orders[Status] = "Completed"
)

Result:

จำนวนคำสั่งซื้อที่เสร็จสิ้นและมีหมายเหตุไม่ว่าง

ตัวอย่างเปรียบเทียบ COUNT vs COUNTA: ข้อมูลตัวเลขที่มีข้อความปะปนอยู่
COUNT(Sales[Amount]) =COUNTA(Sales[Amount])
ถ้า Amount คอลัมน์มี 100 แถว แต่ 10 แถว เป็นข้อความ COUNT จะคืน 90 แต่ COUNTA จะคืน 100
DAX Formula:

=COUNT(Sales[Amount])
=COUNTA(Sales[Amount])

Result:

COUNT: นับเฉพาะแถวที่ Amount เป็นตัวเลข
COUNTA: นับทุกแถวที่ Amount ไม่ว่าง (รวมข้อความด้วย)

ตัวอย่างการจับข้อมูลว่าง: นับค่าไม่ว่างและวิธีหาค่าว่าง
Non-Blank Email Count = COUNTA(Customers[Email]) Blank Email Count = COUNTROWS(Customers) - COUNTA(Customers[Email])
ใช้ COUNTA ร่วมกับ COUNTROWS เพื่อหาจำนวนแถวที่ค่าว่าง
DAX Formula:

Non-Blank Email Count =
COUNTA(Customers[Email])

Blank Email Count =
COUNTROWS(Customers) - COUNTA(Customers[Email])

Result:

Non-Blank: จำนวนที่มี Email
Blank: จำนวนที่ Email ว่าง

FAQs

COUNTA ต่างจาก COUNT อย่างไร?

COUNTA นับค่าไม่ว่างทุกชนิด (ตัวเลข ข้อความ วันที่ Boolean) ส่วน COUNT นับเฉพาะตัวเลขและวันที่เท่านั้น ถ้าคอลัมน์มีข้อความปะปน COUNT จะให้ผลต่างจาก COUNTA

COUNTA นับค่าว่าง (BLANK) ไหม?

ไม่นับ BLANK COUNTA นับเฉพาะค่าที่ไม่ว่างเท่านั้น ถ้าต้องการนับจำนวน BLANK ให้ใช้ COUNTBLANK หรือ COUNTROWS – COUNTA

COUNTA กับ COUNTX ต่างกันอย่างไร?

COUNTA นับค่าไม่ว่างในคอลัมน์ COUNTX เป็น iterator ที่นับผลลัพธ์จากนิพจน์ที่ประเมินในแต่ละแถว ถ้าต้องการนับจากนิพจน์ (เช่นจำนวนกำไรที่มากกว่า 0) ให้ใช้ COUNTX

COUNTA เหมาะใช้ที่ไหน?

เหมาะกับการนับรายการที่มีข้อมูล การวัด data completeness การหาจำนวนลูกค้า ผลิตภัณฑ์ หรือรายการใดก็ตามที่ต้องนับเฉพาะแถวที่มีค่า

COUNTA ใช้ได้กับ DirectQuery ไหม?

ในการใช้ COUNTA กับ DirectQuery มีข้อจำกัด ใช้ได้ในบาง context แต่อาจไม่ได้ผลในทุก scenario โดยเฉพาะ calculated columns และ RLS rules ต้องตรวจสอบการสนับสนุนของแหล่งข้อมูล

Resources & Related

Additional Notes

COUNTA เป็นฟังก์ชัน aggregation พื้นฐานที่นับจำนวนค่าไม่ว่างในคอลัมน์ ใช้ในทั้ง measures และ calculated columns

ที่สำคัญคือ COUNTA นับทุกประเภทข้อมูล – ตัวเลข ข้อความ วันที่ Boolean ทั้งหมด ส่วน COUNT จะนับเฉพาะตัวเลขเท่านั้น นี่คือจุดต่างหลักที่ควรจำ

ส่วนตัวผม COUNTA เหมาะมากกับการวัด data quality – ถ้านับค่าไม่ว่างได้น้อย แปลว่าข้อมูลมี gap อยู่ 😎 มันทำให้คุณจับปัญหาการกรอกข้อมูลได้ง่ายขึ้น

อีกเรื่องที่ควรรู้: COUNTA ที่เรียกจากภายใน row context (เช่นใน calculated column) มันจะเกิด context transition – หมายความว่ามันจะเปลี่ยนจาก row context ไปเป็น filter context เพื่อนับค่าทั้งหมดในคอลัมน์นั้น

Leave a Reply

Your email address will not be published. Required fields are marked *