← กลับหน้ารวมบทความ
EXCEL DATA CLEANING

แปลง Text เป็น Date Excel ทำอย่างไร? แก้วันที่เป็นข้อความในไม่กี่ขั้นตอน

วันที่ดูถูกต้อง แต่ Sort ไม่ได้ คำนวณไม่ได้ หรือ Pivot Table Group ไม่ผ่าน? เรียนรู้วิธีตรวจสอบและแปลงวันที่จากระบบอื่นให้ใช้งานต่อได้อย่างถูกต้องครับ

ครูกุ๊ก • Excel Speed Workเทคนิค Excel / Data Cleaningพร้อมตัวอย่างสูตรและ Worksheet
TEXT → DATE
31/08/202631/08/2026
15/07/202615/07/2026
01/09/202601/09/2026
หน้าตาเหมือนเดิม แต่ชนิดข้อมูลเปลี่ยนเป็น Date จริง
01 / ตรวจชนิดข้อมูลรู้ก่อนว่า Excel เก็บข้อมูลเป็น Text หรือ Number
02 / แปลงให้ตรงรูปแบบเลือก DMY, MDY หรือ YMD ตามระบบต้นทาง
03 / ตรวจผลลัพธ์เช็กวันที่จริงก่อนใช้สูตรและทำรายงาน
EXCEL PRACTICAL GUIDE
1

ทำไมวันที่ดูถูกต้อง แต่ Excel ใช้งานไม่ได้?

เคยได้รับไฟล์จาก ERP, SAP, โปรแกรมบัญชี, HR หรือ CSV แล้วพบว่า Sort วันที่ไม่ถูกต้อง คำนวณจำนวนวันไม่ได้ หรือ Pivot Table Group เดือน/ปีไม่ได้ไหมครับ? หนึ่งในสาเหตุสำคัญคือข้อมูลที่ดูเหมือนวันที่ถูกเก็บเป็นข้อความ (Text)

วันที่จริงของ Excel ถูกเก็บเป็นตัวเลข Serial Number แล้วใช้ Number Format กำหนดหน้าตา เช่น 31/08/2026 ส่วนข้อความที่มีหน้าตาเหมือนกันอาจยังไม่ใช่วันที่จริง จึงต้องตรวจสอบชนิดข้อมูลก่อนครับ

Sort / Filter

ข้อความอาจเรียงตามตัวอักษร และไม่แสดงตัวเลือกวันที่ตามที่คาดหวัง

สูตรวันที่

YEAR, MONTH หรือการลบวันที่อาจผิดพลาด หรือถูกตีความไม่ตรงกับต้นทาง

Pivot Table

การ Group ตามเดือน/ปีอาจมีปัญหาเมื่อฟิลด์ปะปน Text หรือข้อมูลที่ไม่ใช่วันที่

หลักคิดสำคัญ: การเปลี่ยน Number Format เป็น Date เปลี่ยนเพียงรูปแบบการแสดงผล ไม่ได้แปลงข้อความให้เป็นวันที่จริงโดยอัตโนมัติครับ
EXCEL PRACTICAL GUIDE
2

เช็กก่อนว่าเป็น Date จริง หรือเป็น Text

สมมติข้อมูลอยู่ที่ A2 และแสดงเป็น 31/08/2026 เราสามารถใช้ ISTEXT และ ISNUMBER ตรวจสอบค่าที่เก็บอยู่ได้ครับ

fx   ตรวจสอบว่าเป็นข้อความ
=ISTEXT(A2)
fx   ตรวจสอบว่าเป็นตัวเลข
=ISNUMBER(A2)

ลองสร้างตารางนี้ โดยกำหนด A2 เป็นข้อความ และ A3 เป็นวันที่จริงที่กรอกผ่าน Excel ครับ

ABCD
1ข้อมูลที่เห็นชนิดข้อมูลต้นทางISTEXTISNUMBER
231/08/2026TextTRUEFALSE
331/08/2026Date จริงFALSETRUE

แถว 2 และ 3 อาจมองเห็นเหมือนกัน แต่ชนิดข้อมูลต่างกัน คอลัมน์ C และ D เป็นผลลัพธ์ตัวอย่างของสูตร ISTEXT และ ISNUMBER

ข้อควรจำ: ISNUMBER เป็น TRUE หมายถึงค่าเป็นตัวเลข ไม่ได้พิสูจน์ว่าตัวเลขนั้นเป็นวันที่ที่ถูกต้องเสมอไป ต้องตรวจสอบความหมายและรูปแบบข้อมูลร่วมด้วยครับ

ตรวจด้วย General อีกวิธีหนึ่ง

เลือกเซลล์แล้วเปลี่ยน Number Format เป็น General หากเป็นวันที่จริง Excel จะแสดง Serial Number เช่น วันที่ 31 สิงหาคม 2026 มีค่า Serial 46265 ในระบบวันที่ 1900 ที่ใช้ทั่วไป แต่ถ้าเป็น Text มักยังคงแสดงเป็นข้อความเดิม

อย่าใช้การจัดชิดซ้าย–ขวาเป็นข้อสรุป

Text มักชิดซ้ายและตัวเลขมักชิดขวาตามค่าเริ่มต้น แต่ผู้ใช้สามารถเปลี่ยน Alignment ได้ จึงควรใช้สูตรหรือดูชนิดข้อมูลจริงประกอบครับ

EXCEL PRACTICAL GUIDE
3

วิธีที่ 1: Text to Columns — แปลงทั้งคอลัมน์แบบไม่ใช้สูตร

สำหรับข้อมูลที่มีรูปแบบเหมือนกันทั้งคอลัมน์ เช่น DD/MM/YYYY ผมแนะนำให้เริ่มจาก Text to Columns ครับ เพราะสามารถระบุได้ชัดเจนว่าข้อมูลเรียงวัน เดือน ปีอย่างไร

สมมติข้อมูลต้นทางอยู่ที่ A2:A6 และต้องการเก็บต้นฉบับไว้ โดยให้ผลลัพธ์ออกที่คอลัมน์ B

หากต้องสร้างข้อมูลทดลองเอง ให้กำหนดคอลัมน์ A เป็น Text ก่อนกรอก หรือพิมพ์เครื่องหมาย apostrophe นำหน้าวันที่ เช่น '31/08/2026 เพื่อให้ Excel เก็บเป็นข้อความ โดยเครื่องหมายดังกล่าวจะไม่แสดงในเซลล์ตามปกติครับ

ABCD
1วันที่จากระบบ (Text)วันที่ที่แปลงแล้วตรวจสอบ Dateปี ค.ศ.
231/08/202631/08/2026TRUE2026
315/07/202615/07/2026TRUE2026
401/09/202601/09/2026TRUE2026
520/05/202620/05/2026TRUE2026
609/04/202609/04/2026TRUE2026

ตารางนี้เป็นตัวอย่างผลลัพธ์หลังแปลง โดย A เป็น Text ต้นทาง, B เป็น Date จริง, C และ D เป็นคอลัมน์ตรวจสอบ

ทำตามขั้นตอนนี้

  1. ตรวจสอบและสำรองข้อมูลต้นฉบับ

    ยืนยันว่าข้อมูลเป็น Text และรู้รูปแบบวัน/เดือน/ปีจากระบบต้นทางก่อนเริ่ม

  2. เลือก A2:A6

    เลือกเฉพาะช่วงข้อมูลวันที่ที่ต้องการแปลง

  3. ไปที่ Data → Text to Columns

    เลือก Delimited แล้วกด Next

  4. ตรวจสอบ Delimiter

    ถ้าไม่ได้ต้องการแยกคอลัมน์ ให้ตรวจสอบว่าไม่มีตัวคั่นที่จะแยกข้อมูลผิด แล้วกด Next

  5. เลือก Column data format → Date

    เลือก DMY สำหรับข้อมูล 31/08/2026 เพราะต้นทางเรียงวัน/เดือน/ปี

  6. กำหนด Destination แล้วกด Finish

    หากต้องการเก็บ A ไว้ ให้ตั้ง Destination เป็น $B$2 ตรวจสอบว่า B ว่าง และลองกับข้อมูลบางแถวก่อน

