คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › Power Query › จัดการแถว › Table.FirstN

Table.FirstN

Power Query · Mจัดการแถวระดับพื้นฐาน

อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop

เอกสารอ้างอิง: Table.FirstN (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.

Table.FirstN คืออะไร

เก็บแถวบนสุดตามจำนวนที่กำหนด หรือเก็บไปเรื่อย ๆ ตราบที่เงื่อนไขยังเป็นจริง ใช้ต่อจาก Table.Sort เพื่อหา Top N

ปุ่มใน Power Query Editor ที่สร้างขั้นนี้Home › Reduce Rows › Keep Rows › Keep Top Rows

ใช้เมื่อไหร่

  • หา 5 หรือ 10 อันดับแรกหลังเรียงข้อมูล
  • จำกัดแถวระหว่างพัฒนา query กับไฟล์ใหญ่

รูปแบบสูตร

Table.FirstN(table as table, countOrCondition as any) as table

optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางต้นทาง
countOrConditionจำเป็นจำนวนแถวที่เก็บ หรือเงื่อนไขแบบ each ที่เก็บแถวจนกว่าเงื่อนไขจะเป็นเท็จ

ลองเลย: 5 คำสั่งซื้อที่ยอดสุทธิสูงสุดของไตรมาส

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

กดใน Power Query EditorHome › Reduce Rows › Keep Rows › Keep Top Rows
Ctrl + Enter คำนวณ · แก้ได้ทุกขั้น เลือกขั้นจาก Applied Steps
10 คอลัมน์ · 5 แถว
Kept First Rows · ตารางหลังขั้นนี้ 5 แถว 10 คอลัมน์
แถวABCเลขที่คำสั่งซื้อ100%วันที่100%ABCรหัสสินค้า100%ABCพนักงานขาย100%ABCภูมิภาค100%ABCช่องทาง100%123จำนวน100%1.2ราคาต่อหน่วย100%1.2ส่วนลด100%1.2ยอดสุทธิ100%
1SF-2025-028813/3/2025P009กมลชนก พงษ์พานิชใต้Traditional Trade59720042480
2SF-2025-029219/3/2025P009นันทิดา กิจเจริญกลางModern Trade577200.0538988
3SF-2025-030131/3/2025P011ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือModern Trade59650038350
4SF-2025-02372/1/2025P009วรวุฒิ แสงทองเหนือOnline547200.0536936
5SF-2025-02825/3/2025P011สุภาพร หงษ์ทองตะวันออกTraditional Trade49650031850

Kept First Rows · ขั้นนี้ทำอะไร

Table.FirstN รับตาราง 65 แถว × 10 คอลัมน์ ได้ 5 แถว × 10 คอลัมน์

เก็บ แถวบนสุด 5 แถว ตามลำดับที่ตารางเรียงอยู่ตอนนี้ แถวที่เหลือถูกตัดออก

Advanced Editor · โค้ดทั้ง query
let
    Source = Excel.CurrentWorkbook(){[Name="Sales"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"เลขที่คำสั่งซื้อ", type text}, {"วันที่", type date}, {"รหัสสินค้า", type text}, {"พนักงานขาย", type text}, {"ภูมิภาค", type text}, {"ช่องทาง", type text}, {"จำนวน", Int64.Type}, {"ราคาต่อหน่วย", type number}, {"ส่วนลด", type number}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "ยอดสุทธิ", each [จำนวน] * [ราคาต่อหน่วย] * (1 - [ส่วนลด]), type number),
    #"Sorted Rows" = Table.Sort(#"Added Custom",{{"ยอดสุทธิ", Order.Descending}, {"เลขที่คำสั่งซื้อ", Order.Ascending}}),
    #"Kept First Rows" = Table.FirstN(#"Sorted Rows",5)
in
    #"Kept First Rows"
วางใน Home › Advanced Editor ของ Power Query ในไฟล์ฝึกได้ทันที

ถ้าคุณใช้ Excel หรือ DAX อยู่แล้ว

EXCEL=TAKE(SORTBY(A2:J66, J2:J66, -1), 5)

TAKE คู่กับ SORTBY ใน Excel 365 ได้ Top 5 แบบเดียวกัน Power Query แยกเป็นขั้นเรียงแล้วขั้นเก็บแถวบนสุด

POWER QUERY · M#"Kept First Rows" = Table.FirstN(#"Sorted Rows",5)

เก็บแถวบนสุดตามจำนวนที่กำหนด หรือเก็บไปเรื่อย ๆ ตราบที่เงื่อนไขยังเป็นจริง ใช้ต่อจาก Table.Sort เพื่อหา Top N

DAXTOPN(5, 'ยอดขาย', [ยอดสุทธิ], DESC)

TOPN ของ DAX หา Top N ตามตัวกรองของรายงานทุกครั้งที่คำนวณ ใช้เมื่อ Top N ต้องเปลี่ยนตาม Slicer Table.FirstN ตัดครั้งเดียวก่อนโหลด

ข้อผิดพลาดและเคล็ดลับ

ต้องเรียงแถวก่อนเสมอ ไม่เช่นนั้นจะได้ 5 แถวแรกตามลำดับเดิมของไฟล์ ไม่ใช่ 5 อันดับสูงสุด
ถ้าค่าที่อันดับสุดท้ายเท่ากันหลายแถว Table.FirstN ตัดตามจำนวนพอดี ใส่คอลัมน์ที่สองใน Table.Sort ให้ผลแน่นอน
ใช้ Keep Top Rows ตอนพัฒนา query กับไฟล์ใหญ่ เพื่อให้ Preview เร็วขึ้น แล้วค่อยเอาออกก่อนใช้จริง

แบบทดสอบ 3 ข้อ

1. หา 5 คำสั่งซื้อยอดสูงสุด ต้องทำขั้นใดก่อน Table.FirstN

2. ปุ่มใดสร้าง Table.FirstN

3. Top N ที่ต้องเปลี่ยนตาม Slicer ในรายงานควรทำที่ไหน

ไฟล์ฝึก Table.FirstN

9Expert-M-Table-FirstN-Practice-v1.0.xlsx

รุ่น 1.0 · 3/10/2026 · 21 KB · ไม่มี Macro · เปิดใน Excel › Data › Get Data › Blank Query แล้ววางโค้ดตั้งต้น ทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นข้อมูลส่งออกยอดขายเป้าหมายโค้ดตั้งต้นแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1เลขที่คำสั่งซื้อของแถวที่ 5 (แถวสุดท้ายหลัง Kept First Rows) · ดูที่ขั้น Kept First Rows
  2. ข้อ 2เก็บ 3 แถว ผลรวมยอดสุทธิ · ดูที่ขั้น Kept First Rows
  3. ข้อ 3เก็บ 10 แถว ผลรวมยอดสุทธิ · ดูที่ขั้น Kept First Rows
  4. ข้อ 4ยอดสุทธิสูงสุดของไตรมาสเท่ากับเท่าไร · ดูที่ขั้น Kept First Rows
  5. ข้อ 5เก็บ 10 แถว พนักงานขายของแถวสุดท้ายคือใคร · ดูที่ขั้น Kept First Rows

ไปต่อ

อยากใช้ Power Query เตรียมข้อมูลจริงทั้งระบบ

ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน

ดูหลักสูตร