Thep Excel

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

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

fx
=COUNTA(<column>)

ความนิยม7/10
ความยาก2/10
ประโยชน์7/10

อัปเดต 13 December 2025

Syntax & Arguments

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

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 เพื่อนับค่าทั้งหมดในคอลัมน์นั้น

How it works

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

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

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

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

Examples

ตัวอย่างพื้นฐาน: นับจำนวนลูกค้าที่มีชื่อTotal Customers = COUNTA(Customers[Name])

COUNTA นับทุกเซลล์ที่มีข้อมูลในคอลัมน์ Name ไม่ว่าจะเป็น "John Smith" หรือค่าใด ก็ตามที่ไม่ว่าง

fx
Total Customers =
COUNTA(Customers[Name])

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

ใช้วัดว่ากี่ลูกค้าที่มีข้อมูลหมายเลขโทรศัพท์ ถ้านับได้น้อยกว่าจำนวนลูกค้าทั้งหมด แปลว่าข้อมูล Phone มี gap

fx
Customers With Phone =
COUNTA(Customers[Phone])

ผลลัพธ์จำนวนลูกค้าที่มีหมายเลขโทรศัพท์
ตัวอย่างการนับที่มีเงื่อนไข: นับหมายเหตุที่ไม่ว่างในคำสั่งซื้อOrders With Notes = CALCULATE( COUNTA(Orders[Notes]), Orders[Status] = "Completed" )

ใช้ CALCULATE เพื่อนับ COUNTA ภายใต้เงื่อนไข – ในที่นี้นับเฉพาะคำสั่งซื้อที่ Status เป็น 'Completed' เท่านั้น

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

ผลลัพธ์จำนวนคำสั่งซื้อที่เสร็จสิ้นและมีหมายเหตุไม่ว่าง
ตัวอย่างเปรียบเทียบ COUNT vs COUNTA: ข้อมูลตัวเลขที่มีข้อความปะปนอยู่COUNT(Sales[Amount]) =COUNTA(Sales[Amount])

ถ้า Amount คอลัมน์มี 100 แถว แต่ 10 แถว เป็นข้อความ COUNT จะคืน 90 แต่ COUNTA จะคืน 100

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

ผลลัพธ์COUNT: นับเฉพาะแถวที่ Amount เป็นตัวเลข
COUNTA: นับทุกแถวที่ Amount ไม่ว่าง (รวมข้อความด้วย)
ตัวอย่างการจับข้อมูลว่าง: นับค่าไม่ว่างและวิธีหาค่าว่างNon-Blank Email Count = COUNTA(Customers[Email]) Blank Email Count = COUNTROWS(Customers) – COUNTA(Customers[Email])

ใช้ COUNTA ร่วมกับ COUNTROWS เพื่อหาจำนวนแถวที่ค่าว่าง

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

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

ผลลัพธ์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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ COUNTA จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้COUNTAAggregation
Aggregation (8)
COUNT

COUNT นับจำนวนแถวที่คอลัมน์มีค่าไม่ว่าง (non-blank) รองรับตัวเลข วันที่ และข้อความ แต่ไม่นับ Boolean ทำงานภายใต้ filter context และเกิด context transition เมื่อใช้ใน row context เหมาะสำหรับนับรายการที่มีข้อมูลในคอลัมน์เฉพาะ แต่ควรใช้ COUNTROWS แทนเมื่อนับแถวทั้งหมด

COUNTAX

COUNTAX ประเมินนิพจน์ต่อแถวในตาราง แล้วนับจำนวนผลลัพธ์ที่ไม่ว่าง เหมาะกับการนับค่าที่อาจเป็นข้อความ ตรรกะ หรือนิพจน์ที่ซับซ้อน ไม่ใช่แค่ตัวเลข

COUNTBLANK

COUNTBLANK นับจำนวนค่า BLANK ในคอลัมน์ ช่วยวัดความครบถ้วนของข้อมูลและตรวจสอบคุณภาพข้อมูลภายใต้บริบทตัวกรองปัจจุบัน

COUNTROWS

COUNTROWS เป็นฟังก์ชันการรวม (Aggregation) ที่นับจำนวนแถวในตารางที่ระบุ ไม่ว่าจะเป็นตารางจริงในโมเดลหรือตารางเสมือน (Virtual Table) จากฟังก์ชันอื่นๆ เช่น FILTER, VALUES, DISTINCT นับเท่าไหร่? ผลลัพธ์ก็คือจำนวนแถวเต็ม ๆ

COUNTX

COUNTX ไล่ประเมินนิพจน์ทีละแถวในตาราง แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง เหมาะสำหรับการนับจากค่าที่คำนวณต่อแถว ไม่ใช่นับคอลัมน์ตรง ๆ

DISTINCTCOUNT

DISTINCTCOUNT นับจำนวนค่าที่แตกต่างกันทั้งหมดในคอลัมน์ รวมถึง BLANK values ถ้าไม่มีแถวข้อมูล จะคืนค่า BLANK

MAXA

MAXA คืนค่ามากสุดโดยตีความ TRUE=1, FALSE/BLANK=0 และข้ามข้อความที่ไม่ใช่ตัวเลข ใช้กับคอลัมน์ที่มีทั้งตัวเลขและค่าตรรกะเพื่อประเมินค่ามากสุดอย่างสอดคล้อง

MINA

MINA คืนค่าน้อยสุดโดยพิจารณา TRUE เป็น 1, FALSE/BLANK เป็น 0 และข้ามข้อความที่ไม่ใช่ตัวเลข ใช้กับคอลัมน์ที่มีตัวเลขและค่าตรรกะปนกันเพื่อหาค่าน้อยสุดอย่างมีบริบท

Filter (1)
CALCULATE

CALCULATE เป็นฟังก์ชันหลักที่สำคัญที่สุดใน DAX ใช้สำหรับ evaluate expression ภายใต้ filter context ที่ถูกปรับเปลี่ยน สามารถเพิ่มตัวกรองใหม่ ลบตัวกรองเดิม หรือแทนที่ filter ที่มีอยู่ได้ รองรับทั้ง Boolean expression และ table expression เป็น filter arguments พร้อม filter modifier functions เช่น REMOVEFILTERS, ALL, ALLEXCEPT, KEEPFILTERS เพื่อควบคุมการกรองอย่างละเอียด มีพฤติกรรมพิเศษคือ context transition ที่เปลี่ยน row context เป็น filter context โดยอัตโนมัติ ทำให้เป็นเครื่องมือหลักในการสร้าง measure ที่ซับซ้อนและ calculated column ที่ต้องใช้ aggregation

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่