วันพฤหัสบดีที่ 26 สิงหาคม พ.ศ. 2553

VBA Excel : date format กรณี สูตร Datedif

สวัสดีครับท่านผู้อ่าน ช่วงนี้พบกันค่อนข้างบ่อยหน่อยนะครับ พอดีว่ามีปัญหาการใช้งาน Excel ของผู้ใช้มาให้ผมคิด ตามที่เราได้เกริ่นไปแล้วเรื่องของสูตร Excel ที่เกี่ยวข้องกับ date และ time ของข้อมูล ล่าสุด HR ของผมส่งแบบฟอร์ม Excel มาให้กรอกข้อมูลของพนักงานในฝ่ายเพื่อเป็นข้อมูลในการนำไปประกอบกิจกรรม Walk Railly ดังแสดงเป็นตารางได้ดังนี้ครับ

ชื่อ – นามสกุล

ชื่อเล่น

อายุงาน (ปี เดือน วัน)

อายุ(ปี)

A

A

1 ปี 2 เดือน 15 วัน

32









ตารางที่ 1 ข้อมูลที่ HR ต้องการจากผม

เอาหล่ะครัลดูความต้องการของ HR แล้ว แอบประชดในใจแบบดังๆ ทำไมไม่เอาอายุแบบกี่วันกี่เดือนกี่ปีด้วยเลยนะ จากข้อมูลง่ายมั้ยครับ ไม่น่ายากสำหรับ ชื่อ นามสกุล ชื่อเล่น และอายุของพนักงาน แต่อายุงานนี่ซิ ยากนิดหนึ่ง ผมขอเสนอฟังก์ชัน date ตัวนี้เลยครับ datedif ซึ่ง Excel ได้ซ่อนไว้เราจึงไม่สามารถเลือกใช้ได้จากเมนูครับ datedif มีรูปแบบดังนี้ครับ

=datedif(วันเริ่ม,วันสิ้นสุด,รูปแบบระยะเวลาที่ต้องการแสดงผล)

โดยรูปแบบระยะเวลาที่ต้องการแสดงผลมีดังนี้

“Y” = ระยะห่างเป็นจำนวนปี

“M” = ระยะห่างเป็นจำนวนเดือนทั้งหมด

“D” = ระยะห่างเป็นจำนวนวันทั้งหมด

“YM” = จำนวนเดือนที่เหลือหลังนับปีแล้ว

“YD” = จำนวนเดือนที่เหลือหลังจากนับปีแล้ว

“MD” = จำนวนวันที่เหลือหลังจากนับเดือนแล้ว

เรามาดูตัวอย่างกันครับ

สมมุติผมเริ่มงานวันที่ 1 ตุลาคม 2548 หากนับอายุงานผมถึงวันที่ 26 สิงหาคม 2553 ผมจะมีอายุงานเท่าไหร่น๊อ

สมมุติผมกำหนดวันเริ่มงานผมในเซลล์ B1 เป็น 1/10/2005

กำหนดวันที่ต้องการคำนวณอายุงานไว้ที่เซลล์ B2 เป็น 26/8/2010

กำหนดให้อายุงานเป็นจำนวนวันอยู่ในเซลล์ B3 จะกำหนดสูตรได้เป็น

=Datedif(B$1,B$2,”D”) ผลที่ได้จะเป็น 1,790 วัน โว้ทำงานนานเหมือนกันนะเนี่ยผม

เมื่อทดลองใช้รูปแบบการแสดงผลอื่นๆจะแสดงได้ดังภาพที่ 1

Excel Date

ภาพที่ 1 ผลลัพธ์จาก Excel สำหรับการใช้รูปแบบของสูตร Datedif

คอลัมภ์ C แสดงสูตร Excel (Datedif) ที่แสดงผลลัพธ์ในคอมลัมภ์ B

ท่านผู้อ่านคงเห็นประโยชน์ของสูตร Excel สูตรนี้และคงคิดถึงการนำไปประยุกต์ใช้ในงานของท่านนะครับ ส่วนผมเองจากปัญหานี้เองทำให้นำไปใช้งานได้อีกเยอะเลยเช่น ด้าน HR ก็นำไปใช้เตือนระยะเวลาทดลองงานของพนักงานได้โดยปรับ Date ในเซลล์ B2 เป็น =Today() เท่านี้เราก็สามารถตรวจสอบระยะในการทดลองงานของพนักงานในแต่ละวันได้แล้วว่าถึงกำหนดรึยังเพื่อที่จะดำเนินการบรรจุพนักงานหรือดำเนินการประเมินผลงานของพนักงานได้อย่างเหมาะสมในช่วงเวลานั้น (ตามกฎหมายต้องไม่เกิน 119 วัน) ในด้านการซ่อมบำรุงรักษาเครื่องจักรก็สามารถนำไปใช้ในกำหนดตารางการบำรุงรักษาเครื่องจักรได้อย่างมีประสิทธิภาพ ในขณะที่บางอุตสาหกรรมผลิตภัณฑ์ที่จะนำออกสู่ตลาดต้องมีขั้นตอนการ Ageing เพื่อให้ผลิตภัณฑ์มีคุณภาพสูงที่สุด เราก็สามารถประยุกต์ใช้ฟังก์ชันนี้ในการตรวจสอบอายุของผลิตภัณฑ์ได้ หรือคนที่กำลังบันทึกผลสำหรับการประเมินผลงานด้วย KPI ก็สามารถประยุกต์ไปใช้ได้นะครับ ก็บอกแล้วครับว่ามี Excel หนึ่งโปรแกรมช่วยเราได้เยอะมากในการทำงาน เดี๋ยวบทความต่อไปผมจะนำเสนอสูตร Excel ในหมวด Date fuction อีกฟังก์ชันหนึ่ง ในการตรวจสอบระยะห่างระหว่างเวลา ท่านผู้อ่านคงอยากรู้ว่าทำไม Datedif ไม่เพียงพอเหรอ เอาเป็นว่าผมทิ้งคำถามไว้หล่ะกันครับว่า ทำไม Excel ถึงซ่อน สูตร Datedif ไว้ทำให้เราไม่สามารถเรียกใช้ได้จากเมนูบารื

ก่อนจบอย่าลืมข้อควรระวังในการคำนวณเกี่ยวกับวันที่ใน Excel นะครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Yahoo bot last visit powered by  Ybotvisit.com