เคยสงสัยกันไหมว่า ทำไมข้อมูลที่เป็นวันที่ซึ่งถูกดึงมาจาก SAP โปรแกรมบัญชี หรือโปรแกรมอื่นที่ไม่ใช่ Excel พอ Export มาเปิดใน Excel จึงต้องชิดซ้ายหรือส่งออกมาแบบ Text ด้วย เช่น 4/5/2019 แต่ชิดซ้ายเซลล์ ทำให้ต้องเสียเวลามาปรับให้เป็นวันเดือนปีที่ Excel ยอมรับก่อนเสมอ ทำไมไม่จัดการ Export ออกมาให้พร้อมใช้งานใน Excel ได้ทันที ... Why?
Because your computer may be for FA RANG which windows system may not be day/month/year but month/day/year.
สาเหตุที่ข้อมูลวันที่ซึ่งได้จากโปรแกรมอื่นไม่สามารถนำมาใช้ต่อกับ Excel ได้ทันทีก็เนื่องจากต้องการป้องกันไว้ก่อนว่า ระบบวันที่ของเครื่องคอมพิวเตอร์ที่นำข้อมูลวันที่นี้ไปใช้ต่อนั้น อาจไม่ได้จัดลำดับวันที่เป็นวันก่อนเดือนก่อนปี แต่อาจเป็นเดือนก่อนวันก่อนปีก็ได้ วิธีการป้องกันที่โปรแกรมเมอร์ที่สร้างโปรแกรมอื่นใช้ก็คือ กำหนดให้วันที่มีลักษณะเป็น Text ไว้ก่อนเสมอ เมื่อจะนำไปใช้ต่อใน Excel ก็กำหนดให้มนุษย์ตัดสินใจก่อนว่าจะใช้ วันที่ 4 เดือน 5 หรือ เดือน 4 วันที่ 5
ถ้าโปรแกรมใดส่งวันที่ออกมาให้ Excel ใช้งานได้เลย ต้องตรวจสอบดูให้ดีว่าผู้สร้างโปรแกรมนั้นเขามีระบบตรวจสอบ Region ของคอมพิวเตอร์อัตโนมัติด้วยหรือไม่ หรือทดลองดูค่าวันที่ที่นำมาใช้ต่อว่าใช้งานได้จริง เป็นวันก่อนเดือนก่อนปีได้จริง
ถ้าข้อมูลเกี่ยวข้องกับวันเดือนปีที่ได้รับจากโปรแกรมอื่นมีลักษณะเป็น Text เช่น ในเซลล์ A1 เป็นวันที่ 4/5/2019 และมีลักษณะชิดซ้ายของเซลล์ ห้ามใช้วิธีง่ายๆต่อไปนี้เด็ดขาด เช่น สร้างสูตร =A1*1 หรือใช้สูตร =DATEVALUE(A1) เพราะ Excel จะหาค่าออกมาให้แล้วแต่ว่า Region ของเครื่องนั้นใช้วันเดือนปี หรือเดือนวันปี ซึ่งอาจไม่ตรงกับสิ่งที่ต้องการ
ถ้า A1 มีค่าเป็น 04.05.2019 อย่าใช้สูตร =DATEVALUE(SUBSTITUTE(A1,".","/")) เพื่อเปลี่ยน . ให้เป็น / เพราะแต่ละเครื่องอาจรับรู้ต่างกันเป็นวันที่ 4 เดือน 5 หรือวันที่ 5 เดือน 4
ยกเว้นว่าข้อมูลวันที่แสดงชื่อเดือนไว้ เช่น 4 May 2019 แบบนี้สามารถนำไปคูณ 1 หรือใช้กับสูตร DATEVALUE ได้เลยเพราะแสดงไว้ชัดเจนว่าเป็นเดือนอะไร
ในกรณีของโปรแกรม SAP หรือโปรแกรมอื่น มักส่งข้อมูลวันที่ออกมาที่เห็นเป็นตัวเลขแต่มีลักษณะของค่าเป็น Text ในแบบ 2019.5.4 หรือ 4.5.2019 หรือ 5.4.2019 หรือ 4/5/2019 ต้องใช้สูตร Find, Left, Right, Mid หรือใช้คำสั่ง Text to Columns เพื่อแยกเลขแต่ละส่วนออกมาแล้วนำมาใช้ต่อในสูตร =Date(Year,Month,Day) จึงจะได้คำตอบที่ถูกต้อง
นอกจากสูตร DateValue แล้ว ต้องระวังสูตรอื่นอีก ตามภาพ