Thep Excel

COUNTX – นับจำนวนแถวจากนิพจน์ที่คำนวณต่อแถว

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

=COUNTX(<table>, <expression>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
5/10

Usefulness
6/10

Syntax & Arguments

=COUNTX(<table>, <expression>)

Argument Type Required Default Description
table table Yes ตารางที่ต้องการไล่ประเมินทีละแถว เช่น Sales, Product หรือผลลัพธ์จาก FILTER
expression scalar Yes นิพจน์ที่ประเมินในแต่ละแถว ต้องได้ผลเป็นค่าสเกลาร์ (ตัวเลข ข้อความ วันที่ ฯลฯ) ส่วน TRUE/FALSE ใช้ COUNTAX แทน

How it works

นับจำนวนแถวที่คำนวณยอดต่อบรรทัดได้

เช่น จำนวนแถวที่ (จำนวน * ราคา) ได้ผลลัพธ์ไม่ว่าง

นับจำนวนค่าที่ได้จากนิพจน์ต่อแถวในตารางที่ถูกกรอง

ใช้กับตารางที่ถูกกรอง/สรุปมาแล้ว เพื่อควบคุมแถวที่ถูกนับ

Examples

ตัวอย่างที่ 1: นับจำนวนแถวที่มี Line Amount ไม่ว่าง
Count Items Sold = COUNTX( Sales, Sales[Quantity] * Sales[UnitPrice] )
COUNTX ประเมินการคำนวณ Quantity * UnitPrice ในแต่ละแถว แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง สิ่งนี้มีประโยชน์เมื่อคอลัมน์ Line Amount ไม่ได้อยู่ในตารางจริง ๆ
DAX Formula:

Count Items Sold =
COUNTX(
    Sales,
    Sales[Quantity] * Sales[UnitPrice]
)

Result:

จำนวนแถวที่มี Line Amount ไม่ว่าง เช่น 450 แถว

ตัวอย่างที่ 2: นับจำนวนลูกค้าที่มีอัตราส่วน (with DIVIDE)
Customers with Valid Ratio = COUNTX( Customer, DIVIDE(Customer[TotalPurchase], Customer[AvgOrderValue], 0) )
DIVIDE ส่งคืน 0 เมื่อตัวหารเป็น 0 แต่ถ้าเราใช้ DIVIDE(…, BLANK()) แล้ว COUNTX จะนับแค่แถวที่อัตราส่วนเป็นจริง
DAX Formula:

Customers with Valid Ratio =
COUNTX(
    Customer,
    DIVIDE(Customer[TotalPurchase], Customer[AvgOrderValue], 0)
)

Result:

จำนวนลูกค้าที่สามารถคำนวณอัตราส่วนได้ (ไม่ BLANK) เช่น 1250 คน

ตัวอย่างที่ 3: นับจำนวนสินค้าในหมวดนั้น ๆ ที่มีราคา
Active Products in Category = COUNTX( FILTER(Product, Product[Category] = "Electronics"), Product[ListPrice] )
ใช้ FILTER เพื่อกรองตารางให้แสดงเฉพาะ Electronics แล้ว COUNTX นับว่ามีกี่รายการ (ที่มี ListPrice ไม่ว่าง)
DAX Formula:

Active Products in Category =
COUNTX(
    FILTER(Product, Product[Category] = "Electronics"),
    Product[ListPrice]
)

Result:

จำนวนสินค้า Electronics ที่มีราคากำหนด เช่น 82 รายการ

ตัวอย่างที่ 4: นับจำนวนแถวที่มีข้อมูล shipping address ไม่ว่าง
Orders with Shipping Address = COUNTX( Sales, Sales[ShippingAddress] )
COUNTX นำไปใช้กับข้อความและค่าประเภทอื่น ๆ ได้ ไม่ใช่แค่ตัวเลข นับแค่แถวที่ ShippingAddress ไม่ว่างเท่านั้น
DAX Formula:

Orders with Shipping Address =
COUNTX(
    Sales,
    Sales[ShippingAddress]
)

Result:

จำนวนออร์เดอร์ที่มีที่อยู่จัดส่ง เช่น 5,340 ออร์เดอร์

FAQs

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

COUNT นับเฉพาะค่าตัวเลขในคอลัมน์ (ไม่นับข้อความหรือวันที่) ส่วน COUNTX ให้นับจากนิพจน์ที่คำนวณต่อแถว ยืดหยุ่นมากขึ้น

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

COUNTA นับค่าที่ไม่ว่างในคอลัมน์ (ข้อความ ตัวเลข วันที่ ฯลฯ) ส่วน COUNTX นับจากนิพจน์ที่คำนวณ ถ้าแค่นับคอลัมน์ง่าย ๆ ให้ใช้ COUNTA ที่เร็วกว่า

COUNTX ต่างจาก COUNTAX อย่างไร?

COUNTX ใช้กับข้อมูลตัวเลข ข้อความ วันที่ ส่วน COUNTAX นำไปใช้กับ Boolean (TRUE/FALSE) ได้ ถ้าคำนวณแล้วได้ TRUE/FALSE ให้ใช้ COUNTAX

ทำไม COUNTX อาจจะช้ากว่าฟังก์ชันอื่น?

COUNTX เป็น iterator: มันต้องไล่ประเมินนิพจน์ในแต่ละแถว ถ้าตารางมี 1 ล้านแถว มันประเมิน 1 ล้นครั้ง ถ้าแค่นับคอลัมน์ง่าย ๆ ให้ใช้ COUNT/COUNTA

ใช้ COUNTX ร่วมกับ FILTER ได้ไหม?

ได้ เหมาะมาก COUNTX(FILTER(…), expression) ใช้ FILTER เพื่อกรองแถวก่อน แล้วให้ COUNTX นับเฉพาะที่กรองแล้ว

COUNTX ส่งคืน BLANK ได้ไหม?

ได้ ถ้าทุกแถวประเมินแล้วได้ BLANK (เช่น DIVIDE ที่ตัวหารเป็น 0 ทั้งหมด) COUNTX ก็ส่งคืน BLANK

Resources & Related

Additional Notes

COUNTX เป็นฟังก์ชัน iterator ที่เจ๋งมากสำหรับการนับแบบ “ตามเงื่อนไขคำนวณ” คำว่า iterator หมายความว่ามันจะไล่ทีละแถว ประเมินนิพจน์ในแต่ละแถว แล้วนับว่ามีกี่แถวที่ได้ผลลัพธ์ไม่ว่าง (ไม่เป็น BLANK).

ตัวอย่างเช่น ถ้าเราอยากนับจำนวนแถวที่มีมูลค่ารวมสินค้า (Quantity × UnitPrice) ไม่ว่าง COUNTX ก็คือเครื่องมือที่ใช่ เพราะค่านี้ไม่ได้อยู่ในตาราง แต่คำนวณมาจากสองคอลัมน์.

ส่วนตัวผมคิดว่า COUNTX เป็นหนึ่งในฟังก์ชันที่ดูเรียบง่ายแต่มีพลัง ต่างจาก COUNT ที่นับแค่ค่าตัวเลขในคอลัมน์เดียว COUNTX ให้เราคำนวณกว่า ๆ ได้ 😎

Leave a Reply

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