Thep Excel

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

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

fx
=List.MaxN(list, countOrCondition, [comparisonCriteria], [includeNulls]) as list

ความนิยม5/10
ความยาก4/10
ประโยชน์5/10

อัปเดต 3 December 2025

Syntax & Arguments

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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

ฟังก์ชัน List.MaxN ใน Power Query ใช้สำหรับดึงค่าที่มีค่าสูงสุดจำนวน N ตัวแรกจาก List (Top N) หรือดึงค่าที่ผ่านเงื่อนไขที่กำหนด โดยผลลัพธ์จะถูกเรียงลำดับจากมากไปน้อยโดยอัตโนมัติ

ที่เจ๋งคือ ผมชอบ List.MaxN เพราะมันสมาร์ทมากเลย – ใช้ได้ทั้งเพื่อหา Top N values แบบธรรมชาติ หรือดึงเฉพาะค่าที่ผ่านเงื่อนไข และจะเรียงลำดับให้อัตโนมัติด้วย ไม่ต้องเรียกใช้ List.Sort เพิ่ม

ส่วนตัวผม ผมใช้ List.MaxN บ่อยมากเวลาต้องการดึงข้อมูล Top N ที่สำคัญ เช่น ยอดขายสูงสุด 5 อันดับแรก หรือลูกค้าที่มีค่ามากที่สุด 10 รายก่อน ประหยัดเวลาและโค้ดสวยงาม 😎

How it works

หา Top N Items

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

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

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

Examples

ตัวอย่างที่ 1: หาค่าสูงสุด 5 อันดับแรกList.MaxN({3, 4, 5, -1, 7, 8, 2}, 5)

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

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

ผลลัพธ์{8, 7, 5, 4, 3}
ตัวอย่างที่ 2: กรองค่าตามเงื่อนไข (ความยาวคำ)List.MaxN({"boy", "dog", "pony", "cat", "rabbit", "bat"}, each Text.Length(_) > 3)

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

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

ผลลัพธ์{"rabbit", "pony"}
ตัวอย่างที่ 3: หาค่าสูงสุดพร้อมแปลง FormatList.MaxN({"12.02.2024", "15.05.2025", "30.12.2022"}, 2, each Date.FromText(_, [Culture = "de-DE"]))

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

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

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

FAQs

List.MaxN ต่างจาก List.Max อย่างไร?+

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

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

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ List.MaxN จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้List.MaxNList functions
List functions (3)
List.Max

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

List.MinN

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

List.Sort

เรียงลำดับสมาชิกในรายการตามเงื่อนไขที่กำหนด ไม่ว่าจะเป็นจากน้อยไปมากหรือมากไปน้อย

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่