COUNTX ไล่ประเมินนิพจน์ทีละแถวในตาราง แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง เหมาะสำหรับการนับจากค่าที่คำนวณต่อแถว ไม่ใช่นับคอลัมน์ตรง ๆ
=COUNTX(<table>, <expression>)
=COUNTX(<table>, <expression>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางที่ต้องการไล่ประเมินทีละแถว เช่น Sales, Product หรือผลลัพธ์จาก FILTER | |
| expression | scalar | Yes | นิพจน์ที่ประเมินในแต่ละแถว ต้องได้ผลเป็นค่าสเกลาร์ (ตัวเลข ข้อความ วันที่ ฯลฯ) ส่วน TRUE/FALSE ใช้ COUNTAX แทน |
เช่น จำนวนแถวที่ (จำนวน * ราคา) ได้ผลลัพธ์ไม่ว่าง
ใช้กับตารางที่ถูกกรอง/สรุปมาแล้ว เพื่อควบคุมแถวที่ถูกนับ
Count Items Sold = COUNTX( Sales, Sales[Quantity] * Sales[UnitPrice] )Count Items Sold =
COUNTX(
Sales,
Sales[Quantity] * Sales[UnitPrice]
)
จำนวนแถวที่มี Line Amount ไม่ว่าง เช่น 450 แถว
Customers with Valid Ratio = COUNTX( Customer, DIVIDE(Customer[TotalPurchase], Customer[AvgOrderValue], 0) )Customers with Valid Ratio =
COUNTX(
Customer,
DIVIDE(Customer[TotalPurchase], Customer[AvgOrderValue], 0)
)
จำนวนลูกค้าที่สามารถคำนวณอัตราส่วนได้ (ไม่ BLANK) เช่น 1250 คน
Active Products in Category = COUNTX( FILTER(Product, Product[Category] = "Electronics"), Product[ListPrice] )Active Products in Category =
COUNTX(
FILTER(Product, Product[Category] = "Electronics"),
Product[ListPrice]
)
จำนวนสินค้า Electronics ที่มีราคากำหนด เช่น 82 รายการ
Orders with Shipping Address = COUNTX( Sales, Sales[ShippingAddress] )Orders with Shipping Address =
COUNTX(
Sales,
Sales[ShippingAddress]
)
จำนวนออร์เดอร์ที่มีที่อยู่จัดส่ง เช่น 5,340 ออร์เดอร์
COUNT นับเฉพาะค่าตัวเลขในคอลัมน์ (ไม่นับข้อความหรือวันที่) ส่วน COUNTX ให้นับจากนิพจน์ที่คำนวณต่อแถว ยืดหยุ่นมากขึ้น
COUNTA นับค่าที่ไม่ว่างในคอลัมน์ (ข้อความ ตัวเลข วันที่ ฯลฯ) ส่วน COUNTX นับจากนิพจน์ที่คำนวณ ถ้าแค่นับคอลัมน์ง่าย ๆ ให้ใช้ COUNTA ที่เร็วกว่า
COUNTX ใช้กับข้อมูลตัวเลข ข้อความ วันที่ ส่วน COUNTAX นำไปใช้กับ Boolean (TRUE/FALSE) ได้ ถ้าคำนวณแล้วได้ TRUE/FALSE ให้ใช้ COUNTAX
COUNTX เป็น iterator: มันต้องไล่ประเมินนิพจน์ในแต่ละแถว ถ้าตารางมี 1 ล้านแถว มันประเมิน 1 ล้นครั้ง ถ้าแค่นับคอลัมน์ง่าย ๆ ให้ใช้ COUNT/COUNTA
ได้ เหมาะมาก COUNTX(FILTER(…), expression) ใช้ FILTER เพื่อกรองแถวก่อน แล้วให้ COUNTX นับเฉพาะที่กรองแล้ว
ได้ ถ้าทุกแถวประเมินแล้วได้ BLANK (เช่น DIVIDE ที่ตัวหารเป็น 0 ทั้งหมด) COUNTX ก็ส่งคืน BLANK
COUNTX เป็นฟังก์ชัน iterator ที่เจ๋งมากสำหรับการนับแบบ “ตามเงื่อนไขคำนวณ” คำว่า iterator หมายความว่ามันจะไล่ทีละแถว ประเมินนิพจน์ในแต่ละแถว แล้วนับว่ามีกี่แถวที่ได้ผลลัพธ์ไม่ว่าง (ไม่เป็น BLANK).
ตัวอย่างเช่น ถ้าเราอยากนับจำนวนแถวที่มีมูลค่ารวมสินค้า (Quantity × UnitPrice) ไม่ว่าง COUNTX ก็คือเครื่องมือที่ใช่ เพราะค่านี้ไม่ได้อยู่ในตาราง แต่คำนวณมาจากสองคอลัมน์.
ส่วนตัวผมคิดว่า COUNTX เป็นหนึ่งในฟังก์ชันที่ดูเรียบง่ายแต่มีพลัง ต่างจาก COUNT ที่นับแค่ค่าตัวเลขในคอลัมน์เดียว COUNTX ให้เราคำนวณกว่า ๆ ได้ 😎