หลังแปลง ให้ตั้งคอลัมน์ B เป็น Date Format ที่ต้องการ แล้วตรวจสอบว่าค่าที่ได้เป็น Date จริงครับ

fx   ตรวจสอบผลลัพธ์ใน C2
=ISNUMBER(B2)
fx   ดึงปี ค.ศ. ใน D2
=YEAR(B2)
อย่ากด Finish โดยไม่ตรวจสอบ Destination

Text to Columns อาจเขียนทับข้อมูลเดิมหรือข้อมูลในคอลัมน์ข้างเคียงได้ ควรสำรองไฟล์และตรวจสอบตำแหน่งผลลัพธ์ก่อนเสมอครับ

EXCEL PRACTICAL GUIDE
4

DMY, MDY และ YMD — จุดที่แปลงสำเร็จแต่วันที่อาจผิด

รูปแบบวันที่จากระบบอื่นอาจต่างกัน แม้ตัวเลขจะคล้ายกันก็ตามครับ

ข้อมูลต้นทางรูปแบบความหมาย
31/08/2026DMY31 สิงหาคม 2026
08/31/2026MDY31 สิงหาคม 2026
2026/08/31YMD31 สิงหาคม 2026

ตัวอย่างที่ต้องระวัง: 03/04/2026

หากต้นทางเป็น DMY จะหมายถึง 3 เมษายน 2026 แต่ถ้าเป็น MDY จะหมายถึง 4 มีนาคม 2026 ทั้งสองแบบเป็นวันที่ถูกต้อง Excel จึงอาจไม่แสดง Error เลยครับ

ข้อมูลหากเป็น DMYหากเป็น MDY
03/04/20263 เมษายน 20264 มีนาคม 2026
ไม่ขึ้น Error ≠ วันที่ถูกต้อง

ควรยืนยันรูปแบบจากระบบต้นทาง และตรวจสอบตัวอย่างที่เลขวันมากกว่า 12 เช่น 25/08/2026 เพื่อช่วยแยก DMY กับ MDY ก่อนแปลงข้อมูลทั้งหมดครับ

แล้วข้อมูล พ.ศ. ล่ะ?

ถ้าต้นทางใช้ปี พ.ศ. เช่น 31/08/2569 ต้องตรวจสอบก่อนว่าเป็นข้อความปี พ.ศ. จริง หรือเป็นวันที่จริงที่เครื่องแสดงผลเป็น พ.ศ. อย่าเพิ่งบวกหรือลบ 543 โดยเดาครับ

หากข้อมูลเป็นข้อความปี พ.ศ. จริง ต้องแปลงปีให้เป็น ค.ศ. อย่างถูกต้องก่อนสร้าง Date ที่ใช้คำนวณต่อได้ ส่วนวันที่จริงที่เพียงแสดงเป็น พ.ศ. ไม่จำเป็นต้องเปลี่ยนค่า Serial Number ครับ

EXCEL PRACTICAL GUIDE
5

วิธีที่ 2: DATEVALUE — เก็บต้นฉบับและสร้างคอลัมน์ใหม่

DATEVALUE เหมาะกับกรณีที่ต้องการเก็บข้อมูลเดิมไว้ และข้อความวันที่อยู่ในรูปแบบที่ Excel สามารถตีความได้ตามการตั้งค่าที่ใช้งานครับ

สมมติ A2 เป็น Text 31/08/2026 และเครื่องสามารถอ่านรูปแบบ DMY นี้ได้

fx   ใส่สูตรใน B2
=DATEVALUE(A2)

DATEVALUE จะคืนค่า Serial Number ของวันที่ จากนั้นกำหนด Number Format ของ B2 เป็น Date และลากสูตรลงแถวถัดไปได้ครับ

ABC
1วันที่ต้นทาง (Text)สูตร DATEVALUEปี ค.ศ.
231/08/202631/08/20262026
315/07/202615/07/20262026
401/09/202601/09/20262026

