---
title: List.Max – หาค่าสูงสุดจากรายการ
url: https://www.thepexcel.com/functions/power-query/list-functions/list-max/
type: function-explainer
program: Power Query
syntax: "List.Max(list as list, optional default as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as any"
date: 2025-12-03
updated: 2025-12-23
scores:
  popularity: 8
  difficulty: 2
  usefulness: 8
---

# List.Max – หาค่าสูงสุดจากรายการ

> List.Max หาค่าที่มากที่สุดในรายการได้อย่างรวดเร็ว รองรับค่าเริ่มต้นสำหรับรายการว่าง และสามารถจัดการค

## คำอธิบาย

List.Max หาค่าที่มากที่สุดในรายการได้อย่างรวดเร็ว รองรับค่าเริ่มต้นสำหรับรายการว่าง และสามารถจัดการค่า null ตามที่ต้องการ ฟังก์ชันนี้ใช้บ่อยสำหรับหาค่าสูงสุด คะแนนสูงสุด หรือวันที่ล่าสุด

## Syntax

```excel
List.Max(list as list, optional default as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as any
```

**Variant**

```excel
List.Max({1, 4, 7, 3, -2, 5})
```

หาค่าสูงสุดจากรายการตัวเลข

**Variant**

```excel
List.Max({1, 4, 7, 3, -2, 5}, 1)
```

หาค่าสูงสุด โดยหากรายการว่างให้คืนค่า 1

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| list | Yes | List |  | รายการที่ต้องการหาค่าสูงสุด สามารถประกอบด้วยตัวเลข ข้อความ วันที่ เวลา หรือประเภทข้อมูลอื่นที่สามารถเปรียบเทียบได้ |
| default | No | Any | null | ค่าที่จะคืนหากรายการว่างเปล่า (ไม่มีข้อมูล) ถ้าไม่ระบุและรายการว่าง จะได้ข้อผิดพลาด |
| comparisonCriteria | No | Function | null | ฟังก์ชันที่ใช้แปลงหรือเลือกค่าก่อนการเปรียบเทียบ เช่น each Text.Upper(_) เพื่อเปรียบเทียบแบบไม่สนใจตัวพิมพ์ใหญ่-เล็ก |
| includeNulls | No | Logical | true | ระบุว่าควรรวมค่า null ในการหาค่าสูงสุด ค่าเริ่มต้นเป็น true (รวม null) ถ้าตั้ง false จะข้ามค่า null ไป |

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

### หายอดขายสูงสุด

หาจำนวนเงินขายที่สูงสุดจากรายการตัวเลขทั้งหมด

_เหมาะกับ:_ maximum-search

### หาข้อมูลที่ใหญ่ที่สุด

ใช้กับข้อมูลข้อความ เช่น หาคำว่า 'zebra' จากรายการคำศัพท์ (ตามลำดับตัวอักษร)

_เหมาะกับ:_ alphabetical-maximum

## ตัวอย่าง

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

```excel
= List.Max({1, 4, 7, 3, -2, 5})
```

**ผลลัพธ์:** `7`

หาค่าที่มากที่สุดจากรายการ {1, 4, 7, 3, -2, 5} ได้ผลลัพธ์เป็น 7 เพราะ 7 เป็นค่าที่ใหญ่ที่สุด

### 2. ตัวอย่างที่ 2: หาค่าสูงสุดกับค่าเริ่มต้น (รายการว่าง)

```excel
= List.Max({}, -1)
```

**ผลลัพธ์:** `-1`

รายการว่างเปล่า ระบุค่าเริ่มต้นเป็น -1 ฟังก์ชันจึงคืนค่า -1 แทนที่จะเกิดข้อผิดพลาด

### 3. ตัวอย่างที่ 3: หาค่าสูงสุดจากข้อความ (ลำดับตัวอักษร)

```excel
= List.Max({"boy", "dog", "girl", "zebra", "cat", "mouse", "rabbit"})
```

**ผลลัพธ์:** `"zebra"`

หาคำที่มีลำดับตัวอักษรสูงสุด ได้ผลลัพธ์เป็น "zebra" เพราะ z เป็นตัวอักษรสุดท้ายในลำดับตัวอักษร

### 4. ตัวอย่างที่ 4: หาวันที่ล่าสุดจากรายการวันที่

```excel
= List.Max({#date(2024, 2, 12), #date(2025, 5, 15), #date(2021, 10, 10), #date(2025, 1, 16)})
```

**ผลลัพธ์:** `#date(2025, 5, 15)`

หาวันที่ล่าสุด (มากที่สุด) จากรายการ ได้ผลลัพธ์เป็น 15 พฤษภาคม 2025 เพราะเป็นวันที่ใหม่ที่สุด

### 5. ตัวอย่างที่ 5: ใช้ comparisonCriteria เพื่อเปรียบเทียบตัวเลขที่เป็นข้อความ

```excel
= List.Max({"100", "20", "5", "50"}, 0, each Value.FromText(_))
```

**ผลลัพธ์:** `"100"`

แปลงข้อความเป็นตัวเลขก่อนเปรียบเทียบ จึงได้ "100" เป็นค่าสูงสุด (ถ้าไม่แปลง "5" จะเป็นค่าสูงสุดตามลำดับตัวอักษร)

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

- ใช้ includeNulls = false ถ้าต้องการข้ามค่า null และหาค่าสูงสุดจากข้อมูลที่มีอยู่

- ผสม List.Max กับ Table.Group เพื่อหาค่าสูงสุดในแต่ละกลุ่มข้อมูล

- สำหรับวันที่ List.Max ใช้ได้โดยตรง เพราะวันที่สามารถเปรียบเทียบตามลำดับเวลาได้

- comparisonCriteria ช่วยได้มากเมื่อต้องเปรียบเทียบแบบซับซ้อน เช่น ไม่สนใจตัวพิมพ์ใหญ่-เล็ก หรือแปลงรูปแบบก่อนเปรียบเทียบ

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

**Q: List.Max กับ List.Min ต่างกันอย่างไร?**

List.Max หาค่าสูงสุด (มากที่สุด) ส่วน List.Min หาค่าต่ำสุด (น้อยที่สุด) ทั้งสองมีพารามิเตอร์และการใช้งานเหมือนกัน แต่ผลลัพธ์เป็นตรงกันข้าม

**Q: ถ้ารายการมีค่า null จะเกิดอะไรขึ้น?**

โดยค่าเริ่มต้น includeNulls = true ดังนั้น null จะถูกรวมในการพิจารณา หากต้องการข้ามค่า null ให้ตั้ง includeNulls = false

**Q: จะใช้ List.Max กับข้อมูลประเภทไม่เดียวกันได้ไหม?**

ไม่ได้ List.Max ต้องการข้อมูลที่สามารถเปรียบเทียบได้ อย่างไรก็ตาม สามารถใช้ comparisonCriteria เพื่อแปลงข้อมูลให้ประเภทเดียวกัน แล้วเปรียบเทียบได้

**Q: หาค่าสูงสุดในตารางได้ไหม?**

ต้องแปลงคอลัมน์ในตารางเป็นรายการก่อน ใช้ Table.Column(table, "columnName") เพื่อเอาข้อมูลออกมาเป็นรายการ แล้วใช้ List.Max

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

- [Microsoft Learn: List.Max](https://learn.microsoft.com/en-us/powerquery-m/list-max) _(official)_
- [Power Query M Language Reference](https://learn.microsoft.com/en-us/powerquery-m/) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/list-functions/list-max/](https://www.thepexcel.com/functions/power-query/list-functions/list-max/)_
