Table.FirstN
อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop
เอกสารอ้างอิง: Table.FirstN (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.
Table.FirstN คืออะไร
เก็บแถวบนสุดตามจำนวนที่กำหนด หรือเก็บไปเรื่อย ๆ ตราบที่เงื่อนไขยังเป็นจริง ใช้ต่อจาก Table.Sort เพื่อหา Top N
ใช้เมื่อไหร่
- หา 5 หรือ 10 อันดับแรกหลังเรียงข้อมูล
- จำกัดแถวระหว่างพัฒนา query กับไฟล์ใหญ่
รูปแบบสูตร
optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| table | จำเป็น | ตารางต้นทาง |
| countOrCondition | จำเป็น | จำนวนแถวที่เก็บ หรือเงื่อนไขแบบ each ที่เก็บแถวจนกว่าเงื่อนไขจะเป็นเท็จ |
ลองเลย: 5 คำสั่งซื้อที่ยอดสุทธิสูงสุดของไตรมาส
คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ
| แถว | ABCเลขที่คำสั่งซื้อ100% | วันที่100% | ABCรหัสสินค้า100% | ABCพนักงานขาย100% | ABCภูมิภาค100% | ABCช่องทาง100% | 123จำนวน100% | 1.2ราคาต่อหน่วย100% | 1.2ส่วนลด100% | 1.2ยอดสุทธิ100% |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SF-2025-0288 | 13/3/2025 | P009 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 59 | 720 | 0 | 42480 |
| 2 | SF-2025-0292 | 19/3/2025 | P009 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 57 | 720 | 0.05 | 38988 |
| 3 | SF-2025-0301 | 31/3/2025 | P011 | ธีรพงษ์ ฉัตรแก้ว | ตะวันออกเฉียงเหนือ | Modern Trade | 59 | 650 | 0 | 38350 |
| 4 | SF-2025-0237 | 2/1/2025 | P009 | วรวุฒิ แสงทอง | เหนือ | Online | 54 | 720 | 0.05 | 36936 |
| 5 | SF-2025-0282 | 5/3/2025 | P011 | สุภาพร หงษ์ทอง | ตะวันออก | Traditional Trade | 49 | 650 | 0 | 31850 |
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 อยู่แล้ว
=TAKE(SORTBY(A2:J66, J2:J66, -1), 5)TAKE คู่กับ SORTBY ใน Excel 365 ได้ Top 5 แบบเดียวกัน Power Query แยกเป็นขั้นเรียงแล้วขั้นเก็บแถวบนสุด
#"Kept First Rows" = Table.FirstN(#"Sorted Rows",5)เก็บแถวบนสุดตามจำนวนที่กำหนด หรือเก็บไปเรื่อย ๆ ตราบที่เงื่อนไขยังเป็นจริง ใช้ต่อจาก Table.Sort เพื่อหา Top N
TOPN(5, 'ยอดขาย', [ยอดสุทธิ], DESC)TOPN ของ DAX หา Top N ตามตัวกรองของรายงานทุกครั้งที่คำนวณ ใช้เมื่อ Top N ต้องเปลี่ยนตาม Slicer Table.FirstN ตัดครั้งเดียวก่อนโหลด
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. หา 5 คำสั่งซื้อยอดสูงสุด ต้องทำขั้นใดก่อน Table.FirstN
FirstN เก็บแถวบนสุดตามลำดับที่มีอยู่
2. ปุ่มใดสร้าง Table.FirstN
Keep Top Rows เก็บแถวบน Remove Top Rows ข้ามแถวบน
3. Top N ที่ต้องเปลี่ยนตาม Slicer ในรายงานควรทำที่ไหน
Power Query ทำงานตอน Refresh ส่วน DAX คำนวณตามตัวกรองของรายงาน
ไฟล์ฝึก Table.FirstN
9Expert-M-Table-FirstN-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1เลขที่คำสั่งซื้อของแถวที่ 5 (แถวสุดท้ายหลัง Kept First Rows) · ดูที่ขั้น Kept First Rows
- ข้อ 2เก็บ 3 แถว ผลรวมยอดสุทธิ · ดูที่ขั้น Kept First Rows
- ข้อ 3เก็บ 10 แถว ผลรวมยอดสุทธิ · ดูที่ขั้น Kept First Rows
- ข้อ 4ยอดสุทธิสูงสุดของไตรมาสเท่ากับเท่าไร · ดูที่ขั้น Kept First Rows
- ข้อ 5เก็บ 10 แถว พนักงานขายของแถวสุดท้ายคือใคร · ดูที่ขั้น Kept First Rows
ไปต่อ
ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน