คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

SORTBY

Dynamic ArrayระดับกลางExcel 2021+ไม่มีใน Excel 2016/2019

อัปเดต 23 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างคำนวณด้วย LibreOffice และตรงกับตัวคำนวณของหน้าเว็บ

SORTBY คืออะไร

เรียงข้อมูลตามช่วงอื่นหรือค่าที่คำนวณได้ และเรียงหลายลำดับในสูตรเดียว

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

  • จัดอันดับพนักงานตาม % ของเป้า โดยไม่ต้องเพิ่มคอลัมน์
  • เรียงรายงานหลายลำดับ เช่น ช่องทาง แล้วยอด
  • เรียงตามลำดับที่ธุรกิจกำหนดเอง

รูปแบบสูตร

=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], …)

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
arrayจำเป็นช่วงหรือ array ที่ต้องการเรียงและแสดงผล
by_array1จำเป็นช่วงหรือค่าที่ใช้เรียง ต้องมีจำนวนแถวเท่ากับ array
[sort_order1]ไม่บังคับ1 น้อยไปมาก (ค่าเริ่มต้น) · -1 มากไปน้อย
[by_array2, sort_order2], …ไม่บังคับลำดับถัดไป ใช้ตัดสินเมื่อค่าของลำดับก่อนหน้าเท่ากัน

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

by_array = D5:D12/C5:C12 คำนวณ % ของเป้าในสูตรเลย ไม่ต้องเพิ่มคอลัมน์ช่วย

A15
=SORTBY(A5:B12,D5:D12/C5:C12,-1)
ค่าที่ใช้เรียง ลำดับที่ 1 D5:D12/C5:C12 คำนวณได้ 105.9%, 97.0%, 107.8%, 91.2%, 109.3%, … เรียงมากไปน้อย (-1)
แถวABCDEFG
4พนักงานขายภูมิภาคเป้ายอดขาย (บาท)ยอดขายจริง (บาท)คะแนนลูกค้า (เต็ม 5)
5เอกชัย บัวทองใต้12,000,00012,706,6674.6
6ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือ11,000,00010,668,8123.8
7สุภาพร หงษ์ทองตะวันออก9,000,0009,700,5994.2
8นันทิดา กิจเจริญกลาง10,000,0009,123,7304.5
9กมลชนก พงษ์พานิชเหนือ7,000,0007,651,2964.1
10กานดา ดีพร้อมตะวันออกเฉียงเหนือ7,500,0006,853,2263.9
11เอกชัย มั่งมีศรีกลาง6,000,0006,635,8924.7
12นภาพร แสงทองเหนือ7,000,0005,919,1233.5
13ผลลัพธ์จากสูตรในช่อง A15 · spill ลงมาเอง
14พนักงานขายภูมิภาค
15เอกชัย มั่งมีศรีกลาง
16กมลชนก พงษ์พานิชเหนือ
17สุภาพร หงษ์ทองตะวันออก
18เอกชัย บัวทองใต้
19ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือ
20กานดา ดีพร้อมตะวันออกเฉียงเหนือ
21นันทิดา กิจเจริญกลาง
22นภาพร แสงทองเหนือ
23
24
25
A5:B12
D5:D12
C5:C12
ช่องกรอกและผลลัพธ์
สูตรที่ A15 (ผลลัพธ์ spill)
ขั้นตอนการคำนวณ (2)
ผลลัพธ์ในกรอบเส้นประมาจากสูตรเดียวในช่องสีเขียวมะนาว คลิกช่องไหนในผลลัพธ์ก็ได้เพื่อดูสูตร · แก้ข้อมูลด้านบนแล้วผลลัพธ์จะขยายหรือหดเอง · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 เรียงตามค่าคำนวณ” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • เอกชัย มั่งมีศรี ทำได้ 110.6% ของเป้า จึงอยู่อันดับแรก แม้ยอดขายจริงจะน้อยเป็นอันดับ 2 ของทีม
  • by_array ต้องมีจำนวนแถวเท่ากับ array
  • SORT ทำแบบนี้ไม่ได้ถ้าไม่เพิ่มคอลัมน์ % ในตาราง

ตัวอย่างทั้งหมด 3 แบบ

  1. 1เรียงพนักงานตาม % ของเป้า · by_array = D5:D12/C5:C12 คำนวณ % ของเป้าในสูตรเลย ไม่ต้องเพิ่มคอลัมน์ช่วย
  2. 2เรียงตามช่องทาง แล้วตามยอดสุทธิ · ลำดับแรก ช่องทาง A→Z · ลำดับที่สอง ยอดสุทธิจากมากไปน้อยในช่องทางเดียวกัน
  3. 3เรียงช่องทางตามลำดับที่กำหนดเอง · MATCH แปลงชื่อช่องทางเป็นลำดับตามรายการใน I4:I7 แล้วใช้เป็น by_array

