“อยากเปลี่ยนข้อมูลเป็นวันที่ ต้องทำยังไงคะ?”
“เปลี่ยนฟอร์แมตเป็นวันที่ได้เลยครับ”
“ลองแล้วไม่ได้ค่ะ เพราะข้อมูลเป็น วันเดือนปี เช่น 1032023”
“หา!”
เคสแบบนี้ ถ้าอยู่ในรูปแบบ ปีเดือนวัน (เช่น 20230301) จะง่ายมาก
ใช้สูตรนี้จบ
=--TEXT(A2,"0000-00-00")
แต่ข้อมูลดันอยู่ในรูปแบบ วันเดือนปี
แถมบางครั้งเป็นตัวเลข 7 หลัก เช่น 1032023
และบางครั้งเป็นตัวเลข 8 หลัก เช่น 13112021
จึงต้องปรับสูตรให้เป็นแบบนี้
=--TEXTJOIN("-",,MID(TEXT(A2,REPT(0,8)),{5,3,1},{4,2,2}))

สูตรทำงานแบบนี้ครับ 🙂
เริ่มจากปรับให้มี 8 อักขระ (ด้วยฟังก์ชัน TEXT)
แล้วแยกข้อมูลให้เป็น ปี เดือน วัน (ด้วยฟังก์ชัน MID)
จากนั้นรวมเข้าด้วยกันให้เป็น “yyyy-mm-dd” (ด้วยฟังก์ชัน TEXTJOIN)
เปลี่ยน text เป็นตัวเลข (ด้วยเครื่องหมาย – – )
แล้วปรับฟอร์แมตให้เป็น d-mmm-yyyy
(สูตรนี้เหมาะกับ Excel 365 หรือ Excel 2021)
ผมได้ไอเดียการเขียนสูตรมาจากคุณ Wittaya Chainim ซึ่งตอบคำถามไว้ในกลุ่ม Excel Super Fan
เห็นแล้วชอบตรรกะ จึงนำมาเขียนเป็นบทความ
อนึ่ง เคสนี้ใช้สูตรสั้น ๆ แบบนี้ก็ได้
=--TEXT(A2,"00-00-0000")
แต่จะได้ใช้ได้กับคอมพิวเตอร์ที่เซ็ตรูปแบบวันที่ (ใน Region Settings) เป็น วัน-เดือน-ปี เท่านั้น
คอมพิวเตอร์ที่เซ็ตรูปแบบวันที่เป็น เดือน-วัน-ปี จะใช้ไม่ได้
สูตรแบบแรกจึงยืดหยุ่นกว่า 😀
ผมชอบสูตรนี้มากเลยนะ แล้วคุณล่ะ? 😊