COUNTA นับจำนวนเซลล์ที่มีค่าไม่ว่าง (non-blank) ในคอลัมน์ โดยรวมตัวเลข ข้อความ วันที่ และค่าตรรกะ ต่างจาก COUNT ที่นับเฉพาะตัวเลขเท่านั้น
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| column | Column | คอลัมน์ที่ต้องการนับจำนวนค่าไม่ว่าง ยอมรับทุกชนิดข้อมูล (ตัวเลข ข้อความ วันที่ Boolean) |
COUNTA เป็นฟังก์ชัน aggregation พื้นฐานที่นับจำนวนค่าไม่ว่างในคอลัมน์ ใช้ในทั้ง measures และ calculated columns
ที่สำคัญคือ COUNTA นับทุกประเภทข้อมูล – ตัวเลข ข้อความ วันที่ Boolean ทั้งหมด ส่วน COUNT จะนับเฉพาะตัวเลขเท่านั้น นี่คือจุดต่างหลักที่ควรจำ
ส่วนตัวผม COUNTA เหมาะมากกับการวัด data quality – ถ้านับค่าไม่ว่างได้น้อย แปลว่าข้อมูลมี gap อยู่ 😎 มันทำให้คุณจับปัญหาการกรอกข้อมูลได้ง่ายขึ้น
อีกเรื่องที่ควรรู้: COUNTA ที่เรียกจากภายใน row context (เช่นใน calculated column) มันจะเกิด context transition – หมายความว่ามันจะเปลี่ยนจาก row context ไปเป็น filter context เพื่อนับค่าทั้งหมดในคอลัมน์นั้น
เช่น นับจำนวนแถวที่มีการกรอกหมายเหตุ/สถานะ
เช่น นับจำนวน CustomerID ที่ถูกกรอก (รวมทั้งข้อความ)
COUNTA นับทุกเซลล์ที่มีข้อมูลในคอลัมน์ Name ไม่ว่าจะเป็น "John Smith" หรือค่าใด ก็ตามที่ไม่ว่าง
ใช้วัดว่ากี่ลูกค้าที่มีข้อมูลหมายเลขโทรศัพท์ ถ้านับได้น้อยกว่าจำนวนลูกค้าทั้งหมด แปลว่าข้อมูล Phone มี gap
ใช้ CALCULATE เพื่อนับ COUNTA ภายใต้เงื่อนไข – ในที่นี้นับเฉพาะคำสั่งซื้อที่ Status เป็น 'Completed' เท่านั้น
ถ้า Amount คอลัมน์มี 100 แถว แต่ 10 แถว เป็นข้อความ COUNT จะคืน 90 แต่ COUNTA จะคืน 100
ใช้ COUNTA ร่วมกับ COUNTROWS เพื่อหาจำนวนแถวที่ค่าว่าง
COUNTA นับค่าไม่ว่างทุกชนิด (ตัวเลข ข้อความ วันที่ Boolean) ส่วน COUNT นับเฉพาะตัวเลขและวันที่เท่านั้น ถ้าคอลัมน์มีข้อความปะปน COUNT จะให้ผลต่างจาก COUNTA
ไม่นับ BLANK COUNTA นับเฉพาะค่าที่ไม่ว่างเท่านั้น ถ้าต้องการนับจำนวน BLANK ให้ใช้ COUNTBLANK หรือ COUNTROWS – COUNTA
COUNTA นับค่าไม่ว่างในคอลัมน์ COUNTX เป็น iterator ที่นับผลลัพธ์จากนิพจน์ที่ประเมินในแต่ละแถว ถ้าต้องการนับจากนิพจน์ (เช่นจำนวนกำไรที่มากกว่า 0) ให้ใช้ COUNTX
เหมาะกับการนับรายการที่มีข้อมูล การวัด data completeness การหาจำนวนลูกค้า ผลิตภัณฑ์ หรือรายการใดก็ตามที่ต้องนับเฉพาะแถวที่มีค่า
ในการใช้ COUNTA กับ DirectQuery มีข้อจำกัด ใช้ได้ในบาง context แต่อาจไม่ได้ผลในทุก scenario โดยเฉพาะ calculated columns และ RLS rules ต้องตรวจสอบการสนับสนุนของแหล่งข้อมูล
ฟังก์ชันที่ผู้เขียนโยงไว้กับ COUNTA จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
COUNT นับจำนวนแถวที่คอลัมน์มีค่าไม่ว่าง (non-blank) รองรับตัวเลข วันที่ และข้อความ แต่ไม่นับ Boolean ทำงานภายใต้ filter context และเกิด context transition เมื่อใช้ใน row context เหมาะสำหรับนับรายการที่มีข้อมูลในคอลัมน์เฉพาะ แต่ควรใช้ COUNTROWS แทนเมื่อนับแถวทั้งหมด
COUNTAX ประเมินนิพจน์ต่อแถวในตาราง แล้วนับจำนวนผลลัพธ์ที่ไม่ว่าง เหมาะกับการนับค่าที่อาจเป็นข้อความ ตรรกะ หรือนิพจน์ที่ซับซ้อน ไม่ใช่แค่ตัวเลข
COUNTBLANK นับจำนวนค่า BLANK ในคอลัมน์ ช่วยวัดความครบถ้วนของข้อมูลและตรวจสอบคุณภาพข้อมูลภายใต้บริบทตัวกรองปัจจุบัน
COUNTROWS เป็นฟังก์ชันการรวม (Aggregation) ที่นับจำนวนแถวในตารางที่ระบุ ไม่ว่าจะเป็นตารางจริงในโมเดลหรือตารางเสมือน (Virtual Table) จากฟังก์ชันอื่นๆ เช่น FILTER, VALUES, DISTINCT นับเท่าไหร่? ผลลัพธ์ก็คือจำนวนแถวเต็ม ๆ
COUNTX ไล่ประเมินนิพจน์ทีละแถวในตาราง แล้วนับจำนวนแถวที่ได้ผลลัพธ์ไม่ว่าง เหมาะสำหรับการนับจากค่าที่คำนวณต่อแถว ไม่ใช่นับคอลัมน์ตรง ๆ
DISTINCTCOUNT นับจำนวนค่าที่แตกต่างกันทั้งหมดในคอลัมน์ รวมถึง BLANK values ถ้าไม่มีแถวข้อมูล จะคืนค่า BLANK
MAXA คืนค่ามากสุดโดยตีความ TRUE=1, FALSE/BLANK=0 และข้ามข้อความที่ไม่ใช่ตัวเลข ใช้กับคอลัมน์ที่มีทั้งตัวเลขและค่าตรรกะเพื่อประเมินค่ามากสุดอย่างสอดคล้อง
MINA คืนค่าน้อยสุดโดยพิจารณา TRUE เป็น 1, FALSE/BLANK เป็น 0 และข้ามข้อความที่ไม่ใช่ตัวเลข ใช้กับคอลัมน์ที่มีตัวเลขและค่าตรรกะปนกันเพื่อหาค่าน้อยสุดอย่างมีบริบท
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
อีเมลของคุณจะไม่ถูกเผยแพร่