ข้อผิดพลาดที่พบบ่อย

#VALUE!สาเหตุ: sort_order ไม่ใช่ 1 หรือ -1 หรือ by_array ขนาดไม่เท่ากับ arrayแก้: ตรวจ argument และให้ช่วงเริ่มและจบแถวเดียวกัน
#SPILL!สาเหตุ: มีข้อมูลขวางพื้นที่ผลลัพธ์แก้: ลบหรือย้ายข้อมูลที่ขวาง
#NAME?สาเหตุ: เปิดใน Excel 2016 หรือ 2019แก้: ใช้สูตรในชีต Excel 2016-2019
หัวตารางถูกเรียงปนไปด้วยสาเหตุ: เลือก array รวมแถวหัวตารางแก้: เลือกเฉพาะแถวข้อมูล

เคล็ดลับจากห้องเรียน

เรียงด้วยค่าที่คำนวณได้เลย เช่น % ของเป้า ไม่ต้องเพิ่มคอลัมน์ช่วย
ค่าที่ไม่อยู่ในรายการลำดับทำให้ MATCH ได้ #N/A ใช้ IFNA(MATCH(…),99) ส่งไปไว้ท้ายสุด
ต้องการเฉพาะ Top 3 ใน Excel 2024 หรือ Microsoft 365 ใช้ TAKE ครอบผลลัพธ์

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
SORTBY

ใช้ Excel 2016 หรือ 2019 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างที่ระบุ และมีในชีต “Excel 2016-2019” ของไฟล์ฝึก ต่างจาก SORTBY ตรงที่ผลลัพธ์ไม่ spill เอง ต้องลากสูตรลงให้พอกับจำนวนรายการ (ไม่ต้องกด Ctrl + Shift + Enter)

แทนตัวอย่างสูตรทางเลือก
คอลัมน์ช่วย % ของเป้า=D5/C5 แล้วลากลง
ตัวอย่าง 1 เรียงตาม % ของเป้า=INDEX($A$5:$A$12,MATCH(LARGE($F$5:$F$12,ROWS($A$5:A5)),$F$5:$F$12,0))

Office 2016 และ 2019 หมดระยะสนับสนุนตั้งแต่ 14 ต.ค. 2568 ไฟล์ยังเปิดได้ แต่ไม่มีอัปเดตความปลอดภัย

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
SORTเรียงตามคอลัมน์ใน array โดยระบุเลขลำดับ=SORT(A5:F14,6,-1)
SORTBYเรียงตามช่วงอื่นหรือค่าที่คำนวณ และหลายลำดับ=SORTBY(A5:F14,C5:C14,1,F5:F14,-1)
Data > Sortเรียงครั้งเดียว แก้ลำดับของข้อมูลต้นทางData > Sort
LARGE + INDEX/MATCHจัดอันดับได้ทุกเวอร์ชัน=LARGE($F$5:$F$14,ROWS($A$5:A5))

ใน Power BI ใช้อะไร

Power BI เรียงข้อมูลที่ visual ถ้าต้องการ n อันดับแรกใช้ TOPN

Power QueryTable.Sort

เรียงหลายคอลัมน์ด้วย list ของ {คอลัมน์, Order}

ไฟล์ฝึก SORTBY

9Expert-SORTBY-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 29 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 เรียงตามค่าคำนวณ2 เรียงสองลำดับ3 ลำดับที่กำหนดเองแบบฝึกหัดเฉลยสรุปย่อExcel 2016-2019

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

  1. ข้อ 1เรียงชื่อพนักงานตามคะแนนลูกค้าจากมากไปน้อย
  2. ข้อ 2เรียงชื่อพนักงานตาม % ของเป้าจากมากไปน้อย
  3. ข้อ 3เรียงชื่อพนักงานตามยอดขายจริงจากน้อยไปมาก
  4. ข้อ 4ภูมิภาคของพนักงาน เรียงตามยอดขายจริงจากน้อยไปมาก
  5. ข้อ 5ชื่อพนักงานที่ทำ % ของเป้าได้สูงสุด

วิดีโอประกอบ

คลิปเรื่อง SORTBY จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

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

1. SORTBY ต่างจาก SORT ตรงไหน

2. =SORTBY(A5:F14,C5:C14,1,F5:F14,-1) เรียงอย่างไร

3. by_array ต้องเป็นอย่างไร

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม