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

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

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

## คำอธิบาย

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

## Syntax

```excel
MINX(&lt;table&gt;, &lt;expression&gt;, [&lt;variant&gt;])
```

**Variant**

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

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

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| table | Yes | table |  | ตาราง (หรือผลลัพธ์ตาราง) ที่ต้องการไล่ทีละแถว เช่น Sales, Transactions หรือผลลัพธ์จาก FILTER |
| expression | Yes | scalar |  | นิพจน์ที่ต้องการประเมินในแต่ละแถว ต้องได้ผลเป็นค่าสเกลาร์ (ตัวเลข วันที่ ข้อความ) เพื่อเปรียบเทียบและหาค่าต่ำสุด |
| variant | No | boolean | FALSE | ถ้าเป็น TRUE จะเปรียบเทียบค่าโดยไม่สนใจชนิดข้อมูลและคืนค่าต่ำสุดตามลำดับตัวอักษร/ตัวเลข (ORDER BY ASC) เมื่อมีชนิดข้อมูลผสม เช่น ข้อความกับตัวเลข ค่า Default คือ FALSE ซึ่งเปรียบเทียบเฉพาะตัวเลข |

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

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

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

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

### หาค่าต่ำสุดจากสูตรที่ใช้หลายคอลัมน์

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

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

## ตัวอย่าง

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

```excel
Minimum Line Amount =
MINX(
    Sales,
    Sales[Quantity] * Sales[UnitPrice]
)
```

**ผลลัพธ์:** `12.50 (หากเป็นยอดต่อบรรทัดที่น้อยที่สุดในตาราง)`

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

### 2. ตัวอย่างที่ 2: หาส่วนลดต่ำสุดของการขายทั้งปี

```excel
Minimum Discount % =
MINX(
    Sales,
    Sales[DiscountPct]
)
```

**ผลลัพธ์:** `0% (หรือค่าเปอร์เซ็นต์ส่วนลดต่ำสุดในข้อมูล)`

แม้จะให้ expression เป็นคอลัมน์ตรง ๆ ก็ได้ (แต่ MIN จะเร็วกว่า) การใช้ MINX ในแบบนี้มีประโยชน์ในโครงสร้างขนาดใหญ่เพราะว่า สามารถเปลี่ยนเป็นนิพจน์ที่ซับซ้อนได้ง่าย เช่น MINX(Sales, Sales[DiscountPct] * Sales[Amount]) โดยไม่ต้องเขียนใหม่ทั้งหมด

### 3. ตัวอย่างที่ 3: หาคะแนนรวมต่ำสุดจากสอบหลายวิชา

```excel
Min Total Score =
MINX(
    StudentScores,
    StudentScores[Math] + StudentScores[English] + StudentScores[Science]
)
```

**ผลลัพธ์:** `45 (สมมติว่านี่คือคะแนนรวมต่ำสุดของนักเรียน)`

MINX ประเมินการบวกคะแนนทั้งสามวิชาของทุกคนในตาราง ส่วนตัวผมใช้แบบนี้บ่อยตอนต้องการดูว่าใครมีผลการเรียนด้อยที่สุด ✨

### 4. ตัวอย่างที่ 4: หาราคาต่ำสุดของสินค้าใน Category ที่เลือก (ใช้ FILTER)

```excel
Min Product Price in Category =
MINX(
    FILTER(
        Products,
        Products[Category] = "Electronics"
    ),
    Products[UnitPrice]
)
```

**ผลลัพธ์:** `99.99 (ราคาต่ำสุดของสินค้าในหมวด Electronics)`

เมื่อต้องการหาค่าต่ำสุดจากข้อมูลที่ filtered ให้ใช้ FILTER ร่วมกับ MINX เหมือนในตัวอย่างนี้ ช่วยให้เราหลีกเลี่ยงการคำนวณทั้งคอลัมน์โดยไม่จำเป็น

### 5. ตัวอย่างที่ 5: หาต้นทุนเริ่มต้นต่ำสุดจากรหัสสินค้า (ใช้ RELATED)

