SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่ต้องการ (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ต่างจาก SORTBY ที่ใช้คอลัมน์ภายนอกเป็นเกณฑ์
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| array | Range/Array | ช่วงข้อมูลหรือ Array ที่ต้องการเรียงลำดับ | |
| [sort_index]ไม่บังคับ | Number/Array | 1 | เลขคอลัมน์ที่ใช้เรียง (1=คอลัมน์แรก) หรือ Array สำหรับ multi-level sort |
| [sort_order]ไม่บังคับ | Number/Array | 1 | 1 = น้อยไปมาก (A-Z), -1 = มากไปน้อย (Z-A) หรือ Array สำหรับ multi-level |
| [by_col]ไม่บังคับ | Boolean | FALSE | FALSE = เรียงตามแถว (แนวตั้ง ค่าเริ่มต้น), TRUE = เรียงตามคอลัมน์ (แนวนอน) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่กำหนด (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ใช้ร่วมกับ FILTER UNIQUE เพื่อสร้างรายงานไดนามิก
เรียงยอดขายจากมากไปน้อยเพื่อหาท็อปเซลล์
เรียงข้อมูลก่อนส่งให้ UNIQUE เพื่อให้ผลลัพธ์ดูเป็นระเบียบ
ใช้ SORT คร่อม FILTER เพื่อเรียงผลลัพธ์ที่กรองแล้ว
| A | B | C | D | |
|---|---|---|---|---|
| 1 | รหัสสินค้า | ชื่อสินค้า | สถานะ | ราคา |
| 2 | P001 | เมาส์ไร้สาย | ปิด | 590 |
| 3 | P002 | คีย์บอร์ด | เปิด | 1,290 |
| 4 | P003 | จอ 27 นิ้ว | ปิด | 8,900 |
| 5 | P004 | หูฟัง | เปิด | 2,450 |
| 6 | P005 | เว็บแคม | ปิด | 1,750 |
ทุกสูตรด้านล่างอ้างถึงตารางนี้ พิมพ์ตามได้เลย ผลลัพธ์จะตรงกับที่เขียนไว้
สูตรนี้เรียงคอลัมน์ชื่อสินค้า (B2:B6) จากน้อยไปมากตามค่าเริ่มต้น เพราะไม่ได้ระบุ sort_index และ sort_order เลยสักตัว
ผลลัพธ์กระจายลงมาเป็นรายชื่อสินค้าเรียงตามลำดับตัวอักษรไทย โดยที่ตารางต้นฉบับใน A1:D6 ไม่ถูกแก้ไขเลยแม้แต่นิดเดียว
ข้อดีของ SORT เมื่อเทียบกับปุ่ม Sort ในเมนูคือ ถ้าข้อมูลต้นทางเปลี่ยน ผลลัพธ์ตรงนี้จะเรียงใหม่ให้อัตโนมัติ
เรียงเฉพาะคอลัมน์ราคา (D2:D6) sort_index ใส่ 1 เพราะในช่วงที่เลือกมีคอลัมน์เดียว ส่วน sort_order ใส่ -1 เพื่อเรียงจากมากไปน้อย
ได้ราคาสูงสุด 8,900 ขึ้นมาอยู่บนสุด ไล่ลงมาจนถึง 590 ที่ต่ำสุดอยู่ล่างสุด
ถ้าเปลี่ยนเป็น 1 แทน -1 ก็จะได้เรียงจากน้อยไปมากแทนทันที
คราวนี้เอาทั้งตาราง A2:D6 มาเรียง ไม่ใช่แค่คอลัมน์เดียวแบบตัวอย่างก่อนหน้า sort_index=4 บอกว่าให้ใช้คอลัมน์ที่ 4 ของช่วงที่เลือก (ราคา) เป็นเกณฑ์ แต่คืนมาทั้งแถว
P003 ราคาแพงสุด 8,900 เลยขึ้นมาอยู่บนสุดพร้อมข้อมูลครบทั้งแถว ไล่ลงมาจนถึง P001 ที่ถูกสุด
ต่างจากตัวอย่างที่ 2 ตรงที่ตัวอย่างนี้ทุกคอลัมน์ของแถวเดิมยังติดกันไปด้วย ไม่ใช่แค่ตัวเลขราคาเปล่าๆ
ตัวอย่างนี้เรียง 2 ระดับพร้อมกัน sort_index ใส่เป็น array {3,4} หมายถึงเรียงตามคอลัมน์ 3 (สถานะ) ก่อน แล้วค่อยเรียงตามคอลัมน์ 4 (ราคา) ส่วน sort_order {1,-1} คือสถานะเรียงน้อยไปมาก ส่วนราคาเรียงมากไปน้อย
ภายในกลุ่มสถานะเดียวกัน สินค้าจะถูกจัดเรียงตามราคาจากแพงไปถูกอีกชั้นหนึ่ง เช่น กลุ่มปิดจะเรียง P003 P005 P001 ตามราคาที่ลดหลั่นกันลงมา
พอจำนวนเงื่อนไขเรียงมากขึ้น การใส่เป็น array คู่กันแบบนี้ทำให้เขียนสูตรเดียวจบ ไม่ต้องเรียงหลายรอบ
กรองเอาเฉพาะสถานะปิดออกมาก่อนด้วย FILTER แล้วครอบด้วย SORT เรียงตามคอลัมน์ 4 (ราคา) จากน้อยไปมาก (sort_order=1)
ได้ P001 ราคาถูกสุด 590 ขึ้นก่อน ตามด้วย P005 แล้วปิดท้ายด้วย P003 ราคาแพงสุด 8,900
สลับกับตัวอย่างในหน้า FILTER ที่เรียงจากมากไปน้อย ตรงนี้แค่เปลี่ยน sort_order เป็น 1 ผลลัพธ์ก็กลับทิศทันที
SORT เรียงทั้งตารางตามราคาจากมากไปน้อยก่อน ได้ P003 P004 P005 P002 P001 ตามลำดับ แล้ว INDEX ใช้ SEQUENCE(3) เลือกมาแค่ 3 แถวแรก และ {2,4} เลือกมาแค่คอลัมน์ชื่อสินค้ากับราคา
ผลลัพธ์เลยได้ตาราง Top 3 สินค้าราคาแพงสุด แต่เอามาแค่ 2 คอลัมน์ที่ต้องการ ไม่เอาทั้งรหัสสินค้าและสถานะมาด้วย
เทคนิคนี้สะดวกเวลาต้องการทำสรุป Top N แบบกำหนดเองว่าจะโชว์คอลัมน์ไหนบ้าง โดยไม่ต้องลากสูตรหรือซ่อนคอลัมน์เพิ่ม
SORT เป็นสูตรที่ return Spill Range ใหม่ ไม่แก้ไขข้อมูลต้นฉบับ และอัปเดตอัตโนมัติ ส่วนการ Sort ในเมนูจัดเรียงข้อมูลจริงในตาราง
SORT เรียงตามคอลัมน์ภายใน array (ระบุเป็นเลขคอลัมน์ 1,2,3) ส่วน SORTBY เรียงตาม Array ภายนอกได้ และทำ custom sort order ด้วย XMATCH
ได้ ใช้ Array สำหรับ sort_index และ sort_order เช่น =SORT(Data, {1,3}, {1,-1}) เรียงคอลัมน์ 1 ก่อน (A-Z) แล้วคอลัมน์ 3 (มากไปน้อย)
เกิดเมื่อเซลล์ด้านล่างไม่ว่าง ทำให้ผลลัพธ์ Spill ไม่ได้ ลบข้อมูลที่ขวางหรือย้ายสูตรไปที่ว่าง
Microsoft 365, Excel 2021, Excel 2024, และ Excel for Web เป็น Dynamic Array Function ไม่รองรับ Excel 2019 หรือเก่ากว่า
ฟังก์ชันที่ผู้เขียนโยงไว้กับ SORT จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CHOOSEROWS ใช้ดึงแถวที่ต้องการจากตารางหรือ Array โดยระบุเลขลำดับแถว สามารถดึงได้หลายแถวพร้อมกัน จัดลำดับใหม่ หรือทำซ้ำแถวเดิมได้ รองรับการนับแถวจากล่างขึ้นบนโดยใช้เลขลบ (เช่น -1 คือแถวสุดท้าย)
DROP จะตัดข้อมูลออกตามจำนวนที่ระบุ ถ้าใส่เลขบวกจะตัดจากจุดเริ่มต้น (บน/ซ้าย) ทิ้งไป ถ้าใส่เลขลบจะตัดจากจุดสิ้นสุด (ล่าง/ขวา) ทิ้งไป ส่วนที่เหลือจะถูกนำมาแสดงผล
FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ
HSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวนอน (ต่อท้ายไปทางขวา) หากช่วงข้อมูลที่นำมารวมมีจำนวนแถวไม่เท่ากัน HSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ
INDEX คืนค่าหรือ reference ของเซลล์จากตำแหน่งที่ระบุใน range หรือ array โดยอ้างอิงจากหมายเลขแถวและคอลัมน์ที่เราระบุ มักถูกใช้ร่วมกับ MATCH เพื่อสร้าง INDEX-MATCH pattern ที่ยืดหยุ่นกว่า VLOOKUP เยอะ เพราะสามารถดึงข้อมูลจากทิศทางไหนก็ได้ และไม่พังเมื่อมีการแทรกหรือลบคอลัมน์
SORTBY เรียงลำดับข้อมูลตาม Array อื่นที่กำหนด รองรับหลายระดับการเรียง (multi-level) และสามารถกำหนดลำดับเอง (custom sort order) ด้วย XMATCH ต่างจาก SORT ที่เรียงตามคอลัมน์ภายในตัวเอง SORTBY ใช้คอลัมน์ภายนอกเป็นเกณฑ์ได้
TAKE ช่วยตัดข้อมูลบางส่วนออกมาใช้งาน โดยระบุจำนวนที่ต้องการ ถ้าใส่เลขบวกจะดึงจากจุดเริ่มต้น (บน/ซ้าย) ถ้าใส่เลขลบจะดึงจากจุดสิ้นสุด (ล่าง/ขวา) คล้ายกับคำสั่ง LIMIT หรือ TOP/BOTTOM ใน Database
TOCOL ช่วย "ตบ" ข้อมูลจากตารางหลายมิติให้มาเรียงต่อกันเป็นคอลัมน์เดียว สามารถเลือกวิธีเรียงลำดับได้ว่าจะอ่านจากซ้ายไปขวา (ทีละแถว) หรือบนลงล่าง (ทีละคอลัมน์) และยังมี Option ให้กรองช่องว่างหรือ Error ทิ้งไปโดยอัตโนมัติ เหมาะสำหรับการเตรียมข้อมูล (Data Preparation)
ฟังก์ชันใหม่ใน Excel 365 ที่ตัดแถวและคอลัมน์ว่างออกจากขอบของช่วงข้อมูล ช่วยให้การอ้างอิงช่วงกว้าง ๆ หรือทั้งคอลัมน์ปลอดภัยและไม่ดึงข้อมูลว่างเข้ามาปนกับสูตร dynamic array
UNIQUE เป็น Dynamic Array Function ที่คืนค่าที่ไม่ซ้ำจาก Array โดยสามารถตรวจซ้ำตามแถวหรือคอลัมน์ (by_col) และเลือกคืนเฉพาะค่าที่พบครั้งเดียว (exactly_once) ผลลัพธ์เป็น Spill Range ที่อัปเดตอัตโนมัติ ใช้ร่วมกับ SORT FILTER COUNTIF เพื่อสร้างรายงานไดนามิกและ dropdown ที่อัปเดตเอง
FREQUENCY นับจำนวนค่าที่ตกอยู่ในแต่ละช่วงที่กำหนด และคืนค่าเป็น Array แนวตั้ง เหมาะสำหรับสร้าง Histogram และวิเคราะห์การกระจายข้อมูล
PIVOTBY เป็นฟังก์ชัน Excel 365 ที่สร้าง Pivot Table แบบไดนามิก โดยกำหนด Row Fields, Column Fields และ Values ผ่านสูตร พร้อมตั้งค่าการแสดงผลรวมและการเรียงลำดับได้ทันที
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่