SUM รวมค่าตัวเลขทั้งหมดจากคอลัมน์เดียวภายใต้ filter context ปัจจุบัน ข้ามค่า BLANK และข้อความ แต่รวมค่า 0 หากต้องรวมจาก expression ให้ใช้ SUMX แทน
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| column | column | คอลัมน์ตัวเลขที่ต้องการรวมค่า ต้องอ้างอิงในรูปแบบ Table[Column] และต้องเป็น numeric column |
SUM เป็น aggregation function ใน DAX ที่รวมค่าตัวเลขจากคอลัมน์เดียวภายใต้ filter context ปัจจุบัน ใช้บ่อยสำหรับสร้าง measure เช่นยอดขายรวม ยอดต้นทุนรวม หรือยอดรวมตามช่วงเวลาที่ถูกกรอง
ใน calculated column จะมี row context แต่ SUM ไม่แปลง row context เป็น filter context ให้อัตโนมัติ ดังนั้นผลลัพธ์มักเป็นยอดรวมเดียวกันทุกแถว ถ้าต้องการคำนวณต่อแถวให้ใช้ CALCULATE หรือใช้ SUMX แทน
ถ้าต้องรวมค่าที่มาจาก expression เช่น Qty * UnitPrice หรือมีการคำนวณต่อแถวก่อนรวม ให้ใช้ SUMX ซึ่งเป็น iterator function ที่จะประเมิน expression ต่อแถวแล้วจึงรวมผลลัพธ์
สร้าง measure ยอดขายรวมสำหรับรายงานหรือ KPI หลัก
ใช้ SUM ใน visual ที่มีตัวกรองจาก Category หรือ Date เพื่อดูยอดรวมตามบริบท
นำ SUM มาเป็นตัวตั้ง แล้วใช้ CALCULATE ร่วมกับ REMOVEFILTERS เพื่อหายอดรวมทั้งหมดสำหรับทำ % of total
สมมติ Sales[Amount] มีค่า 120, 180, 200 รวมกันได้ 500
ถ้ามี slicer กรองปีหรือภูมิภาค ผลลัพธ์จะเปลี่ยนตาม filter context ทันที
CALCULATE เพิ่ม filter ให้คำนวณเฉพาะหมวด Coffee เช่นมียอด 500 + 750 = 1,250
ตัวอย่างนี้ช่วยให้ SUM ทำงานใน filter context ที่กำหนดเอง
ตัวเศษคือยอดขายในบริบทปัจจุบัน ส่วนตัวหารลบ filter ของ Product เพื่อได้ยอดรวมทั้งหมด
แล้วค่อยหารเพื่อได้ % of total ที่ถูกต้อง
Calculated column มี row context แต่ SUM ไม่ทำ context transition จึงคืนยอดรวมทั้งตารางให้ทุกแถวเหมือนกัน
ถ้าต้องการคำนวณต่อแถวให้ใช้ expression ของคอลัมน์นั้นโดยตรง หรือใช้ SUMX ตามกรณี
SUM รวมค่าจากคอลัมน์ที่มีอยู่แล้วเท่านั้น ส่วน SUMX จะประเมิน expression ต่อแถวก่อนแล้วค่อยรวมผลลัพธ์
ไม่ได้ SUM รับได้เพียงคอลัมน์เดียว หากต้องรวมหลายคอลัมน์ให้สร้าง measure แยกหรือใช้ SUMX กับ expression
SUM ข้ามค่า BLANK และข้อความทั้งหมด แต่ยังนับค่า 0 เข้าไปในการรวม
เพราะ SUM ใช้ filter context แต่ calculated column มีแค่ row context หากไม่ใช้ CALCULATE ผลลัพธ์จะเป็นยอดรวมทั้งตารางเหมือนกันทุกแถว
ฟังก์ชันที่ผู้เขียนโยงไว้กับ SUM จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
AVERAGE คำนวณค่าเฉลี่ยเลขคณิตของตัวเลขทั้งหมดในคอลัมน์ โดยข้าม blank cells และข้อความ แต่นับค่า 0 เข้าในการคำนวณ ซึ่งทำให้ค่าเฉลี่ยอาจต่ำลงถ้ามีค่า 0 จำนวนมาก ทำงานภายใต้ filter context ปัจจุบันและทำ context transition ใน calculated column ทำให้สามารถอ้างอิงคอลัมน์จากตารางอื่นผ่าน relationship ได้
DISTINCTCOUNT นับจำนวนค่าที่แตกต่างกันทั้งหมดในคอลัมน์ รวมถึง BLANK values ถ้าไม่มีแถวข้อมูล จะคืนค่า BLANK
MAX คืนค่าสูงสุดจากคอลัมน์ภายใต้ filter context หรือเปรียบเทียบสองค่าสเกลาร์แล้วเลือกค่าที่มากกว่า ทำงานกับ numeric, date และ text columns โดย scan ทุก row ที่ผ่าน filter แล้วเลือกค่าสูงสุด เหมาะสำหรับ measures และ calculated columns (ต้อง wrap ด้วย CALCULATE)
MIN คืนค่าน้อยที่สุดจากคอลัมน์ภายใต้ filter context ปัจจุบัน หรือเปรียบเทียบสองค่า scalar expression แล้วคืนค่าที่น้อยกว่า รองรับตัวเลข วันที่ และข้อความ ทำงานภายใต้ filter context ทำให้ค่าที่หาได้จะถูกกรองตาม slicer หรือ visual filter อัตโนมัติ เหมาะกับการหาราคาต่ำสุด วันที่เร็วที่สุด หรือการตั้งเพดาน (cap) ให้กับค่าคำนวณ
PRODUCT คูณค่าทั้งหมดในคอลัมน์ (ละเว้น BLANK และข้อความ) ใช้เมื่อจำเป็นต้องคูณค่าแบบรวม เช่น คูณอัตราเติบโตหรือสัดส่วนที่ต้องรวมผลคูณ
SUMX เป็น iterator function ที่ทรงพลังใน DAX ออกแบบมาเพื่อวนลูปทีละแถวในตารางที่กำหนด แล้วคำนวณ expression ที่ซับซ้อนสำหรับแต่ละแถวก่อนนำผลลัพธ์ทั้งหมดมารวมกัน ต่างจาก SUM ที่รวมเฉพาะค่าใน column เดียว SUMX สร้าง row context สำหรับแต่ละแถว ทำให้สามารถคำนวณ expression อย่าง Quantity × Price หรือใช้ RELATED ดึงข้อมูลข้ามตารางได้ มีกลไก context transition อัตโนมัติเมื่อเจอ measure ในนั้น เหมาะสำหรับการคำนวณซับซ้อนระดับแถวข้อมูล ประหยัดพื้นที่ model เพราะไม่ต้องสร้าง calculated column แต่ช้ากว่า SUM และไม่รองรับ DirectQuery mode ใน calculated columns หรือ RLS rules
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
CURRENCY แปลงค่าตัวเลขให้เป็นชนิด Currency โดยเก็บเลขทศนิยมเพียง 4 ตำแหน่ง เหมาะสำหรับการคำนวณค่าเงินที่ต้องความแม่นยำในการปัดเศษ
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่