Thep Excel

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

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

=CURRENTGROUP()

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
4/10

Difficulty
5/10

Usefulness
4/10

Syntax & Arguments

=CURRENTGROUP()

Argument Type Required Default Description
(none) none Optional ไม่มีอาร์กิวเมนต์ ใช้เรียกฟังก์ชันโดยตรง

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: สรุปยอดต่อกลุ่มด้วย GROUPBY + SUMX
Sales By Customer = GROUPBY( Sales, Sales[CustomerID], "Group Amount", SUMX( CURRENTGROUP(), Sales[Amount] ) )
GROUPBY สร้างกลุ่มตาม CustomerID แล้ว SUMX จะรวมยอดเฉพาะในแถวของกลุ่มนั้นผ่าน CURRENTGROUP()
DAX Formula:

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

Result:

ได้ตารางสรุปยอดต่อ CustomerID

ตัวอย่างที่ 2: นับจำนวนแถวในกลุ่ม
Rows By Customer = GROUPBY( Sales, Sales[CustomerID], "Row Count", COUNTROWS(CURRENTGROUP()) )
CURRENTGROUP() คืนตารางย่อยของกลุ่ม ทำให้ COUNTROWS นับจำนวนแถวของกลุ่มนั้นได้
DAX Formula:

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

Result:

ได้จำนวนแถวในแต่ละกลุ่ม

ตัวอย่างที่ 3: หาค่าสูงสุดในกลุ่มด้วย MAXX
Max Amount By Customer = GROUPBY( Sales, Sales[CustomerID], "Max Amount", MAXX(CURRENTGROUP(), Sales[Amount]) )
ใช้ MAXX กับ CURRENTGROUP() เพื่อหาค่าสูงสุดจากแถวภายในกลุ่มเดียวกัน
DAX Formula:

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

Result:

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

FAQs

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

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

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

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

Resources & Related

Additional Notes

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

Leave a Reply

Your email address will not be published. Required fields are marked *