การมีข้อมูลที่เกี่ยวข้องกับวันที่และต้องการจัดเรียงแถวใน Excel ตามวันที่เป็นเรื่องปกติ ฟีเจอร์ต่างๆ ของ Excel เช่น Sort & Filter, Filter, Custom Sort, Context Menu Options และฟังก์ชันหลายตัว เช่น MONTH, YEAR, SORT, SORTBY รวมถึง VBA Macro สามารถจัดเรียงแถวตามวันที่ได้อย่างมีประสิทธิภาพ
สมมติว่าเรามีชุดข้อมูลที่บันทึก ต้นทุนรวม ที่เกิดขึ้นในวันที่เฉพาะ ตอนนี้เราต้องการจัดเรียงชุดข้อมูลทั้งหมดตามวันที่

ในบทความนี้ เราจะสาธิตฟีเจอร์ ฟังก์ชัน และ VBA Macro หลายวิธีในการจัดเรียงแถวตามวันที่
ดาวน์โหลดไฟล์ Excel สำหรับฝึกฝน
8 วิธีง่ายๆ ในการจัดเรียงแถวตามวันที่ใน Excel
การจัดเรียงเป็นเครื่องมือสำคัญในการทำความเข้าใจชุดข้อมูล การจัดเรียงตามวันที่ช่วยให้ผู้ใช้จัดการข้อมูลได้ง่ายขึ้น มีหลายวิธีในการจัดเรียงข้อมูลตามวันที่ سواءในตำแหน่งเดิมหรือตำแหน่งใหม่ในแผ่นข้อมูล ตามวิธีที่อธิบายไว้ด้านล่างเพื่อจัดเรียงข้อมูลตามวันที่ได้อย่างมีประสิทธิภาพ
วิธีที่ 1: ใช้ฟีเจอร์ Sort & Filter
Excel มีฟีเจอร์ Sort & Filter ทั้งในแท็บ Home และ Data ใช้ตัวไหนก็ได้เพื่อจัดเรียงแถวตามวันที่
🔺 หากต้องการใช้ Sort & Filter ให้ไปที่ Home > เลือก Sort & Filter (จากส่วน Editing) > เลือก Sort Oldest to Newest (A⟶Z) สามารถใช้ตัวเลือกการจัดเรียงใดๆ ก็ได้ (เช่น Sort Oldest to Newest (A⟶Z) หรือ Sort Newest to Oldest (Z⟶A))

🔼 หรือสามารถไปที่ Data > คลิกที่ (A⟶Z) หรือ (Z⟶A) จากส่วน Sort & Filter

🔺 ในทั้งสองกรณี Excel จะแสดง Sort Warning ว่าต้องการขยายการจัดเรียงหรือไม่ การจัดเรียง Continue with current selection จะทำให้วัตถุประสงค์ของการจัดเรียงไม่สำเร็จ ดังนั้นให้เลือก Expand the selection และคลิก Sort

🔼 ท้ายที่สุดทั้งสองวิธีจะได้ผลลัพธ์คล้ายกัน ตามภาพด้านล่าง จากภาพ можноเห็นว่าชุดข้อมูลทั้งหมดถูกจัดเรียงตามวันที่ (Oldest ถึง Newest)

แป้นลัด ALT+A+S+A ใช้สำหรับจัดเรียง Oldest to Newest และ ALT+A+S+D สำหรับ Newest to Oldest
อ่านเพิ่มเติม: [แก้ไข:] Sort and Filter Not Working in Excel
วิธีที่ 2: ใช้ Context Menu Options จัดเรียงแถวตามวันที่
🔺 เลือกคอลัมน์ Date ในชุดข้อมูล และคลิกขวา จะปรากฏ Context Menu จากเมนูนี้ ให้เลือก Sort > เลือก Sort Oldest to Newest หรือ Sort Newest to Oldest

