---
title: MAXX – หาค่ามากที่สุดจากนิพจน์แบบไล่ทีละแถว
url: https://www.thepexcel.com/functions/dax/aggregation/maxx-dax/
type: function-explainer
program: DAX
syntax: "MAXX(<table>, <expression>)"
date: 2025-12-13
updated: 2025-12-23
scores:
  popularity: 6
  difficulty: 5
  usefulness: 6
---

# MAXX – หาค่ามากที่สุดจากนิพจน์แบบไล่ทีละแถว

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

## คำอธิบาย

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

## Syntax

```excel
MAXX(&lt;table&gt;, &lt;expression&gt;)
```

**Variant**

```excel
MAXX(&lt;table&gt;, &lt;expression&gt;)
```

คำนวณนิพจน์ต่อแถวในตาราง แล้วคืนค่าที่มากที่สุด

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| table | Yes | table |  | ตาราง (หรือผลลัพธ์ตาราง) ที่ต้องการไล่ทีละแถว |
| expression | Yes | scalar |  | นิพจน์ที่ต้องการประเมินในแต่ละแถว และต้องได้ผลเป็นค่าสเกลาร์ |

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

### หาค่าสูงสุดจากมูลค่าแบบคำนวณต่อแถว

เช่น ยอดต่อบรรทัด = จำนวน * ราคาต่อหน่วย แล้วหาแถวที่สูงสุด

_เหมาะกับ:_ maxx-line-amount

### หาค่าสูงสุดจากสูตรหลายคอลัมน์

เช่น คะแนนรวม = คะแนน1 + คะแนน2 แล้วหาค่าสูงสุด

_เหมาะกับ:_ maxx-computed-score

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: หาค่าสูงสุดของยอดต่อบรรทัด

```excel
Max Line Amount =
MAXX(
    Sales,
    Sales[Quantity] * Sales[UnitPrice]
)
```

**ผลลัพธ์:** `9999.00 (ยอดต่อบรรทัดที่สูงที่สุด)`

MAXX คำนวณ Quantity * UnitPrice สำหรับทุกแถวใน Sales แล้วคืนค่าที่มากที่สุดจากทั้งหมด

### 2. ตัวอย่างที่ 2: หาค่าสูงสุดจากข้อมูลที่ถูกกรอง

```excel
Max Sale By Region =
MAXX(
    FILTER(Sales, Sales[Region] = "Central"),
    Sales[SalesAmount] + Sales[Freight]
)
```

**ผลลัพธ์:** `2450.50 (ค่าการขายรวมค่าขนส่งสูงสุดในภาคกลาง)`

ใช้ FILTER เพื่อจำกัดตาราง แล้ว MAXX ประเมินนิพจน์เฉพาะแถวที่เข้าเงื่อนไขเท่านั้น

### 3. ตัวอย่างที่ 3: หาค่าสูงสุดของราคาสินค้าเมื่อเชื่อมตารางอื่น

```excel
Max Product Price =
MAXX(
    Sales,
    RELATED(Products[ListPrice])
)
// Sales เชื่อมกับ Products ผ่าน ProductID
```

**ผลลัพธ์:** `5000.00 (ราคาสินค้าสูงสุด)`

ใช้ RELATED เพื่อดึงข้อมูลจากตาราง Products สำหรับแต่ละแถวของ Sales ก่อนหาค่าสูงสุด

### 4. ตัวอย่างที่ 4: หาค่าสูงสุดจากคำนวณหลายขั้น

```excel
Max Profit Per Sale =
MAXX(
    Sales,
    (Sales[SalesAmount] - Sales[CostAmount]) * Sales[ProfitMargin]
)
```

**ผลลัพธ์:** `15750.75 (กำไรต่อบรรทัดที่สูงที่สุด)`

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

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

- MAXX เหมาะเมื่อ expression เป็นผลคำนวณต่อแถว เช่น จำนวน * ราคา หรือเมื่อต้องการกำหนดตารางที่ไล่แถวให้ชัดเจน

- ใช้ VAR ข้อมูลสำหรับการคำนวณที่ซับซ้อน เพื่อให้ code อ่านง่าย: VAR MaxSale = MAXX(Sales, Sales[Amount]) RETURN MaxSale

- ทำความเข้าใจ Row Context จะช่วยให้เลือก MAXX ได้ถูกต้อง Row Context เกิดขึ้นเมื่อฟังก์ชัน iterator ทำงาน

- หากต้องการประเมินนิพจน์จากตารางเกี่ยวข้อง ใช้ RELATED เพื่อดึงข้อมูล: MAXX(Sales, RELATED(Products[Price]))

- ค้นหา MINX เพื่อหาค่าต่ำสุด และ SUMX เพื่อรวมค่าที่คำนวณต่อแถว

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

**Q: MAXX ต่างจาก MAX อย่างไร?**

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

**Q: MAXX ต่างจาก MINX อย่างไร?**

MINX ใช้หลักเดียวกัน แต่คืนค่าที่น้อยที่สุดแทนที่จะเป็นค่าที่มากที่สุด ทั้งคู่เป็นฟังก์ชัน iterator ที่ประเมินนิพจน์ต่อแถว

**Q: MAXX มีผลต่อประสิทธิภาพหรือไม่?**

MAXX เป็นฟังก์ชันแบบ iterator จึงอาจช้ากว่าแบบสรุปคอลัมน์โดยตรง หากต้องการแค่ค่าสูงสุดของคอลัมน์ ให้ใช้ MAX กับคอลัมน์แทน บนตารางขนาดใหญ่ (หลักแสน) MAXX อาจใช้เวลานานขึ้น

**Q: ใช้ MAXX ใน Calculated Column ได้หรือไม่?**

ได้ แต่ต้องระวัง MAXX ใน Calculated Column จะสร้าง Row Context ซึ่งทำให้นิพจน์ประเมินเหนือกว่า Filter Context ที่กำหนด ควรใช้เมื่อต้องการแถวแรก (ALL) หรือหลีกเลี่ยงหากมี Context ที่ซับซ้อน

**Q: ค่า Blank ใน MAXX จะถูกประมวลผลอย่างไร?**

MAXX จะข้าม (skip) ค่า Blank และคืนค่าที่มากที่สุดจากค่าที่ไม่ใช่ Blank หากทุกค่าเป็น Blank ผลลัพธ์จะเป็น Blank

**Q: ต้องใช้ FILTER ทุกครั้งหรือไม่?**

ไม่ ถ้าต้องการประเมินทุกแถวของตาราง ใช้ MAXX(TableName, expression) ตรง ๆ ใช้ FILTER เมื่อต้องการจำกัดแถวที่ประเมิน

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

- [DAX Guide: MAXX](https://dax.guide/maxx/) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/dax/aggregation/maxx-dax/](https://www.thepexcel.com/functions/dax/aggregation/maxx-dax/)_
