Thep Excel

COUNTAX – นับผลลัพธ์ไม่ว่างจากนิพจน์แบบไล่ทีละแถว

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

=COUNTAX(<table>, <expression>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
5/10

Usefulness
5/10

Syntax & Arguments

=COUNTAX(<table>, <expression>)

Argument Type Required Default Description
table table Yes ตารางที่ต้องการไล่ประเมินทีละแถว อาจเป็น table ทั้งตัว หรือ FILTER ที่คืน table
expression scalar Yes นิพจน์ที่ประเมินในแต่ละแถว อาจคืนค่าข้อความ ตรรกะ ตัวเลข หรือวันที่ ตราบใดที่ไม่ใช่ table

How it works

นับจำนวนแถวที่นิพจน์คืนค่าข้อความไม่ว่าง

เช่น นับจำนวนแถวที่มีรหัส/สถานะที่ถูกคำนวณและไม่ว่าง

นับจำนวนแถวที่มีผลลัพธ์จริงจากเงื่อนไข

เมื่อนิพจน์อาจคืน BLANK ในบางแถว และคุณต้องการนับเฉพาะแถวที่ไม่ว่าง

Examples

นับจำนวนแถว Code ที่ไม่ว่าง
Product Count = COUNTAX(Products, Products[Code])
ใช้กับคอลัมน์ข้อความ COUNTAX จะนับแถวที่ Code ไม่ว่างเท่านั้น ซึ่งดีกว่า COUNTA ในกรณีที่ต้องการนับเฉพาะแถวที่ expression คืนค่า
DAX Formula:

Product Count =
COUNTAX(Products, Products[Code])

Result:

นับแถวที่ Products[Code] มีค่า

นับจำนวนแถวที่นิพจน์คำนวณได้ผลลัพธ์ที่ไม่ว่าง
Valid Sales Count = COUNTAX( Sales, IF(Sales[Quantity] > 0 && Sales[Amount] > 0, 1, BLANK()) )
ใช้ IF ร่วมกับ COUNTAX เพื่อนับแถวที่เข้าเงื่อนไข ถ้า condition เป็นจริง คืน 1 (non-blank) ถ้าเป็นเท็จ คืน BLANK ดังนั้น COUNTAX จะนับแต่แถวที่เข้าเงื่อนไข
DAX Formula:

Valid Sales Count =
COUNTAX(
    Sales,
    IF(Sales[Quantity] > 0 && Sales[Amount] > 0, 1, BLANK())
)

Result:

นับแถวที่ Quantity และ Amount ต่างก็มากกว่า 0

นับจำนวนแถว Notes ที่มีข้อมูล
Notes Count = COUNTAX(Orders, Orders[Notes])
เหมาะกับคอลัมน์ข้อความอักษร เพราะ COUNTAX นับค่าที่ไม่ว่าง และ COUNTA อาจนับอักษรว่างได้ขึ้นอยู่กับโครงสร้าง
DAX Formula:

Notes Count =
COUNTAX(Orders, Orders[Notes])

Result:

นับแถวที่มี Notes ไม่เป็นค่าว่าง

นับ Sales ที่มี Related Product
Related Product Count = VAR FilteredSales = FILTER(Sales, NOT(ISBLANK(RELATED(Products[ProductID])))) RETURN COUNTAX(FilteredSales, RELATED(Products[ProductName…
ใช้ VAR เก็บ FILTER ผลก่อน แล้วค่อย COUNTAX กับ RELATED column จากอีกตาราง จะ debug ง่ายกว่า
DAX Formula:

Related Product Count =
VAR FilteredSales = FILTER(Sales, NOT(ISBLANK(RELATED(Products[ProductID]))))
RETURN
    COUNTAX(FilteredSales, RELATED(Products[ProductName]))

Result:

นับแถว Sales ที่มี Product ที่ relate ได้

FAQs

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

ทั้งคู่เป็น iterator แต่ COUNTAX นับผลลัพธ์ที่ไม่ว่าง (non-blank) ของ expression โดยไม่สนใจประเภทข้อมูล ส่วน COUNTX นับเฉพาะค่าตัวเลขหรือวันที่เท่านั้น ถ้า expression ของคุณอาจคืนข้อความหรือค่าว่าง ใช้ COUNTAX จะเหมาะกว่า

ควรใช้ COUNTA หรือ COUNTAX?

ใช้ COUNTA เมื่อต้องการนับค่าไม่ว่างในคอลัมน์โดยตรง แต่ใช้ COUNTAX เมื่อต้องการนับผลลัพธ์ของนิพจน์ที่ประเมินต่อแถว เช่น IF condition หรือ RELATED column ส่วนตัวผมชอบ COUNTAX เพราะมี row context ให้เล่นได้เยอะกว่า

COUNTAX ใช้กับ filter context ได้หรือ?

ได้ครับ COUNTAX ประเมินนิพจน์ในแต่ละแถว ดังนั้น row context จะนำมาคำนวณค่า expression เสมอ หากคุณใช้ร่วมกับ FILTER ที่สร้าง filter context เสียก่อน expression จะประเมินในแถวที่ FILTER คัดเลือกเท่านั้น

COUNTAX return BLANK ตรงไหน?

เมื่อตาราง (table parameter) ว่าง หรือไม่มีแถวเลย ตัว expression จะไม่ประเมินเลย และ COUNTAX จะ return BLANK ไม่ใช่ 0

Resources & Related

Additional Notes

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

ที่เจ๋งคือ COUNTAX สามารถนับผลลัพธ์ของนิพจน์ที่ซับซ้อนได้ เช่น IF statement, RELATED column, หรือคำนวณค่าเอง ถ้าผลลัพธ์ไม่ว่าง มันจะนับได้ ดังนั้นเวลาต้องการนับแถวที่เข้าเงื่อนไขหรือมีค่าที่คำนวณได้ COUNTAX คือตัวเลือกที่ดี

ส่วนตัวผม COUNTAX เป็นลูกน้องที่เก่งเมื่อต้องนับผลลัพธ์ของนิพจน์ที่ซับซ้อน ยิ่งกว่า COUNTA ที่นับคอลัมน์เดียวเท่านั้น แถมยังทำงานกับ FILTER ได้สวยเลย

Leave a Reply

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