🔺 หน้าต่าง Sort Warning จะปรากฏขึ้น ให้เลือก Expand the selection แล้วคลิก Sort หากเลือก Continue with current selection จะจัดเรียงเฉพาะคอลัมน์ Date ทำให้ข้อมูลเพี้ยนไป

🔼 หลังจากนั้น Excel จะจัดเรียงข้อมูลตามที่เลือก (Oldest to Newest หรือ Newest to Oldest) ตามภาพด้านล่าง

อ่านเพิ่มเติม: How to Sort Data by Row Not Column in Excel (2 Easy Methods)
วิธีที่ 3: ใช้ฟีเจอร์ Filter จัดเรียงแถว
คล้ายกับฟีเจอร์ Sort & Filter, Filter ก็สามารถจัดเรียงข้อมูลตามวันที่ได้ เริ่มต้นวิธีนี้เลย
🔺 ก่อนอื่น ไปที่ Home > เลือก Sort & Filter (จากส่วน Editing) > เลือก Filter เพื่อใช้กับชุดข้อมูล

🔺 หลังจากนั้น คลิกที่ไอคอน Filter ติดหัวคอลัมน์ Date จะปรากฏกล่องคำสั่ง Filter ให้เลือกตัวเลือกใดตัวเลือกหนึ่ง (เช่น Sort Oldest to Newest หรือ Sort Newest to Oldest) เพื่อจัดเรียงแถวตามวันที่

🔼 ตอนนี้สามารถตรวจสอบได้ว่าชุดข้อมูลถูกจัดเรียงตามที่ต้องการหรือไม่

อ่านเพิ่มเติม: Difference Between Sort and Filter in Excel
วิธีที่ 4: จัดเรียงแถวตามวันที่ด้วย Custom Sort
ตัวเลือก Custom Sort ให้จัดเรียงโดยใช้หัวคอลัมน์ใดก็ได้ ขึ้นอยู่กับ Value, Color, Font Color, และ Conditional Formatting Icon ของเซลล์ สำหรับการจัดเรียงวันที่ มีตัวเลือก Oldest to Newest, Newest to Oldest, และ Custom List
🔺 ไปที่แท็บ Home > คลิก Sort & Filter (จากส่วน Editing) > เลือก Custom Sort

🔺 กล่องโต้ตอบ Sort จะเปิดขึ้น
⧫ เลือก Order Date เป็น Sort by
⧫ Cell Values เป็น Sort On
⧫ Oldest to Newest หรือ Newest to Oldest เป็น Order
สุดท้าย คลิก OK

🔼 ในไม่กี่วินาที ชุดข้อมูลทั้งหมดจะถูกจัดเรียงตามที่เลือก ตามภาพด้านล่าง

อ่านเพิ่มเติม: How to Create Custom Sort List in Excel
บทความที่เกี่ยวข้อง
- Auto Sort When Data Is Entered in Excel (3 Methods)
- How to Sort by Last Name in Excel (4 Methods)
- Sorting Columns in Excel While Keeping Rows Together
- Sort Column by Value in Excel (5 Methods)
- Random Sort in Excel (Formulas + VBA)
วิธีที่ 5: จัดเรียงตามวันที่โดยใช้ผลลัพธ์จากฟังก์ชัน
สามารถใช้คอลัมน์ช่วย (helper column) เพื่อดึงหมายเลข เดือนและปี จากวันที่โดยใช้ฟังก์ชัน MONTH และ DAY แล้วจัดเรียงชุดข้อมูลทั้งหมดโดยใช้ผลลัพธ์ของฟังก์ชันเหล่านี้ เราแก้ไขชุดข้อมูลเพื่อใช้ฟังก์ชัน MONTH เป็นวิธีจัดเรียงตามวันที่ ฟังก์ชัน YEAR ก็สามารถใช้ได้เช่นกัน ขึ้นอยู่กับประเภทข้อมูล
🔺 พิมพ์สูตรต่อไปนี้ในเซลล์ว่างใดๆ (เช่น E5)
=MONTH(B5)สูตรนี้จะดึงหมายเลขเดือนจากรายการวันที่

