COUNTX ไล่ประเมินนิพจน์ทีละแถวในตาราง แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง เหมาะสำหรับการนับจากค่าที่คำนวณต่อแถว ไม่ใช่นับคอลัมน์ตรง ๆ
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| table | table | ตารางที่ต้องการไล่ประเมินทีละแถว เช่น Sales, Product หรือผลลัพธ์จาก FILTER |
| expression | scalar | นิพจน์ที่ประเมินในแต่ละแถว ต้องได้ผลเป็นค่าสเกลาร์ (ตัวเลข ข้อความ วันที่ ฯลฯ) ส่วน TRUE/FALSE ใช้ COUNTAX แทน |
COUNTX เป็นฟังก์ชัน iterator ที่เจ๋งมากสำหรับการนับแบบ “ตามเงื่อนไขคำนวณ” คำว่า iterator หมายความว่ามันจะไล่ทีละแถว ประเมินนิพจน์ในแต่ละแถว แล้วนับว่ามีกี่แถวที่ได้ผลลัพธ์ไม่ว่าง (ไม่เป็น BLANK).
ตัวอย่างเช่น ถ้าเราอยากนับจำนวนแถวที่มีมูลค่ารวมสินค้า (Quantity × UnitPrice) ไม่ว่าง COUNTX ก็คือเครื่องมือที่ใช่ เพราะค่านี้ไม่ได้อยู่ในตาราง แต่คำนวณมาจากสองคอลัมน์.
ส่วนตัวผมคิดว่า COUNTX เป็นหนึ่งในฟังก์ชันที่ดูเรียบง่ายแต่มีพลัง ต่างจาก COUNT ที่นับแค่ค่าตัวเลขในคอลัมน์เดียว COUNTX ให้เราคำนวณกว่า ๆ ได้ 😎
เช่น จำนวนแถวที่ (จำนวน * ราคา) ได้ผลลัพธ์ไม่ว่าง
ใช้กับตารางที่ถูกกรอง/สรุปมาแล้ว เพื่อควบคุมแถวที่ถูกนับ
COUNTX ประเมินการคำนวณ Quantity * UnitPrice ในแต่ละแถว แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง สิ่งนี้มีประโยชน์เมื่อคอลัมน์ Line Amount ไม่ได้อยู่ในตารางจริง ๆ
DIVIDE ส่งคืน 0 เมื่อตัวหารเป็น 0 แต่ถ้าเราใช้ DIVIDE(…, BLANK()) แล้ว COUNTX จะนับแค่แถวที่อัตราส่วนเป็นจริง
ใช้ FILTER เพื่อกรองตารางให้แสดงเฉพาะ Electronics แล้ว COUNTX นับว่ามีกี่รายการ (ที่มี ListPrice ไม่ว่าง)
COUNTX นำไปใช้กับข้อความและค่าประเภทอื่น ๆ ได้ ไม่ใช่แค่ตัวเลข นับแค่แถวที่ ShippingAddress ไม่ว่างเท่านั้น
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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
COUNT นับจำนวนแถวที่คอลัมน์มีค่าไม่ว่าง (non-blank) รองรับตัวเลข วันที่ และข้อความ แต่ไม่นับ Boolean ทำงานภายใต้ filter context และเกิด context transition เมื่อใช้ใน row context เหมาะสำหรับนับรายการที่มีข้อมูลในคอลัมน์เฉพาะ แต่ควรใช้ COUNTROWS แทนเมื่อนับแถวทั้งหมด
COUNTA นับจำนวนเซลล์ที่มีค่าไม่ว่าง (non-blank) ในคอลัมน์ โดยรวมตัวเลข ข้อความ วันที่ และค่าตรรกะ ต่างจาก COUNT ที่นับเฉพาะตัวเลขเท่านั้น
COUNTAX ประเมินนิพจน์ต่อแถวในตาราง แล้วนับจำนวนผลลัพธ์ที่ไม่ว่าง เหมาะกับการนับค่าที่อาจเป็นข้อความ ตรรกะ หรือนิพจน์ที่ซับซ้อน ไม่ใช่แค่ตัวเลข
COUNTBLANK นับจำนวนค่า BLANK ในคอลัมน์ ช่วยวัดความครบถ้วนของข้อมูลและตรวจสอบคุณภาพข้อมูลภายใต้บริบทตัวกรองปัจจุบัน
PRODUCTX วนประเมิน Expression บน Table แล้วคูณผลลัพธ์ของแต่ละแถวเข้าด้วยกันเป็นค่าเดี่ยว เหมาะกับการคูณปัจจัย/อัตราการเปลี่ยนแปลงต่อเนื่องหลายงวด และควรระวัง BLANK/ศูนย์/ค่าติดลบตามตรรกะงาน
MEDIANX คำนวณค่ามัธยฐาน (50th Percentile) ของนิพจน์ที่ประเมินในแต่ละแถว ต่างจาก MEDIAN ที่ทำงานบนคอลัมน์เดียว MEDIANX คือ iterator function ที่ให้คุณสร้างนิพจล์ซับซ้อนก่อนหาค่ากลาง
SUMMARIZE สร้างตารางสรุปโดยจัดกลุ่มข้อมูลตามคอลัมน์ที่กำหนด คล้าย GROUP BY ใน SQL หรือ Pivot Table ใน Excel คืนค่าตารางที่มีหนึ่งแถวต่อหนึ่ง unique combination ของคอลัมน์ที่เลือก สามารถอ้างถึงคอลัมน์จาก related table ได้โดยตรงโดยไม่ต้องใช้ RELATED มักใช้สร้าง virtual table ใน measure เพื่อทำ intermediate calculations ก่อนใช้ iterator functions อย่าง SUMX, AVERAGEX คำนวณต่อ ⚠️ Best Practice: ใช้ ADDCOLUMNS ครอบ SUMMARIZE แทนการใส่ extension columns ตรงๆ เพื่อ performance และ filter context control ที่ดีกว่า สำหรับ calculated table แนะนำใช้ SUMMARIZECOLUMNS แทนเนื่องจากมี performance ดีกว่าอย่างมาก
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่