Thep Excel

CURRENTGROUPอ้างอิงตารางย่อยของกลุ่มใน GROUPBY

CURRENTGROUP คืนตารางย่อยของกลุ่มปัจจุบันและใช้ได้เฉพาะภายใน GROUPBY ช่วยให้คำนวณค่าที่อิงแถวภายในกลุ่มได้ เช่น SUMX/COUNTROWS/ MAXX ของกลุ่มนั้น

fx
=CURRENTGROUP()

ความนิยม4/10
ความยาก5/10
ประโยชน์4/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
[(none)]ไม่บังคับ none ไม่มีอาร์กิวเมนต์ ใช้เรียกฟังก์ชันโดยตรง

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

CURRENTGROUP ใช้ได้เฉพาะภายใน GROUPBY เพื่ออ้างอิง “ตารางย่อย” ของกลุ่มที่กำลังประมวลผลอยู่ (แถวทั้งหมดในกลุ่มนั้น) ทำให้คุณสามารถคำนวณค่าที่ต้องอาศัยแถวภายในกลุ่ม เช่น ผลรวม/จำนวนแถว/ค่าสูงสุด ภายใต้กลุ่มนั้นได้

How it works

คำนวณผลรวมภายในกลุ่ม

เช่น รวมยอดในแต่ละกลุ่มที่ GROUPBY แบ่งไว้

นับจำนวนแถวภายในกลุ่ม

เช่น นับจำนวนรายการในกลุ่ม เพื่อใช้ทำสรุปต่อกลุ่ม

Examples

ตัวอย่างที่ 1: สรุปยอดต่อกลุ่มด้วย GROUPBY + SUMXSales By Customer = GROUPBY( Sales, Sales[CustomerID], "Group Amount", SUMX( CURRENTGROUP(), Sales[Amount] ) )

GROUPBY สร้างกลุ่มตาม CustomerID แล้ว SUMX จะรวมยอดเฉพาะในแถวของกลุ่มนั้นผ่าน CURRENTGROUP()

fx
Sales By Customer =
GROUPBY(
Sales,
Sales[CustomerID],
"Group Amount",
SUMX(
CURRENTGROUP(),
Sales[Amount]
)
)

ผลลัพธ์ได้ตารางสรุปยอดต่อ CustomerID
ตัวอย่างที่ 2: นับจำนวนแถวในกลุ่มRows By Customer = GROUPBY( Sales, Sales[CustomerID], "Row Count", COUNTROWS(CURRENTGROUP()) )

CURRENTGROUP() คืนตารางย่อยของกลุ่ม ทำให้ COUNTROWS นับจำนวนแถวของกลุ่มนั้นได้

fx
Rows By Customer =
GROUPBY(
Sales,
Sales[CustomerID],
"Row Count",
COUNTROWS(CURRENTGROUP())
)

ผลลัพธ์ได้จำนวนแถวในแต่ละกลุ่ม
ตัวอย่างที่ 3: หาค่าสูงสุดในกลุ่มด้วย MAXXMax Amount By Customer = GROUPBY( Sales, Sales[CustomerID], "Max Amount", MAXX(CURRENTGROUP(), Sales[Amount]) )

ใช้ MAXX กับ CURRENTGROUP() เพื่อหาค่าสูงสุดจากแถวภายในกลุ่มเดียวกัน

fx
Max Amount By Customer =
GROUPBY(
Sales,
Sales[CustomerID],
"Max Amount",
MAXX(CURRENTGROUP(), Sales[Amount])
)

ผลลัพธ์ได้ค่าสูงสุดของ Amount ภายในแต่ละกลุ่ม

FAQs

CURRENTGROUP ใช้ได้ที่ไหนบ้าง?+

ใช้ได้เฉพาะภายในนิพจน์ของ GROUPBY เท่านั้น เพราะมันอ้างอิงกลุ่มที่ GROUPBY กำลังประมวลผลอยู่

ทำไมต้องใช้ iterator อย่าง SUMX/MAXX กับ CURRENTGROUP?+

เพราะ CURRENTGROUP() คืนค่าเป็นตาราง คุณจึงมักต้องใช้ iterator เพื่อประเมิน/สรุปค่าจากหลายแถวในตารางย่อยนั้น

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ CURRENTGROUP จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้CURRENTGROUPTable manipulation
Table manipulation (3)
ADDCOLUMNS

ADDCOLUMNS เป็นฟังก์ชัน table transformation ที่ใช้สำหรับเพิ่มคอลัมน์ใหม่ (Calculated Columns) เข้าไปในตารางที่มีอยู่เดิม โดยคำนวณค่าในแต่ละแถวผ่าน Row Context และส่งคืนตารางเดิมพร้อมคอลัมน์ใหม่ต่อท้าย

GROUPBY

GROUPBY สร้างตารางสรุปโดยจัดกลุ่มตามคอลัมน์ที่กำหนด และเพิ่มคอลัมน์คำนวณแบบกลุ่มต่อกลุ่มได้ โดยใช้ CURRENTGROUP() เข้าถึงแถวภายในกลุ่ม เหมาะกับการคำนวณซ้อนหรือคำนวณจากคอลัมน์ชั่วคราว (local columns)

SUMMARIZE

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 ดีกว่าอย่างมาก

Aggregation (3)
MAXX

MAXX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่มากที่สุด เหมาะกับการหาค่าสูงสุดจากค่าที่คำนวณต่อแถว ไม่ใช่แค่การสรุปคอลัมน์โดยตรง

MINX

MINX ประเมินนิพจน์สำหรับทุกแถวของตาราง แล้วคืนค่าที่น้อยที่สุด ต่างจาก MIN ที่ใช้กับคอลัมน์โดยตรง MINX เหมาะกับการหาค่าต่ำสุดจากค่าที่คำนวณต่อแถว เช่น (Quantity × UnitPrice)

SUMX

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

อีเมลของคุณจะไม่ถูกเผยแพร่