🔺 ใช้ Fill Handle คัดลอกสูตรไปยังเซลล์อื่นๆ

🔺 ใช้ Filter กับชุดข้อมูลตาม วิธีที่ 3 แล้วคลิกไอคอน Filter เพื่อจัดเรียงชุดข้อมูลทั้งหมดตามตัวเลือกที่ต้องการ (เช่น Sort Smallest to Largest หรือ Sort Largest to Smallest)

🔼 จะเห็นว่า Excel จัดเรียงชุดข้อมูลทั้งหมดตามที่เลือก ตามภาพด้านล่าง

อ่านเพิ่มเติม: Excel Sort By Date And Time [4 Smart Ways]
วิธีที่ 6: ใช้ฟังก์ชัน SORT Family จัดเรียงแถวตามวันที่
Excel 365 มีฟังก์ชันสองตัวที่คล้ายกันสำหรับการจัดเรียง คือ SORT และ SORTBY ซึ่งจัดเรียงชุดข้อมูลโดยใช้คอลัมน์เฉพาะ ไวยากรณ์ของฟังก์ชัน SORT คือ
SORT (array, [sort_index], [sort_order], [by_col])อาร์กิวเมนต์ของฟังก์ชัน:
array; ช่วงหรืออาร์เรย์ที่ต้องการจัดเรียง
sort_index; หมายเลขคอลัมน์ที่ใช้จัดเรียง ค่าเริ่มต้นคือ 1 [Optional]
sort_order; ประเภทการจัดเรียง: Ascending = 1, Descending = -1 ค่าเริ่มต้นคือ Ascending [Optional]
by_col; ตัวเลือก เช่น Sort by Column = TRUE, Sort by Row = FALSE ค่าเริ่มต้นคือ Sort by Row (เช่น FALSE) [Optional]
🔺 ใช้สูตรต่อไปนี้ในเซลล์ใดๆ (เช่น H5)
=SORT(B5:F16,1,1,FALSE)ในสูตรนี้:
array = B5:F16
sort_index = 1
sort_order = 1 (Ascending)
by_col = FALSE

🔺 กด ENTER เพื่อรันสูตร ในไม่กี่วินาที ชุดข้อมูลทั้งหมดจะถูกจัดเรียงในตำแหน่งใหม่ภายในแผ่นงาน เนื่องจากเลือก Ascending order Excel จะจัดเรียงรายการตามวันที่

🔄 ต่างจากฟังก์ชัน SORT, ฟังก์ชัน SORTBY ให้การจัดเรียงหลายระดับ (multi-level sorting) ไวยากรณ์ของฟังก์ชัน SORTBY คือ
SORTBY (array, by_array, [sort_order], [array/order], ...)คำอธิบาย:
array; ช่วงหรืออาร์เรย์ที่ต้องการจัดเรียง
by_array; ช่วงหรืออาร์เรย์ที่ใช้จัดเรียง
sort_order; Ascending = 1 (ค่าเริ่มต้น), Descending = -1
array/order; คู่ของอาร์เรย์เพิ่มเติมและลำดับการจัดเรียง [Optional]
🔺 วางสูตรด้านล่างในเซลล์ว่าง (เช่น H5) แล้วกด ENTER
=SORTBY(B5:F16,B5:B16,1)เปรียบเทียบไวยากรณ์: array = B5:F16, by_array = B5:B16, sort_order = 1 (Ascending)

