หน้าแรก บทความ Microsoft
Microsoft

สูตร SORT และ SORTBY ใน Excel เรียงข้อมูลอัตโนมัติไม่ต้องกดปุ่ม

เผยแพร่ 13 ส.ค. 69

เคยต้องเรียงลำดับข้อมูลในตาราง Excel แล้วรู้สึกว่าลำบากทุกครั้งที่ข้อมูลเปลี่ยนไหมครับ ต้องกดปุ่ม Sort ใหม่ทุกครั้งที่มีแถวเพิ่ม แถมบางทีก็เผลอเรียงข้อมูลต้นฉบับจนสลับตำแหน่งกันไปหมด บทความนี้จะพาไปรู้จักสูตร SORT และ SORTBY ฟังก์ชันใหม่ใน Excel 365 ที่เรียงข้อมูลให้อัตโนมัติด้วยสูตรเดียว ไม่ต้องกดปุ่มซ้ำ และไม่แตะข้อมูลต้นฉบับเลย

SORT และ SORTBY คืออะไร ต่างจากปุ่ม Sort ปกติยังไง

ปุ่ม Sort ที่อยู่บนแท็บ Data เป็นการเรียงข้อมูลแบบ “ถาวร” คือพอกดแล้วแถวในตารางจะสลับตำแหน่งจริงๆ ถ้าข้อมูลมีการเพิ่มหรือแก้ไขทีหลัง ต้องกด Sort ใหม่ทุกครั้ง

SORT และ SORTBY เป็นกลุ่ม dynamic array function ที่เพิ่มเข้ามาใน Excel 365 เหมือนกับ UNIQUE คือพิมพ์สูตรแค่เซลล์เดียว แล้วผลลัพธ์จะ “ล้น” (spill) ลงไปในเซลล์ด้านล่างให้เองอัตโนมัติ ข้อมูลต้นฉบับจะไม่ถูกแตะต้องเลย ถ้าข้อมูลต้นฉบับเปลี่ยน ผลลัพธ์ที่เรียงไว้ก็จะอัปเดตตามให้ทันที

ความต่างระหว่างสองสูตรนี้คือ

สูตร ใช้เมื่อไหร่
SORT เรียงตามคอลัมน์ที่อยู่ในช่วงข้อมูลเดียวกันที่เลือกไว้
SORTBY เรียงตามคอลัมน์ไหนก็ได้ แม้จะไม่ได้อยู่ในช่วงข้อมูลที่แสดงผล ยืดหยุ่นกว่า

Syntax ของสูตร SORT

=SORT(array, [sort_index], [sort_order], [by_col])

ตัวอย่างใช้งานจริง: เรียงอายุสมาชิกในครอบครัวจากมากไปน้อย

สมมติมีตารางรายชื่อสมาชิกในครอบครัวพร้อมอายุ อยากเรียงจากอายุมากไปน้อยโดยไม่อยากยุ่งกับตารางต้นฉบับ ใช้ SORT พิมพ์สูตรแค่เซลล์เดียวที่ E2 แล้วผลลัพธ์จะล้นลงมาเองครบทุกแถว

E2fx=SORT(A2:B5,2,-1)
A B C D E F
1 ชื่อ อายุ ชื่อ อายุ
2 น้องพลอย 12 คุณพ่อ 45
3 คุณแม่ 40 คุณแม่ 40
4 คุณพ่อ 45 น้องพลอย 12
5 น้องปัน 8 น้องปัน 8

สูตร =SORT(A2:B5,2,-1) หมายถึงเรียงช่วง A2:B5 โดยใช้คอลัมน์ที่ 2 (อายุ) เรียงแบบมากไปน้อย (-1) จะเห็นว่าเซลล์ E2:F5 ล้นเป็นสี่เหลี่ยมสีเขียวทั้งบล็อก แสดงว่าเป็นผลลัพธ์จากสูตรเดียวกันทั้งหมด ถ้าแก้อายุในตาราง A:B เมื่อไหร่ ผลลัพธ์ฝั่งนี้จะเรียงใหม่ให้เองทันที

Syntax ของสูตร SORTBY

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

จุดเด่นของ SORTBY คือ “เกณฑ์ที่ใช้เรียง” กับ “คอลัมน์ที่แสดงผล” แยกจากกันได้อิสระ ต่างจาก SORT ที่คอลัมน์เรียงต้องอยู่ใน array เดียวกับที่จะแสดงผล

ตัวอย่างใช้งานจริง: เรียงรายการค่าใช้จ่ายตามยอดเงินด้วย SORTBY

สมมติมีตารางบันทึกค่าใช้จ่ายในบ้าน อยากให้แสดงเฉพาะคอลัมน์ “รายการ” แต่เรียงลำดับตามคอลัมน์ “ยอดเงิน” จากมากไปน้อย กรณีนี้ SORT ทำไม่ได้ตรงๆ เพราะคอลัมน์ที่อยากแสดงกับคอลัมน์ที่ใช้เรียงคนละคอลัมน์กัน ต้องใช้ SORTBY แทน

D2fx=SORTBY(A2:A5,B2:B5,-1)
A B C D
1 รายการ ยอดเงิน รายการ (เรียงตามยอดเงิน)
2 ค่าไฟ 1,800 ค่าอินเทอร์เน็ต
3 ค่าอินเทอร์เน็ต 2,500 ค่าไฟ
4 ค่าน้ำ 400 ค่าน้ำ

สูตร =SORTBY(A2:A5,B2:B5,-1) จะดึงคอลัมน์ A (รายการ) มาแสดง แต่เรียงลำดับตามค่าที่อยู่ในคอลัมน์ B (ยอดเงิน) จากมากไปน้อย จะเห็นว่าคอลัมน์ D แสดงเฉพาะชื่อรายการ โดยเรียงตามยอดเงินที่มากที่สุดขึ้นก่อน ทั้งที่ตัวเลขยอดเงินไม่ได้โชว์อยู่ในผลลัพธ์เลยด้วยซ้ำ นี่คือจุดที่ SORTBY ยืดหยุ่นกว่า SORT ชัดเจน

ข้อควรระวังเวลาใช้ SORT และ SORTBY

สรุป

SORT และ SORTBY ช่วยให้เรียงข้อมูลได้แบบไดนามิก ไม่ต้องกดปุ่ม Sort ซ้ำทุกครั้งที่ข้อมูลเปลี่ยน และไม่เสี่ยงทำตารางต้นฉบับสลับตำแหน่งโดยไม่ตั้งใจ ถ้าต้องการเรียงตามคอลัมน์ที่อยู่ในช่วงเดียวกันให้ใช้ SORT แต่ถ้าต้องการความยืดหยุ่นเรียงตามคอลัมน์อื่นที่ไม่ได้แสดงผลด้วยให้ใช้ SORTBY แทน ใครที่อยากทำตารางข้อมูลให้เป็นระบบมากขึ้น อ่านต่อได้ที่ สูตร UNIQUE ดึงรายการไม่ซ้ำ, สูตร LARGE และ SMALL หาค่าสูงสุด-ต่ำสุด และ 10 สูตร Excel พื้นฐานที่ต้องรู้

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line