Knowledge นี้เป็น Knowledge แรกของปี 2009 เลยเนื่องมาจากปัญหาในการทำงานจริงๆ ของน้องส้ม ปัญหามีอยู่ว่า น้องส้มต้องการทราบเวลารวมในการทำงานเฉพาะ OT ของพนักงาน ก็ได้ key เวลาทำงานของแต่ละคน ในแต่ละวันจนแล้วเสร็จ แต่เมื่อกด  แล้ว ปรากฏว่าไม่ได้จำนวนเวลารวมจริง เดือดร้อนถึง IT ต้องมาหาทางแก้ไขให้ เอาเป็นว่า เริ่มเลยดีกว่านะครับ

โจทย์คือ

     1. ต้องการทราบเวลาทำงานช่วง OT รวม (จำนวนวันมากหรือน้อย แล้วแต่นะครับ แต่ในตัวอย่างผมใช้ประมาณหนึ่งเท่านั้น)

     2. หลัง 17:30 น. ถึงจะเริ่มนับเวลา OT

วิธีทำ

  1. 1. เริ่มจาก key เวลาทำงานให้ถูกต้องก่อน โดยส่วนมาก เราๆ จะพิมพ์รูปแบบ(format)เวลาไม่ถูกกัน คือถ้าเวลา สิบเจ็ดนาฬิกา สามสิบสองนาที เราจะพิมพ์เป็น 17.32 น. ซึ่งที่ถูกคือ 17:32 น. ถ้าได้ key ไปเยอะแล้วไม่ต้องพิมพ์ใหม่ครับ ใช้สูตรแก้ไขได้ ดังภาพครับ (ตามสูตรจะได้หน่วยเวลาเป็น hh:mm:ss แต่ผมต้องการเป็น hh:mm ก็เข้าไปแก้ใน Format Cells… เอาครับ)

07

2. เมื่อได้รูปแบบ(format) ของเวลาที่ถูกต้องแล้วก็หาเวลาทำ OT ในแต่ละวัน แต่เนื่องจากบางวันก็ไม่ได้ทำ OT (รูดบัตรออก ก่อน 17:30)  การหาผลต่างของเวลาด้วยการลบธรรมดา ก็จะทำให้เกิด error ดังภาพครับ

06

3. ถ้าหากปล่อย error นี้ไว้ เวลาที่เรา sum เวลาทั้งหมด ค่าที่ได้ ก็จะได้เป็นค่า error ไปด้วย ดังนั้น ผมจะไม่หาเวลา OT ในแต่ละวัน ด้วยวิธีลบแบบธรรมดา แต่จะใช้ฟังก์ชั่น IF เข้ามาช่วยครับดังภาพ

05

4. จะเห็นว่าผลลัพท์ที่ได้(ใน column H) จะมีตัวเลขอะไรซักอย่างที่ไม่ใช่หน่วยของเวลาแก้ไขโดยเปลี่ยนรูปแบบ(format)จาก General เป็น Time ครับ

04

5. หลังจากเปลี่ยนจาก General เป็น Time แล้วเราก็จะได้หน่วยของเวลาที่ถูกต้องดังภาพข้างบนนะครับ ซึ่งในภาพมีหน่วยเป็น hh:mm:ss แต่ผมต้องการเป็น hh:mm ก็สามารถแก้ไขได้ใน Format Cells ครับ(ไม่แสดงตัวอย่างนะครับ อันนี้ไม่ยาก) จากนี้เราก็มา Sum กัน

03

6. จะเห็นได้ว่าเวลารวมที่ได้จากการใช้ จะได้จำนวนเวลาไม่เกิน 24 ชั่วโมง แต่จากโจทย์เราต้องการเวลารวมจริงๆ ว่าได้ OT กี่ชั่วโมง(เอาแค่หรี่ตาซ้าย ปิดตาขวา ก็รู้ว่ามันน่าจะมากกว่า 40 ชั่วโมงแน่ๆ) แก้ไขโดยคลิ๊กขวาเซลที่เราได้ ไว้เลือก Format Cells  แล้วเลือกตามรูปครับ

02

 

7. ผลลัพท์ที่ได้ก็….

01

Advertisements