อ่านเพิ่มเติม: How to Sort Multiple Rows in Excel (2 Ways)
วิธีที่ 7: จัดเรียงอัตโนมัติตามวันที่ด้วยสูตร
สูตร INDEX-MATCH ช่วยให้วันที่จัดเรียงอัตโนมัติตามวันที่ พิมพ์สูตรต่อไปนี้ในเซลล์ C5
=IFERROR(INDEX($B$5:$B$16, MATCH(ROWS($B$5:B5),COUNTIF($B$5:$B$16, "<="&$B$5:$B$16), 0)), "")🔼 ส่วน MATCH(ROWS($B$5:B5),COUNTIF($B$5:$B$16, "<="&$B$5:$B$16), 0) ➤ ทำงานเป็น row_num สำหรับฟังก์ชัน INDEX
🔼 ROWS($B$5:B5) ➤ ส่ง lookup_value ให้ฟังก์ชัน MATCH โดยใช้ฟังก์ชัน ROWS
🔼 COUNTIF($B$5:$B$16, "<="&$B$5:$B$16) ➤ ส่ง lookup_array ให้ MATCH โดยใช้ COUNTIF
🔼 0 ➤ ระบุ match_type (เช่น Exact Match) สำหรับ MATCH
🔺 กด ENTER และใช้ Fill Handle คัดลอกสูตรไปยังเซลล์อื่นๆ

🔺 หรือใช้สูตรด้านล่างเพื่อจัดอันดับวันที่แทนฟังก์ชัน COUNTIF และดึงคอลัมน์เฉพาะ
=INDEX(B5:F16,MATCH(ROW(A1:A12),RANK(B5:B16,B5:B16,1),0),{1,2,5})สูตรนี้ประกาศอาร์กิวเมนต์เหมือนสูตรก่อนหน้า แต่ใช้ฟังก์ชัน RANK แทน COUNTIF และดึงคอลัมน์เฉพาะตามต้องการ

อ่านเพิ่มเติม: How to Auto Sort Table in Excel (5 Methods)
วิธีที่ 8: จัดเรียงตามวันที่ด้วย VBA Macro
VBA Macro สามารถจัดเรียงชุดข้อมูลตามวันที่ได้
🔺 กด ALT+F11 เปิด Microsoft Visual Basic คลิกสองครั้งที่ Worksheet ที่ต้องการ

🔺 วางแมโครต่อไปนี้ในหน้าต่างโค้ดของ Sheet
Private Sub Worksheet_Change(ByVal Rng As Range)
On Error Resume Next
Range("B4").Sort Key1:=Range("B5"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

Range แรก (เช่น B4) คือเซลล์สุดซ้ายในชุดข้อมูล Range ต่อไป (เช่น B5) กำหนดจุดเริ่มต้นของข้อมูล แล้วบรรทัดแมโครสั่งให้จัดเรียงชุดข้อมูลในลำดับ Ascending ด้วยการจัดวาง Top to Bottom
🔼 หลังจากใส่แมโคร กลับไปที่ Worksheet เพิ่มหรือลบแถว หรือกด ENTER เพื่อจัดระเบียบข้อมูล ตามภาพด้านล่าง

อ่านเพิ่มเติม: VBA to Sort Table in Excel (4 Methods)
สรุป
ในบทความนี้ เราใช้ฟีเจอร์ ฟังก์ชัน และ VBA macro หลายวิธีในการจัดเรียงแถวใน Excel ตามวันที่ ฟีเจอร์ในตัวให้ตัวเลือกมากมาย สูตรที่ปรับแต่งเองจัดเรียงแถวตามวันที่ได้อย่างมีประสิทธิภาพ VBA Macro จัดเรียงชุดข้อมูลอัตโนมัติตามวันที่ หวังว่าวิธีที่กล่าวมาจะตอบโจทย์สำหรับกรณีของคุณ กรุณาคอมเมนต์หากมีข้อสงสัยหรือต้องการเพิ่มเติม
บทความที่เกี่ยวข้อง
- How to Use Sort Function in Excel VBA (8 Suitable Examples)
- How to Sort Array with Excel VBA (Both Ascending and Descending Order)
- VBA to Sort Column in Excel (4 Methods)
- How to Sort Unique List in Excel (10 Useful Methods)
- How to Add Sort Button in Excel (7 Methods)
- Sort IP Address in Excel (6 Methods)