คอลัมน์ B แสดงผลเป็น Date หลังใช้ DATEVALUE ส่วนคอลัมน์ C สามารถใช้ =YEAR(B2) แล้วลากลงได้

ทำไม DATEVALUE ขึ้น #VALUE!?

สาเหตุหนึ่งคือ Excel ไม่สามารถตีความข้อความตามรูปแบบวันที่ที่คาดหวังได้ เช่น ข้อมูลเป็น DMY แต่เครื่องคาดหวัง MDY นอกจากนี้ข้อความที่ไม่ใช่วันที่หรือมีอักขระแปลกปลอมก็อาจทำให้แปลงไม่ได้ครับ

เลือกให้เหมาะกับงาน: ถ้ารู้รูปแบบต้นทางแน่นอนและต้องแปลงทั้งคอลัมน์ Text to Columns ที่กำหนด DMY/MDY/YMD ได้ตรงๆ มักควบคุมผลลัพธ์ได้ชัดเจนกว่า DATEVALUE ที่อาศัยการตีความของระบบครับ
EXCEL PRACTICAL GUIDE
6

วิธีที่ 3: แปลง YYYYMMDD ด้วย DATE + LEFT + MID + RIGHT

ข้อมูลจาก ERP หรือ Database บางระบบอยู่ในรูปแบบ 8 หลัก เช่น 20260831 หมายถึง 31 สิงหาคม 2026 กรณีนี้สามารถแยกปี เดือน วัน แล้วประกอบเป็น Date ได้ครับ

สมมติ A2 เป็น 20260831 (Text หรือตัวเลข 8 หลัก) และต้องการผลลัพธ์ใน B2

fx   สร้าง Date จาก YYYYMMDD
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
ส่วนของสูตรค่าที่ดึงได้ความหมาย
LEFT(A2,4)2026ปี
MID(A2,5,2)08เดือน
RIGHT(A2,2)31วัน
ABC
1ข้อมูล YYYYMMDDDate ที่แปลงแล้วตรวจสอบชนิดข้อมูล
22026083131/08/2026TRUE
32026071515/07/2026TRUE
42026090101/09/2026TRUE

คอลัมน์ C ใช้ =ISNUMBER(B2) เพื่อตรวจสอบว่า B เป็นตัวเลขวันที่จริง และกำหนด B เป็น Date Format แล้ว

ตรวจสอบวันที่ที่ไม่ถูกต้องก่อนนำไปใช้

DATE สามารถปรับค่าที่เกินช่วงให้กลายเป็นวันอื่นได้ เช่น DATE(2026,2,31) จะได้ 03/03/2026 แทนที่จะขึ้น Error ดังนั้นการประกอบ Date สำเร็จจึงยังไม่รับประกันว่าข้อมูลต้นทางถูกต้องครับ

สำหรับข้อมูลรูปแบบ YYYYMMDD ที่ยืนยันว่ามี 8 หลักแล้ว สามารถใช้สูตรตรวจสอบว่าปี เดือน และวันหลังแปลงตรงกับต้นทางหรือไม่ โดยให้ B2 เป็นวันที่ที่สร้างจากสูตรด้านบน

fx   ตรวจสอบวันที่หลังแปลงใน C2
=IF(AND(YEAR(B2)=--LEFT(A2,4),MONTH(B2)=--MID(A2,5,2),DAY(B2)=--RIGHT(A2,2)),"ถูกต้อง","ตรวจสอบวันที่")
ตัวอย่างข้อมูลผิด: ถ้า A2 เป็น 20260231 สูตร DATE อาจได้ 03/03/2026 แต่สูตรตรวจสอบจะพบว่าเดือนและวันไม่ตรงกับต้นทาง จึงแสดง “ตรวจสอบวันที่” ครับ ควรตรวจสอบจำนวนหลัก ปีที่เป็นไปได้ และข้อมูลผิดรูปแบบก่อนใช้สูตรนี้กับข้อมูลจำนวนมากด้วย
EXCEL PRACTICAL GUIDE
7

เลือกวิธีแปลงให้ตรงกับปัญหา

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

