Table.Sort
อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop
เอกสารอ้างอิง: Table.Sort (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.
Table.Sort คืออะไร
เรียงแถวตามคอลัมน์ที่กำหนด ใส่ได้หลายคอลัมน์ คอลัมน์แรกเรียงก่อน ค่าที่เท่ากันจึงเรียงด้วยคอลัมน์ถัดไป
ใช้เมื่อไหร่
- เรียงข้อมูลก่อนเก็บแถวบนสุด (Top N) หรือก่อนใส่เลขลำดับ
- เรียงตารางที่โหลดลงชีตให้อ่านง่าย
รูปแบบสูตร
optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| table | จำเป็น | ตารางต้นทาง |
| comparisonCriteria | จำเป็น | ชื่อคอลัมน์ หรือ list ของ {คอลัมน์, Order.Ascending หรือ Order.Descending} |
ลองเลย: เรียงคำสั่งซื้อจากมากไปน้อย ค่าที่เท่ากันเรียงตามเลขที่
คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ
| แถว | ABCเลขที่คำสั่งซื้อ100% | วันที่100% | ABCรหัสสินค้า100% | ABCพนักงานขาย100% | ABCภูมิภาค100% | ABCช่องทาง100% | 123จำนวน100% | 1.2ราคาต่อหน่วย100% | 1.2ส่วนลด100% |
|---|---|---|---|---|---|---|---|---|---|
| 1 | SF-2025-0288 | 13/3/2025 | P009 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 59 | 720 | 0 |
| 2 | SF-2025-0301 | 31/3/2025 | P011 | ธีรพงษ์ ฉัตรแก้ว | ตะวันออกเฉียงเหนือ | Modern Trade | 59 | 650 | 0 |
| 3 | SF-2025-0292 | 19/3/2025 | P009 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 57 | 720 | 0.05 |
| 4 | SF-2025-0281 | 3/3/2025 | P006 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Traditional Trade | 55 | 560 | 0 |
| 5 | SF-2025-0300 | 31/3/2025 | P030 | นันทิดา กิจเจริญ | กลาง | Online | 55 | 420 | 0 |
| 6 | SF-2025-0237 | 2/1/2025 | P009 | วรวุฒิ แสงทอง | เหนือ | Online | 54 | 720 | 0.05 |
| 7 | SF-2025-0296 | 28/3/2025 | P039 | สุภาพร หงษ์ทอง | ตะวันออก | Traditional Trade | 53 | 420 | 0 |
| 8 | SF-2025-0254 | 21/1/2025 | P036 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 51 | 540 | 0 |
| 9 | SF-2025-0249 | 16/1/2025 | P006 | สุภาพร หงษ์ทอง | ตะวันออก | Traditional Trade | 50 | 560 | 0.05 |
| 10 | SF-2025-0282 | 5/3/2025 | P011 | สุภาพร หงษ์ทอง | ตะวันออก | Traditional Trade | 49 | 650 | 0 |
| 11 | SF-2025-0253 | 20/1/2025 | P024 | กมลชนก พงษ์พานิช | ใต้ | Online | 48 | 520 | 0.1 |
| 12 | SF-2025-0280 | 28/2/2025 | P001 | กมลชนก พงษ์พานิช | ใต้ | Modern Trade | 45 | 420 | 0.05 |
| 13 | SF-2025-0291 | 19/3/2025 | P030 | กมลชนก พงษ์พานิช | ใต้ | Modern Trade | 45 | 420 | 0.05 |
| 14 | SF-2025-0252 | 18/1/2025 | P001 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Traditional Trade | 44 | 420 | 0.1 |
| 15 | SF-2025-0268 | 15/2/2025 | P036 | วรวุฒิ แสงทอง | เหนือ | Food Service | 43 | 540 | 0 |
| 16 | SF-2025-0294 | 25/3/2025 | P030 | สุภาพร หงษ์ทอง | ตะวันออก | Online | 43 | 420 | 0.05 |
| 17 | SF-2025-0276 | 23/2/2025 | P017 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Online | 42 | 250 | 0 |
| 18 | SF-2025-0274 | 21/2/2025 | P030 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Modern Trade | 41 | 420 | 0.05 |
| 19 | SF-2025-0247 | 14/1/2025 | P009 | อรทัย พิทักษ์วงศ์ | กลาง | Traditional Trade | 39 | 720 | 0 |
| 20 | SF-2025-0277 | 24/2/2025 | P024 | สุภาพร หงษ์ทอง | ตะวันออก | Modern Trade | 39 | 520 | 0.05 |
| 21 | SF-2025-0239 | 5/1/2025 | P036 | อรทัย พิทักษ์วงศ์ | กลาง | Online | 38 | 540 | 0 |
| 22 | SF-2025-0257 | 26/1/2025 | P036 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 38 | 540 | 0 |
| 23 | SF-2025-0258 | 29/1/2025 | P036 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 38 | 540 | 0.05 |
| 24 | SF-2025-0246 | 13/1/2025 | P006 | วรวุฒิ แสงทอง | เหนือ | Online | 37 | 560 | 0 |
| 25 | SF-2025-0283 | 6/3/2025 | P017 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Modern Trade | 37 | 250 | 0 |
| 26 | SF-2025-0238 | 4/1/2025 | P024 | นันทิดา กิจเจริญ | กลาง | Online | 35 | 520 | 0.05 |
| 27 | SF-2025-0250 | 16/1/2025 | P001 | กมลชนก พงษ์พานิช | ใต้ | Traditional Trade | 35 | 420 | 0 |
| 28 | SF-2025-0285 | 9/3/2025 | P006 | ธีรพงษ์ ฉัตรแก้ว | ตะวันออกเฉียงเหนือ | Modern Trade | 35 | 560 | 0 |
| 29 | SF-2025-0287 | 11/3/2025 | P030 | นันทิดา กิจเจริญ | กลาง | Traditional Trade | 34 | 420 | 0.05 |
| 30 | SF-2025-0265 | 10/2/2025 | P006 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 33 | 560 | 0 |
| 31 | SF-2025-0266 | 10/2/2025 | P006 | กมลชนก พงษ์พานิช | ใต้ | Modern Trade | 33 | 560 | 0 |
| 32 | SF-2025-0273 | 20/2/2025 | P006 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 32 | 560 | 0 |
| 33 | SF-2025-0275 | 22/2/2025 | P011 | วรวุฒิ แสงทอง | เหนือ | Modern Trade | 32 | 650 | 0 |
| 34 | SF-2025-0243 | 9/1/2025 | P036 | สุภาพร หงษ์ทอง | ตะวันออก | Modern Trade | 30 | 540 | 0.1 |
| 35 | SF-2025-0298 | 29/3/2025 | P030 | ชยพล บุญมา | ตะวันออกเฉียงเหนือ | Modern Trade | 29 | 420 | 0 |
| 36 | SF-2025-0269 | 16/2/2025 | P017 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Online | 28 | 250 | 0.1 |
| 37 | SF-2025-0297 | 28/3/2025 | P039 | นันทิดา กิจเจริญ | กลาง | Traditional Trade | 27 | 420 | 0 |
| 38 | SF-2025-0299 | 29/3/2025 | P039 | นันทิดา กิจเจริญ | กลาง | Online | 26 | 420 | 0.05 |
| 39 | SF-2025-0248 | 15/1/2025 | P009 | ธีรพงษ์ ฉัตรแก้ว | ตะวันออกเฉียงเหนือ | Online | 24 | 720 | 0 |
| 40 | SF-2025-0289 | 17/3/2025 | P024 | อรทัย พิทักษ์วงศ์ | กลาง | Modern Trade | 24 | 520 | 0.05 |
Sorted Rows · ขั้นนี้ทำอะไร
Table.Sort รับตาราง 65 แถว × 9 คอลัมน์ ได้ 65 แถว × 9 คอลัมน์
เรียงตาม จำนวน มากไปน้อย แล้ว เลขที่คำสั่งซื้อ น้อยไปมาก แถวที่ค่าเท่ากันในคอลัมน์แรกตัดสินด้วยคอลัมน์ถัดไป
| ลำดับใหม่ | แถวเดิม | จำนวน | เลขที่คำสั่งซื้อ |
|---|---|---|---|
| 1 | 52 | 59 | SF-2025-0288 |
| 2 | 65 | 59 | SF-2025-0301 |
| 3 | 56 | 57 | SF-2025-0292 |
| 4 | 45 | 55 | SF-2025-0281 |
| 5 | 64 | 55 | SF-2025-0300 |
| 6 | 1 | 54 | SF-2025-0237 |
| 7 | 60 | 53 | SF-2025-0296 |
| 8 | 18 | 51 | SF-2025-0254 |
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}}), #"Sorted Rows" = Table.Sort(#"Changed Type",{{"จำนวน", Order.Descending}, {"เลขที่คำสั่งซื้อ", Order.Ascending}}) in #"Sorted Rows"วางใน Home › Advanced Editor ของ Power Query ในไฟล์ฝึกได้ทันที
ถ้าคุณใช้ Excel หรือ DAX อยู่แล้ว
=SORTBY(A2:I66, G2:G66, -1, A2:A66, 1)SORTBY ใน Excel 365 เรียงหลายคอลัมน์แบบเดียวกัน -1 คือมากไปน้อย ตรงกับ Order.Descending
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"จำนวน", Order.Descending}, {"เลขที่คำสั่งซื้อ", Order.Ascending}})เรียงแถวตามคอลัมน์ที่กำหนด ใส่ได้หลายคอลัมน์ คอลัมน์แรกเรียงก่อน ค่าที่เท่ากันจึงเรียงด้วยคอลัมน์ถัดไป
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. Order.Descending หมายถึงอะไร
Descending คือมากไปน้อย Ascending คือน้อยไปมาก
2. ทำไมควรใส่คอลัมน์ที่สองใน Table.Sort
คอลัมน์ที่สองใช้ตัดสินเฉพาะแถวที่คอลัมน์แรกเท่ากัน
3. การเรียงแถวใน Power Query มีผลกับลำดับใน visual ของ Power BI หรือไม่
ใช้ Table.Sort เมื่อขั้นถัดไปต้องการลำดับ เช่น Table.FirstN หรือ Index
ไฟล์ฝึก Table.Sort
9Expert-M-Table-Sort-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1เรียงจำนวนมากไปน้อย ค่า จำนวน ในแถวแรกเท่ากับเท่าไร · ดูที่ขั้น Sorted Rows
- ข้อ 2เรียงจำนวนน้อยไปมาก เลขที่คำสั่งซื้อแถวแรกคืออะไร · ดูที่ขั้น Sorted Rows
- ข้อ 3เรียงราคาต่อหน่วยมากไปน้อย เลขที่คำสั่งซื้อแถวแรกคืออะไร · ดูที่ขั้น Sorted Rows
- ข้อ 4เรียงราคาต่อหน่วยน้อยไปมาก ค่า ราคาต่อหน่วย แถวแรก · ดูที่ขั้น Sorted Rows
- ข้อ 5เรียงจำนวนมากไปน้อย เลขที่คำสั่งซื้อแถวสุดท้ายคืออะไร · ดูที่ขั้น Sorted Rows
ไปต่อ
ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน