---
title: CURRENTGROUP – อ้างอิงตารางย่อยของกลุ่มใน GROUPBY
url: https://www.thepexcel.com/functions/dax/table-manipulation/currentgroup-dax/
type: function-explainer
program: DAX
syntax: CURRENTGROUP()
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 4
  difficulty: 5
  usefulness: 4
---

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

> คืนตารางย่อยของกลุ่มปัจจุบัน (ใช้ได้เฉพาะใน GROUPBY)

## คำอธิบาย

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

## Syntax

```excel
CURRENTGROUP()
```

**Variant**

```excel
CURRENTGROUP()
```

อ้างอิงตารางย่อยของกลุ่มปัจจุบันภายใน GROUPBY

## Arguments

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

## เคสการใช้งาน

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

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

_เหมาะกับ:_ group-sum

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

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

_เหมาะกับ:_ group-countrows

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สรุปยอดต่อกลุ่มด้วย GROUPBY + SUMX

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

**ผลลัพธ์:** `ได้ตารางสรุปยอดต่อ CustomerID`

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

### 2. ตัวอย่างที่ 2: นับจำนวนแถวในกลุ่ม

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

**ผลลัพธ์:** `ได้จำนวนแถวในแต่ละกลุ่ม`

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

### 3. ตัวอย่างที่ 3: หาค่าสูงสุดในกลุ่มด้วย MAXX

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

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

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

## หมายเหตุเพิ่มเติม

CURRENTGROUP ทำให้ GROUPBY ยืดหยุ่นขึ้นสำหรับการคำนวณที่ต้องอาศัยแถวภายในกลุ่ม แต่ควรพิจารณาประสิทธิภาพเมื่อทำกับตารางใหญ่

## คำถามที่พบบ่อย

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- [GROUPBY – จัดกลุ่มและคำนวณแบบละเอียด](https://www.thepexcel.com/functions/dax/table-manipulation/groupby-dax/)
- [SUMX – Iterator Function สำหรับคำนวณผลรวมแบบ Row-by-Row ใน DAX](https://www.thepexcel.com/functions/dax/aggregation/sumx-dax/)
- [COUNTROWS – นับจำนวนแถวในตารางและเทบิลเสมือน](https://www.thepexcel.com/functions/dax/aggregation/countrows-dax/)
- [MAXX – หาค่ามากที่สุดจากนิพจน์แบบไล่ทีละแถว](https://www.thepexcel.com/functions/dax/aggregation/maxx-dax/)
- [MINX – หาค่าน้อยที่สุดจากนิพจน์แบบไล่ทีละแถว](https://www.thepexcel.com/functions/dax/aggregation/minx-dax/)
- [ADDCOLUMNS – เพิ่มคอลัมน์คำนวณให้ตาราง](https://www.thepexcel.com/functions/dax/table-manipulation/addcolumns-dax/)

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: CURRENTGROUP](https://dax.guide/currentgroup/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/table-manipulation/currentgroup-dax/](https://www.thepexcel.com/functions/dax/table-manipulation/currentgroup-dax/)_
