CURRENTGROUP คืนตารางย่อยของกลุ่มปัจจุบันและใช้ได้เฉพาะภายใน GROUPBY ช่วยให้คำนวณค่าที่อิงแถวภายในกลุ่มได้ เช่น SUMX/COUNTROWS/ MAXX ของกลุ่มนั้น
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| [(none)]ไม่บังคับ | none | ไม่มีอาร์กิวเมนต์ ใช้เรียกฟังก์ชันโดยตรง |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
CURRENTGROUP ใช้ได้เฉพาะภายใน GROUPBY เพื่ออ้างอิง “ตารางย่อย” ของกลุ่มที่กำลังประมวลผลอยู่ (แถวทั้งหมดในกลุ่มนั้น) ทำให้คุณสามารถคำนวณค่าที่ต้องอาศัยแถวภายในกลุ่ม เช่น ผลรวม/จำนวนแถว/ค่าสูงสุด ภายใต้กลุ่มนั้นได้
เช่น รวมยอดในแต่ละกลุ่มที่ GROUPBY แบ่งไว้
เช่น นับจำนวนรายการในกลุ่ม เพื่อใช้ทำสรุปต่อกลุ่ม
GROUPBY สร้างกลุ่มตาม CustomerID แล้ว SUMX จะรวมยอดเฉพาะในแถวของกลุ่มนั้นผ่าน CURRENTGROUP()
CURRENTGROUP() คืนตารางย่อยของกลุ่ม ทำให้ COUNTROWS นับจำนวนแถวของกลุ่มนั้นได้
ใช้ MAXX กับ CURRENTGROUP() เพื่อหาค่าสูงสุดจากแถวภายในกลุ่มเดียวกัน
ใช้ได้เฉพาะภายในนิพจน์ของ GROUPBY เท่านั้น เพราะมันอ้างอิงกลุ่มที่ GROUPBY กำลังประมวลผลอยู่
เพราะ CURRENTGROUP() คืนค่าเป็นตาราง คุณจึงมักต้องใช้ iterator เพื่อประเมิน/สรุปค่าจากหลายแถวในตารางย่อยนั้น
ฟังก์ชันที่ผู้เขียนโยงไว้กับ CURRENTGROUP จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ADDCOLUMNS เป็นฟังก์ชัน table transformation ที่ใช้สำหรับเพิ่มคอลัมน์ใหม่ (Calculated Columns) เข้าไปในตารางที่มีอยู่เดิม โดยคำนวณค่าในแต่ละแถวผ่าน Row Context และส่งคืนตารางเดิมพร้อมคอลัมน์ใหม่ต่อท้าย
GROUPBY สร้างตารางสรุปโดยจัดกลุ่มตามคอลัมน์ที่กำหนด และเพิ่มคอลัมน์คำนวณแบบกลุ่มต่อกลุ่มได้ โดยใช้ CURRENTGROUP() เข้าถึงแถวภายในกลุ่ม เหมาะกับการคำนวณซ้อนหรือคำนวณจากคอลัมน์ชั่วคราว (local columns)
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 ดีกว่าอย่างมาก
MAXX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่มากที่สุด เหมาะกับการหาค่าสูงสุดจากค่าที่คำนวณต่อแถว ไม่ใช่แค่การสรุปคอลัมน์โดยตรง
MINX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่น้อยที่สุด ต่างจาก MIN ที่ใช้กับคอลัมน์โดยตรง MINX เหมาะกับการหาค่าต่ำสุดจากค่าที่คำนวณต่อแถว เช่น (Quantity × UnitPrice)
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
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่