---
title: List.MaxN – คืนค่าสูงสุด N อันดับแรกของ List
url: https://www.thepexcel.com/functions/power-query/list-functions/list-maxn/
type: function-explainer
program: Power Query
syntax: "List.MaxN(list as list, countOrCondition as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as list"
date: 2025-12-03
updated: 2025-12-26
scores:
  popularity: 5
  difficulty: 4
  usefulness: 5
---

# List.MaxN – คืนค่าสูงสุด N อันดับแรกของ List

> List.MaxN คืนค่าสูงสุด N ตัวแรก หรือค่าที่ผ่านเงื่อนไขจาก List โดยเรียงลำดับจากมากไปน้อย

## คำอธิบาย

List.MaxN คืนค่าสูงสุด N ตัวแรก หรือค่าที่ผ่านเงื่อนไขจาก List โดยเรียงลำดับจากมากไปน้อย

## Syntax

```excel
List.MaxN(list as list, countOrCondition as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as list
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| list | Yes | list |  | List ที่ต้องการหาค่าสูงสุด |
| countOrCondition | Yes | any |  | ระบุจำนวนรายการ (Number) ที่ต้องการ หรือเงื่อนไข (Function) เพื่อกรองค่า |
| comparisonCriteria | No | any | null | ฟังก์ชันสำหรับการเปรียบเทียบค่า หรือแปลงค่าก่อนเปรียบเทียบ (เช่น Date.FromText) |
| includeNulls | No | nullable logical | true | กำหนดว่าจะรวมค่า null ในการพิจารณาหรือไม่ (ค่าเริ่มต้นคือ true) |

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

### หา Top N Items

เช่น หายอดขายสูงสุด 5 อันดับแรก หรือหาสินค้าที่ขายดีที่สุด 3 รายการ

### กรองข้อมูลตามเงื่อนไข

เลือกเฉพาะรายการที่มีค่ามากกว่าเกณฑ์ที่กำหนด และให้เรียงลำดับผลลัพธ์ด้วย

## ตัวอย่าง

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

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

**ผลลัพธ์:** `{8, 7, 5, 4, 3}`

คืนค่า 5 ตัวที่มีค่ามากที่สุดจาก List โดยเรียงจากมากไปน้อย

### 2. ตัวอย่างที่ 2: กรองค่าตามเงื่อนไข (ความยาวคำ)

```excel
List.MaxN({"boy", "dog", "pony", "cat", "rabbit", "bat"}, each Text.Length(_) > 3)
```

**ผลลัพธ์:** `{"rabbit", "pony"}`

เลือกเฉพาะคำที่มีความยาวมากกว่า 3 ตัวอักษร และเรียงลำดับ (ในกรณีนี้ Text เปรียบเทียบตามตัวอักษร r > p)

### 3. ตัวอย่างที่ 3: หาค่าสูงสุดพร้อมแปลง Format

```excel
List.MaxN({"12.02.2024", "15.05.2025", "30.12.2022"}, 2, each Date.FromText(_, [Culture = "de-DE"]))
```

**ผลลัพธ์:** `{"15.05.2025", "12.02.2024"}`

หา 2 วันที่ล่าสุด โดยระบุ comparisonCriteria เพื่อแปลงข้อความเป็นวันที่แบบเยอรมันก่อนเปรียบเทียบ

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

- ผมแนะนำให้ใช้ countOrCondition เป็นตัวเลข (5, 10, 100) เมื่อรู้จำนวนที่ต้องการล่วงหน้า แต่ใช้ each เงื่อนไขเมื่อต้องกรองตามหลักเกณฑ์

- ส่วนตัวผม ถ้าจำนวนที่ขอมากกว่า List ตัวจริง มันจะคืนค่าทั้งหมด ไม่ใช้ข้อมูล Null ให้เซต includeNulls = false ถ้าต้องการข้ามค่าว่าง

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

**Q: List.MaxN ต่างจาก List.Max อย่างไร?**

List.Max คืนค่า 'ค่าเดียว' ที่เป็นค่าสูงสุด ส่วน List.MaxN คืนค่าเป็น 'List' ของค่าสูงสุด N อันดับแรก

**Q: ผลลัพธ์เรียงลำดับหรือไม่?**

ใช่ ผลลัพธ์จาก List.MaxN จะถูกเรียงลำดับจากมากไปน้อยเสมอ

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

- [List.Max – หาค่าสูงสุดจากรายการ](https://www.thepexcel.com/functions/power-query/list-functions/list-max/)
- [List.MinN – คืนค่าต่ำสุด N อันดับแรกของ List](https://www.thepexcel.com/functions/power-query/list-functions/list-minn/)
- [List.Sort – เรียงลำดับรายการ](https://www.thepexcel.com/functions/power-query/list-functions/list-sort/)

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

- [Microsoft Learn: List.MaxN](https://learn.microsoft.com/en-us/powerquery-m/list-maxn) _(official)_

---

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