ฟังก์ชัน Excel SORT - จัดเรียงข้อมูลอัตโนมัติโดยใช้สูตร

  • แบ่งปันสิ่งนี้
Michael Brown

สารบัญ

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

ฟังก์ชันการจัดเรียงมีมานานแล้ว แต่ด้วยการเปิดตัวอาร์เรย์แบบไดนามิกใน Excel 365 ทำให้มีวิธีง่ายๆ อย่างน่าอัศจรรย์ในการจัดเรียงด้วยสูตร ข้อดีของวิธีนี้คือผลลัพธ์จะอัปเดตโดยอัตโนมัติเมื่อข้อมูลต้นฉบับเปลี่ยนแปลง

    ฟังก์ชัน SORT ของ Excel

    ฟังก์ชัน SORT ใน Excel จะจัดเรียงเนื้อหาของอาร์เรย์หรือ เรียงตามคอลัมน์หรือแถว โดยเรียงจากน้อยไปมากหรือจากมากไปหาน้อย

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

    ไวยากรณ์ของฟังก์ชัน SORT เป็นดังนี้:

    SORT(อาร์เรย์, [sort_index ], [sort_order], [by_col])

    ที่ไหน:

    อาร์เรย์ (จำเป็น) - คืออาร์เรย์ของค่าหรือช่วงของเซลล์ที่จะจัดเรียง ค่าเหล่านี้สามารถเป็นค่าใดๆ ก็ได้ รวมทั้งข้อความ ตัวเลข วันที่ เวลา ฯลฯ

    Sort_index (ไม่บังคับ) - จำนวนเต็มที่ระบุคอลัมน์หรือแถวที่จะจัดเรียง หากละเว้น ระบบจะใช้ดัชนีเริ่มต้น 1

    Sort_order (ไม่บังคับ) - กำหนดลำดับการจัดเรียง:

    • 1 หรือละเว้น (ค่าเริ่มต้น) - เรียงลำดับจากน้อยไปหามาก เช่น จากสูตร (ไฟล์ .xlsx) จากน้อยไปมาก
    • -1 - ลำดับจากมากไปน้อย เช่น จากมากไปน้อย

    By_col (ไม่บังคับ) - ค่าตรรกะที่ระบุทิศทางของการเรียงลำดับ:

    • FALSE หรือละเว้น (ค่าเริ่มต้น) - จัดเรียงตามแถว คุณจะใช้ตัวเลือกนี้เกือบตลอดเวลา
    • TRUE - จัดเรียงตามคอลัมน์ ใช้ตัวเลือกนี้หากข้อมูลของคุณถูกจัดเรียงตามแนวนอนในคอลัมน์เช่นในตัวอย่างนี้

    ฟังก์ชัน Excel SORT - เคล็ดลับและหมายเหตุ

    SORT เป็นฟังก์ชันอาร์เรย์แบบไดนามิกใหม่ ด้วยเหตุนี้จึงมี ลักษณะเฉพาะบางประการที่คุณควรทราบ:

    • ปัจจุบันฟังก์ชัน SORT พร้อมใช้งานใน Microsoft 365 และ Excel 2021 เท่านั้น Excel 2019, Excel 2016 ไม่สนับสนุนสูตรอาร์เรย์แบบไดนามิก ดังนั้นฟังก์ชัน SORT ไม่พร้อมใช้งานในเวอร์ชันเหล่านี้
    • หากอาร์เรย์ที่ส่งคืนโดยสูตร SORT เป็นผลลัพธ์สุดท้าย (เช่น ไม่ส่งผ่านไปยังฟังก์ชันอื่น) Excel จะสร้างช่วงที่มีขนาดเหมาะสมแบบไดนามิกและเติมข้อมูลด้วยค่าที่เรียงลำดับ ดังนั้น ตรวจสอบให้แน่ใจว่าคุณมีเซลล์ว่างเพียงพอเสมอด้านล่างหรือ/และทางด้านขวาของเซลล์ที่คุณป้อนสูตร มิฉะนั้นข้อผิดพลาด #SPILL จะเกิดขึ้น
    • ผลลัพธ์จะอัปเดตแบบไดนามิกเมื่อข้อมูลต้นฉบับเปลี่ยนแปลง อย่างไรก็ตาม อาร์เรย์ ที่ระบุในสูตรไม่ได้ขยายโดยอัตโนมัติเพื่อรวมรายการใหม่ที่เพิ่มภายนอก อาร์เรย์ ที่อ้างอิง หากต้องการรวมรายการดังกล่าว คุณต้องอัปเดตการอ้างอิง อาร์เรย์ ในสูตรของคุณ หรือแปลงช่วงต้นทางเป็นตารางตามที่แสดงในตัวอย่างนี้ หรือสร้างช่วงที่มีชื่อแบบไดนามิก

    สูตร SORT พื้นฐานของ Excel

    ตัวอย่างนี้แสดงสูตรพื้นฐานสำหรับการจัดเรียงข้อมูลใน Excel ตามลำดับจากน้อยไปหามาก

    สมมติว่าข้อมูลของคุณจัดเรียงตามตัวอักษรดังที่แสดงในภาพหน้าจอด้านล่าง คุณกำลังต้องการจัดเรียงตัวเลขในคอลัมน์ B โดยไม่แบ่งหรือผสมข้อมูล

    สูตรในการเรียงลำดับจากน้อยไปหามาก

    ในการจัดเรียงค่าในคอลัมน์ B จากน้อยไปมาก นี่คือสูตรที่จะใช้:

    =SORT(A2:B8, 2, 1)

    โดยที่:

    • A2:B8 คืออาร์เรย์ต้นทาง
    • 2 คือหมายเลขคอลัมน์ที่จะจัดเรียงตาม
    • 1 คือลำดับการเรียงจากน้อยไปมาก

    เนื่องจากข้อมูลของเราถูกจัดเรียงเป็นแถว ดังนั้นอาร์กิวเมนต์สุดท้ายจึงถูกละเว้นโดยค่าเริ่มต้นเป็น FALSE - จัดเรียงตามแถว

    เพียงป้อนสูตรใน เซลล์ว่างใดๆ (ในกรณีของเราคือ D2) ให้กด Enter และผลลัพธ์จะกระจายไปที่ D2:E8 โดยอัตโนมัติ

    สูตรเพื่อเรียงลำดับจากมากไปน้อย

    หากต้องการเรียงลำดับข้อมูลจากมากไปหาน้อย เช่น จากมากไปน้อย ให้ตั้งค่าอาร์กิวเมนต์ sort_order เป็น -1 ดังนี้:

    =SORT(A2:B8, 2, -1)

    ป้อนสูตรที่เซลล์บนซ้ายของ ช่วงปลายทาง และคุณจะได้ผลลัพธ์นี้:

    ในลักษณะเดียวกัน คุณสามารถจัดเรียงค่าข้อความตามลำดับตัวอักษรจาก A ถึง Z หรือจาก Z ถึง A

    วิธีจัดเรียงข้อมูลใน Excel โดยใช้ f ormula

    ตัวอย่างด้านล่างแสดงการใช้งานทั่วไปของฟังก์ชัน SORT ใน Excelและข้อมูลที่ไม่สำคัญอีกสองสามรายการ

    จัดเรียง Excel ตามคอลัมน์

    เมื่อคุณจัดเรียงข้อมูลใน Excel ส่วนใหญ่คุณจะเปลี่ยนลำดับของแถว แต่เมื่อข้อมูลของคุณถูกจัดเรียงตามแนวนอนด้วยแถวที่มีป้ายกำกับและคอลัมน์ที่มีระเบียน คุณอาจต้องเรียงลำดับจากซ้ายไปขวา แทนที่จะเรียงจากบนลงล่าง

    หากต้องการจัดเรียงตามคอลัมน์ใน Excel ให้ตั้งค่า by_col อาร์กิวเมนต์เป็น TRUE ในกรณีนี้ sort_index จะแสดงแถว ไม่ใช่คอลัมน์

    ตัวอย่างเช่น หากต้องการจัดเรียงข้อมูลด้านล่างตามจำนวน จากสูงสุดไปต่ำสุด ใช้สูตรนี้:

    =SORT(B1:H2, 2, 1, TRUE)

    โดยที่:

    • B1:H2 คือแหล่งข้อมูลในการจัดเรียง
    • 2 คือ ดัชนีการเรียงลำดับ เนื่องจากเรากำลังเรียงลำดับตัวเลขในแถวที่สอง
    • -1 ระบุลำดับการเรียงจากมากไปหาน้อย
    • TRUE หมายถึงการเรียงลำดับคอลัมน์ ไม่ใช่แถว

    จัดเรียงตามหลายคอลัมน์ในลำดับที่แตกต่างกัน (การจัดเรียงหลายระดับ)

    เมื่อทำงานกับโมเดลข้อมูลที่ซับซ้อน คุณอาจต้องการการจัดเรียงหลายระดับ สามารถทำได้ด้วยสูตรหรือไม่? ใช่ได้อย่างง่ายดาย! สิ่งที่คุณทำคือจัดหาค่าคงที่อาร์เรย์สำหรับอาร์กิวเมนต์ sort_index และ sort_order

    ตัวอย่างเช่น เพื่อจัดเรียงข้อมูลด้านล่างก่อนตาม ภูมิภาค (คอลัมน์ A) จาก A ถึง Z แล้วตามด้วย จำนวน (คอลัมน์ C) จากน้อยไปหามาก ตั้งค่าอาร์กิวเมนต์ต่อไปนี้:

    • อาร์เรย์ คือข้อมูลใน A2:C13
    • Sort_index คือค่าคงที่ของอาร์เรย์ {1,3} เนื่องจากเราจัดเรียงตาม ภูมิภาค (ที่ 1คอลัมน์) แล้วตามด้วย จำนวน (คอลัมน์ที่ 3).
    • Sort_order คือค่าคงที่ของอาร์เรย์ {1,-1} เนื่องจากคอลัมน์ที่ 1 จะต้องเรียงลำดับจากน้อยไปหามาก และคอลัมน์ที่ 3 จะเรียงลำดับจากมากไปน้อย<9 ละเว้น
    • By_col เนื่องจากเราจัดเรียงแถว ซึ่งเป็นค่าเริ่มต้น

    เมื่อนำอาร์กิวเมนต์มารวมกัน เราจะได้สูตรนี้:

    =SORT(A2:C13, {1,3}, {1,-1})

    และใช้งานได้อย่างสมบูรณ์แบบ! ค่าข้อความในคอลัมน์แรกจะเรียงตามตัวอักษรและตัวเลขในคอลัมน์ที่สามจากมากไปน้อย:

    จัดเรียงและกรองใน Excel

    ในกรณี เมื่อคุณกำลังมองหาการกรองข้อมูลด้วยเกณฑ์บางอย่างและจัดลำดับเอาต์พุต ให้ใช้ฟังก์ชัน SORT และ FILTER ร่วมกัน:

    SORT(FILTER(array, criteria_range= criteria) , [sort_index], [sort_order], [by_col])

    ฟังก์ชัน FILTER รับอาร์เรย์ของค่าตามเกณฑ์ที่คุณกำหนดและส่งอาร์เรย์นั้นไปยังอาร์กิวเมนต์แรกของ SORT

    สิ่งที่ดีที่สุด เกี่ยวกับสูตรนี้คือมันยังแสดงผลลัพธ์เป็นช่วงการรั่วไหลแบบไดนามิกโดยที่คุณไม่ต้องกด Ctrl + Shift + Enter หรือคาดเดาจำนวนเซลล์ที่จะคัดลอก ตามปกติ คุณจะพิมพ์สูตรในเซลล์บนสุดแล้วกดปุ่ม Enter

    ตามตัวอย่าง เราจะแยกรายการที่มีปริมาณเท่ากับหรือมากกว่า 30 (>=30) จาก แหล่งข้อมูลใน A2:B9 และจัดเรียงผลลัพธ์จากน้อยไปหามาก

    สำหรับสิ่งนี้ ขั้นแรกเราได้ตั้งค่าเงื่อนไข เช่น ในเซลล์ E2 ตามที่แสดงในภาพด้านล่าง จากนั้น สร้างสูตร SORT ของ Excel ด้วยวิธีนี้:

    =SORT(FILTER(A2:B9, B2:B9>=E2), 2)

    นอกเหนือจาก อาร์เรย์ ที่สร้างโดยฟังก์ชัน FILTER เราระบุเฉพาะ sort_index อาร์กิวเมนต์ (คอลัมน์ 2) อาร์กิวเมนต์ที่เหลืออีกสองรายการถูกละไว้เนื่องจากค่าเริ่มต้นทำงานตรงตามที่เราต้องการ (เรียงลำดับจากน้อยไปหามาก ตามแถว)

    รับค่าที่มากที่สุดหรือน้อยที่สุด N และเรียงลำดับผลลัพธ์

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

    นี่คือสูตรทั่วไป:

    INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})

    โดยที่ n คือจำนวนของค่าที่คุณต้องการส่งคืน

    จากชุดข้อมูลด้านล่าง สมมติว่าคุณต้องการรับ รายการ 3 อันดับแรกโดยอิงจากตัวเลขในคอลัมน์ C

    ในการทำให้เสร็จ คุณต้องจัดเรียงอาร์เรย์ A2:C13 ตามคอลัมน์ที่ 3 โดยเรียงลำดับจากมากไปหาน้อยก่อน:

    SORT(A2:C13, 3, -1)

    จากนั้น ซ้อนสูตรข้างต้นในอาร์กิวเมนต์แรก ( อาร์เรย์ ) ของฟังก์ชัน INDEX เพื่อให้อาร์เรย์เรียงลำดับจากมากไปน้อย

    สำหรับวินาที ( row_num ) อาร์กิวเมนต์ซึ่งระบุจำนวนแถวที่จะส่งคืน สร้างหมายเลขลำดับที่ต้องการโดยใช้ฟังก์ชัน SEQUENCE เนื่องจากเราต้องการค่าสูงสุด 3 ค่า เราใช้ SEQUENCE(3) ซึ่งเหมือนกับการให้ค่าคงที่อาร์เรย์แนวตั้ง {1;2;3} โดยตรงในสูตร

    สำหรับค่าที่สาม ( col_num ) อาร์กิวเมนต์ ซึ่งกำหนดจำนวนคอลัมน์ที่จะส่งคืน ระบุหมายเลขคอลัมน์ในรูปแบบของค่าคงที่อาร์เรย์แนวนอน เราต้องการคืนค่าคอลัมน์ B และ C เราจึงใช้อาร์เรย์ {2,3}.

    ในที่สุด เราได้สูตรต่อไปนี้:

    =INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

    และมันสร้าง ผลลัพธ์ที่เราต้องการ:

    หากต้องการคืนค่า 3 ด้านล่าง ให้จัดเรียงข้อมูลต้นฉบับจากน้อยไปมาก สำหรับสิ่งนี้ ให้เปลี่ยนอาร์กิวเมนต์ sort_order จาก -1 เป็น 1:

    =INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

    ส่งคืนค่าที่เรียงลำดับในตำแหน่งที่ระบุ

    มองจากอีกมุมหนึ่ง จะทำอย่างไรถ้าคุณต้องการส่งคืนตำแหน่งการจัดเรียงเฉพาะ พูดว่า เฉพาะที่ 1 เฉพาะที่ 2 หรือเฉพาะระเบียนที่ 3 จากรายการที่เรียงลำดับ หากต้องการดำเนินการ ให้ใช้สูตร INDEX SORT แบบง่ายที่กล่าวถึงข้างต้น:

    INDEX(SORT(…), n, { column1_to_return, column2_to_return, …})

    โดยที่ n คือตำแหน่งที่สนใจ

    ตัวอย่างเช่น หากต้องการรับตำแหน่งใดตำแหน่งหนึ่งจากบนสุด (เช่น จากข้อมูลที่เรียงจากมากไปน้อย) ให้ใช้สูตรนี้ :

    =INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

    หากต้องการรับตำแหน่งเฉพาะจากด้านล่าง (เช่น จากข้อมูลที่เรียงลำดับจากน้อยไปมาก) ให้ใช้ตำแหน่งนี้:

    =INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

    ที่ A2: C13 คือแหล่งข้อมูล F1 คือตำแหน่งจากด้านบน I1 คือตำแหน่งจากด้านล่าง และ {2,3} คือคอลัมน์ที่จะส่งคืน

    ใช้ตาราง Excel เพื่อรับอาร์เรย์การจัดเรียงเพื่อขยายโดยอัตโนมัติ

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

    หากต้องการดูวิธีการทำงานจริง โปรดพิจารณาสิ่งต่อไปนี้ ตัวอย่าง

    สมมติว่าคุณใช้สูตร SORT ของ Excel ด้านล่างเพื่อจัดเรียงค่าในช่วง A2:B8 ตามลำดับตัวอักษร:

    =SORT(A2:B8, 1, 1)

    จากนั้น ให้คุณป้อนรายการใหม่ใน แถว 9… และรู้สึกผิดหวังที่เห็นว่ารายการที่เพิ่มใหม่ไม่อยู่ในขอบเขตของช่วงการรั่วไหล:

    ตอนนี้ แปลงช่วงแหล่งที่มาเป็นตาราง สำหรับสิ่งนี้ เพียงเลือกช่วงของคุณรวมถึงส่วนหัวของคอลัมน์ (A1:B8) แล้วกด Ctrl + T เมื่อสร้างสูตรของคุณ ให้เลือกช่วงที่มาโดยใช้เมาส์ และชื่อตารางจะถูกแทรกในสูตรโดยอัตโนมัติ (ซึ่งเรียกว่าการอ้างอิงที่มีโครงสร้าง):

    =SORT(Table1, 1, 1)

    เมื่อคุณพิมพ์ รายการใหม่ที่อยู่ใต้แถวสุดท้าย ตารางจะขยายโดยอัตโนมัติ และข้อมูลใหม่จะรวมอยู่ในช่วงการรั่วไหลของสูตร SORT:

    ฟังก์ชัน SORT ของ Excel ไม่ทำงาน

    หากสูตร SORT ของคุณทำให้เกิดข้อผิดพลาด เป็นไปได้มากว่าเกิดจากสาเหตุต่อไปนี้

    ข้อผิดพลาด #NAME: Excel เวอร์ชันเก่า

    SORT เป็นฟังก์ชันใหม่และใช้งานได้เฉพาะใน Excel 365 และ Excel 2021 ในเวอร์ชันเก่าที่ไม่รองรับฟังก์ชันนี้ #NAME? เกิดข้อผิดพลาดขึ้น

    ข้อผิดพลาด #SPILL: มีบางอย่างบล็อกช่วงการรั่วไหล

    หากเซลล์อย่างน้อยหนึ่งเซลล์ในช่วงการรั่วไหลไม่ว่างเปล่าหรือถูกผสานทั้งหมด แสดงว่า #SPILL! ข้อผิดพลาดจะปรากฏขึ้น หากต้องการแก้ไข เพียงเอาสิ่งอุดตันออก สำหรับข้อมูลเพิ่มเติม โปรดดูที่ Excel #SPILL! ข้อผิดพลาด - ความหมายและวิธีแก้ไข

    ข้อผิดพลาด #VALUE: อาร์กิวเมนต์ที่ไม่ถูกต้อง

    เมื่อใดก็ตามที่คุณพบข้อผิดพลาด #VALUE! ข้อผิดพลาด ตรวจสอบอาร์กิวเมนต์ sort_index และ sort_order sort_index ไม่ควรเกินจำนวนคอลัมน์ที่เป็น อาร์เรย์ และ sort_order ควรเป็น 1 (จากน้อยไปมาก) หรือ -1 (จากมากไปหาน้อย)

    ข้อผิดพลาด #REF: สมุดงานต้นทางถูกปิด

    เนื่องจากอาร์เรย์แบบไดนามิกมีการรองรับการอ้างอิงระหว่างสมุดงานอย่างจำกัด ฟังก์ชัน SORT ต้องเปิดทั้งสองไฟล์ ถ้าสมุดงานต้นทางถูกปิด สูตรจะส่ง #REF! ข้อผิดพลาด. หากต้องการแก้ไข เพียงเปิดไฟล์อ้างอิง

    นั่นคือวิธีการจัดเรียงข้อมูลใน Excel โดยใช้สูตร ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    แบบฝึกหัดสำหรับการดาวน์โหลด

    การเรียงลำดับใน Excel ด้วย

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้