สถานการณ์วิธีที่แนะนำข้อควรระวัง
Text ทั้งคอลัมน์ รูปแบบเดียวกันText to Columnsระบุ DMY/MDY/YMD และตรวจ Destination
ต้องการเก็บข้อมูลเดิมไว้DATEVALUEใช้เมื่อ Excel ตีความรูปแบบต้นทางได้ถูกต้อง
ข้อมูลเป็น YYYYMMDDDATE + LEFT/MID/RIGHTตรวจสอบจำนวนหลักและวัน/เดือนที่ถูกต้อง
Import รูปแบบเดิมทุกเดือนPower Queryกำหนดชนิดข้อมูลและ Locale ให้ตรงต้นทาง
ข้อมูลจากต่างประเทศตรวจสอบรูปแบบก่อนแปลงอย่าเดา DMY/MDY จากวันที่กำกวม
ข้อมูลปี พ.ศ.ตรวจสอบชนิดข้อมูลและแปลงปีตามต้นทางอย่าบวก/ลบ 543 กับวันที่จริงโดยไม่จำเป็น

งานที่ต้องทำซ้ำ: ใช้ Power Query

ถ้าต้องรับไฟล์รูปแบบเดิมทุกเดือน เราสามารถกำหนดขั้นตอนทำความสะอาดและแปลงชนิดข้อมูลไว้ใน Power Query แล้ว Refresh เมื่อข้อมูลใหม่เข้ามาได้ครับ

ตัวอย่าง ถ้าต้นทางเป็นข้อความ DMY ให้เลือกคอลัมน์วันที่ → Change Type → Using Locale → เลือก Data Type เป็น Date และ Locale ที่ใช้รูปแบบวันที่ตรงกับต้นทาง เช่น English (United Kingdom) สำหรับ DMY ที่เหมาะสมกับข้อมูลนั้น จากนั้นตรวจผลลัพธ์ก่อน Load กลับ Excel

ข้อดี: ลดการแปลงซ้ำด้วยมือ แต่ยังต้องตรวจสอบรูปแบบต้นทางและความถูกต้องของข้อมูลทุกครั้งที่มีการเปลี่ยนแปลงจากระบบครับ
EXCEL PRACTICAL GUIDE
8

Workshop: แปลงวันที่จากระบบ HR ก่อนทำ Pivot Table

สมมติฝ่าย HR Export ข้อมูลพนักงานจากระบบ โดย Start Date เป็น Text รูปแบบ DMY และต้องการสรุปจำนวนพนักงานเข้าใหม่รายเดือนครับ

ABCDE
1Employee IDStart Date (Text)Start Date (Date)ปี ค.ศ.เดือน
2EMP00115/01/202615/01/202620261
3EMP00220/02/202620/02/202620262
4EMP00305/03/202605/03/202620263
5EMP00418/03/202618/03/202620263
6EMP00510/04/202610/04/202620264

ข้อมูลเริ่มแถว 2 คอลัมน์ C เป็นผลลัพธ์หลังแปลงจาก Text เป็น Date จริง โดยเก็บคอลัมน์ B ต้นทางไว้

  1. ตรวจสอบ Start Date ต้นทาง

    ยืนยันว่าคอลัมน์ B เป็น Text และรูปแบบต้นทางเป็น DMY

  2. แปลงเป็น Date จริงในคอลัมน์ C

    ใช้ Text to Columns โดยเลือก B2:B6 และกำหนด Destination เป็น C2 หรือใช้วิธีที่เหมาะกับข้อมูลต้นทาง

  3. สร้างคอลัมน์ปีและเดือน

    เมื่อ C เป็น Date จริงแล้ว ใส่สูตรใน D2 และ E2 แล้วลากลง

fx   ดึงปี ค.ศ. ใน D2
=YEAR(C2)
fx   ดึงหมายเลขเดือนใน E2
=MONTH(C2)

จากนั้นสามารถนำ Start Date ที่แปลงแล้วไปใช้กับ Pivot Table เพื่อ Group ตามเดือน/ปี หรือใช้คอลัมน์ปีและเดือนในการสรุปรายงานได้ โดยต้องตรวจสอบว่าไม่มี Text หรือข้อมูลวันที่ผิดปะปนอยู่ครับ