```excel
Min Product Cost =
MINX(
    Sales,
    RELATED(Products[Cost])
)
```

**ผลลัพธ์:** `5.50 (ต้นทุนต่ำสุดของสินค้าที่ขายได้)`

MINX ทำงานในแถวคอนเท็กซ์ (Row Context) ซึ่งช่วยให้ RELATED ทำงานได้ เราจึงสามารถหาค่าต่ำสุดจากตารางที่เกี่ยวข้อง (Related Table) ได้ โดยไม่ต้อง CALCULATE หรือ Filter

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

- 💡 MINX เป็นฟังก์ชัน Iterator ซึ่งหมายความว่าทำงานทีละแถว ถ้าตารางมีแถวเยอะมากการทำงานอาจช้า แต่ถ้าต้องการความแม่นยำจากการคำนวณมันก็คุ้มครับ

- ✨ ใช้ MINX ร่วมกับ FILTER เมื่อต้องการหาค่าต่ำสุดจากสับเซตของข้อมูล เช่น 'ยอดขายต่ำสุดของลูกค้า VIP เท่านั้น'

- 🎯 Blank Values จะถูกข้ามโดยอัตโนมัติ ดังนั้นถ้ามีข้อมูลว่างจำนวนมากไม่ต้องกังวล MINX จะหาค่าที่มีอยู่จริงให้

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

**Q: เมื่อไรควรใช้ MINX แทน MIN?**

ใช้ MIN เมื่อค่าที่ต้องหาต่ำสุดอยู่ในคอลัมน์เดี่ยว เช่น MIN(Sales[Price]) แต่ใช้ MINX เมื่อต้องคำนวณก่อน เช่น MINX(Sales, Sales[Qty] * Sales[Price]) ส่วนตัวผมมักใช้ MINX เพื่อให้โค้ดอ่านชัดเจนว่า 'ทีละแถว' ครับ

**Q: MINX กับ MAXX ต่างกันยังไง?**

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

**Q: ถ้าตารางว่างจะเกิดอะไรขึ้น?**

MINX จะคืนค่า BLANK (ว่าง) ถ้าตารางไม่มีแถวเลย ส่วนถ้ามีแถวแต่ expression คำนวณได้ BLANK ก็จะข้ามไปหาค่าถัดไป (BLANK จะถูกข้ามเสมอ)

**Q: Expression สามารถใช้ RELATED ได้มั้ย?**

ได้ครับ MINX ทำงานแบบ Row Context ซึ่งเหมาะสำหรับ RELATED() ตัวอย่างเช่น MINX(Sales, RELATED(Products[Price])) ก็สามารถใช้ได้เลย

**Q: MINX รองรับข้อมูล Text ได้มั้ย?**

ได้ครับ แต่ข้อความจะเปรียบเทียบตามลำดับตัวอักษร (Alphabetical Order) ถ้าต้องการจัดการข้อมูล Mixed Type ให้ใช้ variant = TRUE

**Q: MINX ใช้กับ DirectQuery ได้มั้ย?**

MINX สามารถใช้ในเมจเชอร์ (Measures) ได้ แต่ไม่สามารถใช้ในคำนวณคอลัมน์ (Calculated Columns) หรือ RLS Rules หากเป็น DirectQuery mode ตัวอื่น ๆ ใช้ได้ปกติครับ

**Q: ทำไม MINX ช้ากว่า MIN ในบางครั้ง?**

เพราะ MINX เป็น Iterator - มันประเมินนิพจน์ทีละแถว ถ้ามีแถวจำนวนมาก (หลักแสน) มันจะช้า ใช้ MIN (ฟังก์ชันอัตโนมัติ) เมื่อเป็นคอลัมน์เดี่ยว หรือลอง VAR + FILTER เพื่อลดจำนวนแถวก่อน

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

- [Microsoft Learn: MINX Function](https://learn.microsoft.com/en-us/dax/minx-function-dax) _(official)_
- [DAX Guide: MINX](https://dax.guide/minx/) _(guide)_
- [Related: MAXX, MIN, CALCULATE](https://dax.guide/) _(guide)_

---

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