ผลลัพธ์ที่ต้องการ: จากข้อมูลวันที่ที่ใช้งานต่อไม่ได้ → ตรวจสอบ Data Type → แปลงเป็น Date จริง → ตรวจความถูกต้อง → นำไปคำนวณและสรุปรายงานอย่างมั่นใจ
EXCEL PRACTICAL GUIDE
9

คำถามที่พบบ่อยและสรุปก่อนนำข้อมูลไปใช้

วันที่ใน Excel เป็น Text ดูอย่างไร?

ใช้ ISTEXT และ ISNUMBER ตรวจสอบชนิดข้อมูล หรือเปลี่ยนเป็น General เพื่อดูค่าภายใน วันที่จริงเป็นตัวเลข แต่ ISNUMBER เป็น TRUE เพียงอย่างเดียวไม่ได้ยืนยันว่าตัวเลขนั้นเป็นวันที่ที่ถูกต้องครับ

แปลง Text เป็น Date โดยไม่ใช้สูตรได้ไหม?

ได้ครับ ใช้ Data → Text to Columns → Date แล้วเลือก DMY, MDY หรือ YMD ให้ตรงกับต้นทาง จากนั้นตรวจสอบ Destination และผลลัพธ์ก่อนใช้ข้อมูลทั้งหมด

ทำไม DATEVALUE ขึ้น #VALUE!?

หนึ่งในสาเหตุคือ Excel ไม่สามารถตีความข้อความวันที่ตามรูปแบบที่คาดหวังได้ เช่น ต้นทางเป็น DMY แต่เครื่องคาดหวัง MDY ควรตรวจสอบรูปแบบต้นทางและอักขระในข้อมูลก่อนครับ

วันที่ YYYYMMDD แปลงอย่างไร?

สำหรับข้อมูล 8 หลักที่มีรูปแบบถูกต้อง สามารถใช้ =DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)) แล้วตรวจสอบปี เดือน และวันหลังแปลง เพื่อป้องกันกรณี DATE ปรับวันที่ที่ไม่ถูกต้องไปเป็นวันอื่นครับ

เปลี่ยน Format เป็น Date แล้วทำไมยังไม่หาย?

เพราะ Number Format เปลี่ยนเฉพาะการแสดงผล ไม่ได้เปลี่ยน Text ให้เป็น Date จริง ต้องแปลงข้อมูลก่อน แล้วจึงกำหนดรูปแบบวันที่ที่ต้องการครับ

ข้อมูลวันที่ พ.ศ. ต้องลบ 543 ทุกครั้งไหม?

ไม่ครับ ถ้าเป็นวันที่จริงที่เพียงแสดงผลเป็น พ.ศ. ไม่ต้องเปลี่ยนค่า Serial Number แต่ถ้าต้นทางเป็นข้อความปี พ.ศ. จริง จึงต้องแปลงปีให้ถูกต้องตามรูปแบบข้อมูลก่อนสร้าง Date ครับ

Checklist ก่อนทำรายงาน

ตรวจสอบว่าข้อมูลเป็น Date จริง → ยืนยัน DMY/MDY/YMD → ตรวจปี ค.ศ./พ.ศ. → ลองเทียบวันที่กับต้นทาง → ตรวจค่าว่างและวันที่ผิด → จึงนำไปใช้กับสูตร Pivot Table หรือ Dashboard ครับ

การแปลง Text เป็น Date Excel ไม่ยาก แต่สิ่งสำคัญกว่าการแปลงให้สำเร็จคือ ต้องได้วันที่ตรงกับข้อมูลต้นทางจริง ครับ หากเป็นงานครั้งเดียวที่รูปแบบสม่ำเสมอ Text to Columns มักเหมาะมาก ส่วนงานที่ต้อง Import ซ้ำทุกเดือนสามารถต่อยอดด้วย Power Query เพื่อบันทึกขั้นตอนและ Refresh ได้