:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

คำนวณ OT

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kimhunzx
Member
Member
Posts: 12
Joined: Mon Apr 03, 2017 2:42 pm

คำนวณ OT

#1

Post by kimhunzx »

ติดปัญหา อยู่ 4 เคส ครับในแถบสีเหลือง คือ

แถวที่ 10 วันหยุดประเพณี กะ เข้า 15:00 ออก 00:00 เวลาสิ้นสุดจริง คือ 23:00 และผลลัพธ์ของจำนวนชั่วโมง OT ยังไม่ถูกต้อง ซึ่งจริงๆ ที่ถูกต้องจะต้องได้ OT 1.0 = 8 ชม. และ 3.0 = 2 ชม.

แถวที่ 11 วันหยุด กะ เข้า 22:00 ออก 07:00 เช้า เคสนี้เป็น OT ข้ามวัน และผลลัพธ์ของจำนวนชั่วโมง OT ยังไม่ถูกต้อง ซึ่งจริงๆ ที่ถูกต้องจะต้องได้ OT 1.0 = 8 ชม. (นับเวลาตั้งแต่ 22:00 ถึง 07:00) และ OT 3.0 = 1 ชม. (นับเวลาตั้งแต่ 07:00 ถึง 08:00)

แถวที่ 12 วันทำงาน กะ เข้า 18:00 ออก 03:00 เคสนี้เป็นวันทำงานตรงกะ จะไม่ได้ OT ใดๆ แต่ผลลัพธ์ของจำนวนชั่วโมง OT ถูกคำนวณออกมาในช่อง OT 1.5 = 9 ชม. ครับ

แถวที่ 13 วันหยุด กะ เข้า 18:00 ออก 06:00 เคสนี้เป็นวันหยุด และได้ OT ข้ามวัน และผลลัพธ์ของจำนวนชั่วโมง OT ยังไม่ถูกต้อง ซึ่งจริงๆ ที่ถูกต้องจะต้องได้ OT 1.0 = 8 ชม. (นับเวลาตั้งแต่ 18:00 ถึง 03:00) และ OT 3.0 = 3 ชม. (นับเวลาตั้งแต่ 03:00 ถึง 06:00)

รายละเอียดมีอยู่ในไฟล์แนบเรียบร้อยครับ รบกวนด้วยครับ ขอบคุณครับ
OT Test.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: คำนวณ OT

#2

Post by parakorn »

ลองอธิบายเงื่อนไขที่ถูกต้องมาเป็นคำพูดดูครับว่าเหตุใดจึงให้โอทีเช่นนั้น
kimhunzx
Member
Member
Posts: 12
Joined: Mon Apr 03, 2017 2:42 pm

Re: คำนวณ OT

#3

Post by kimhunzx »

เงื่อนไข คือ
1.เวลาที่ขอ OT ก่อน/หลัง เวลาทำงาน (ในวันทำงานปรกติ) จะได้ OT 1.5
2.เวลาที่ขอ OT อยู่ในช่วงเวลาทำงาน (ทำงานในวันหยุด) จะได้ OT 1.0
3.เวลาที่ขอ OT ก่อน/หลัง เวลาทำงาน (ทำงานในวันหยุด) จะได้ OT 3.0 แต่จะต้องทำ OT ในช่วงเวลาทำงานตามข้อ 2 ด้วยจึงจะได้ OT 3.0
4.เงื่อนไขที่ขอ OT วันหยุดและวันหยุดประเพณี จะได้ OT แบบเดียวกัน

นี่คือเงื่อนไขที่ถูกต้องครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30751
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณ OT

#4

Post by snasui »

:D ค่อย ๆ ถามตอบกันไปครับ
kimhunzx wrote:แถวที่ 10 วันหยุดประเพณี กะ เข้า 15:00 ออก 00:00 เวลาสิ้นสุดจริง คือ 23:00 และผลลัพธ์ของจำนวนชั่วโมง OT ยังไม่ถูกต้อง ซึ่งจริงๆ ที่ถูกต้องจะต้องได้ OT 1.0 = 8 ชม. และ 3.0 = 2 ชม.
ตามข้อที่ผมยกมานี้คือเซลล์ใด อธิบายให้ถึงตำแหน่งเซลล์จะได้เข้าถึงปัญหาโดยเร็วและสะดวกในการตอบครับ
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: คำนวณ OT

#5

Post by menem »

เท่าที่ดูคร่าว ๆ จุดที่น่าจะเป็นปัญหาคือ การระบุเวลาในการทำงาน (เริ่มต้น/สิ้นสุด และจุดอื่น ๆ)
ระบุแค่ เวลา ไม่ได้มีการระบุเรื่องวันที่เข้าไปด้วย ทำให้กรณีการทำงานข้ามวัน จะเกิดปัญหาในการ
คำนวณว่า ผ่านไปแล้วกี่ชั่วโมง (เพราะจะกลายเป็นว่า สิ้นสุดการทำงาน ก่อนเริ่มต้นทำงาน
เนื่องจาก Excel เข้าใจว่าเป็นชั่วโมง (เวลา) ในวันเดียวกัน

ลองพิจารณาจุดนี้ด้วยนะครับ

ปล. ถ้าเป็นไปได้ อาจจะต้องรบกวนขั้นตอน/เงือนไข การทำงาน/การกำหนดว่าเป็น OT มาให้ละเอียด
เพราะจะช่วยให้พิจารณาการเขียนสูตรได้ง่ายขึ้นครับ เช่น

การทำงาน มี 3 กะ
กะเช้า 08:00-16:00
กะเย็น 16:00-00:00
กะดึก 00:00-08:00
การคำนวณ OT ให้คำนวณ ตัดตอนที่ 00:00 ของทุกวัน
การพิจารณาชนิดวันหยุด ให้ตัดตอนที่ 00:00 ของทุกวันเช่นกัน
และการทำงาน OT ส่วนที่เกิน 00:00 (ข้ามวัน) ให้เริ่มนับใหม่เป็น
ตามเงื่อนไขของอีกวัน ฯลฯ
ZEROV
Member
Member
Posts: 73
Joined: Thu Jun 03, 2010 6:31 pm

Re: คำนวณ OT

#6

Post by ZEROV »

Y6=(TEXT((G6<F6)+A6+G6-(A6+F6),"[m]")-TEXT((N6<M6)+A6+N6-(M6+A6),"[m]"))/60/24
kimhunzx
Member
Member
Posts: 12
Joined: Mon Apr 03, 2017 2:42 pm

Re: คำนวณ OT

#7

Post by kimhunzx »

ขอบคุณ สำหรับ คำตอบ ทุกท่านครับ
ตอนนี้ จุดที่ติดปัญหา แก้ได้แล้วครับ แต่ติดปัญหาใหม่ คือ พนักงานทำ OT วันหยุด/วันหยุดประเพณี หากจำนวนชั่วโมงทำงาน < 8 ชม. จะได้ OT 1 เท่า ไม่ใช่ 3 เท่า แต่สูตรดันไปจับ เป็น 3 เท่าครับ ยกตัวอย่างเคสแถวที่ 7 และ 9 รายละเอียดในไฟล์แนบครับ เนื่องจาก คำอธิบายยาว เลย อธิบายในไฟล์แทนครับ ซึ่งไม่แน่ใจ จะเกี่ยวกับ ข้ามวัน แบบที่คุณ menem กล่าวไว้หรือเปล่าครับ

เงื่อนไข คือ OT วันหยุด/วันหยุดประเพณี หากจำนวนชั่วโมงทำงาน < 8 ชม. จะได้ OT 1 เท่า ไม่ใช่ 3 เท่าครับ

รายละเอียดในไฟล์แนบครับ ขอบคุณครับ
OT Test_1.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30751
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณ OT

#8

Post by snasui »

:D ปัจจุบันเซลล์ AB7 แสดงค่าเป็น 2:00 มาจากเซลล์ มาจากสูตรด้านล่าง

=IFERROR(IF(OR($E7={"H-วันหยุด";"T-หยุดประเพณี"}),X7+Y7,0),0)

คำอธิบายในไฟล์แนบแจ้งไว้ว่าค่านี้ไม่ถูกต้อง ค่าควรจะไปอยู่ที่ Z7 โดยใน Z7 มีสูตรคือ

=IFERROR(IF(AND(H7<8/24,OR($E7={"H-วันหยุด";"T-หยุดประเพณี"})),W7,0),0)

หากค่าใน Z7 ไม่ถูกต้องแสดงว่าค่าใน W7 ไม่ถูกต้องเนื่องจากเป็นสูตรที่ดึงค่าจาก W7 มาอีกที

จากตัวอย่างการเชื่อมโยงตามด้านบนแสดงว่าต้องตามไปตรวจสอบค่าที่ต้นทางว่าเซลล์ใดคำนวณไม่ถูกต้อง หรือไม่เช่นนั้นลองอธิบายลักษณะการเชื่อมโยงมาอีกรอบว่า Z7 มาด้วยเงื่อนไขใด จะได้คำนวณเปรียบเทียบได้ครับ
kimhunzx
Member
Member
Posts: 12
Joined: Mon Apr 03, 2017 2:42 pm

Re: คำนวณ OT

#9

Post by kimhunzx »

ในช่อง Z7 ต้องเพิ่มเงื่อนไข คือ ถ้า W7 น้อยกว่า 8 ชม. จะต้องได้ X7 ในช่อง Z7 ครับ
และช่อง AB7 ต้องเพิ่มเงื่อนไข คือ ถ้า W7 มากกว่าหรือเท่ากับ 8 ชม. จะต้องได้ X7+Y7 ในช่อง AB7 ครับ
โดยยังคงเงื่อนไขอันเดิมไว้ด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30751
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณ OT

#10

Post by snasui »

:D ตัวอย่างสูตรใน Z7 ครับ

=IFERROR(IF(OR($E7={"H-วันหยุด";"T-หยุดประเพณี"}),IF(W7<8/24,X7,0),0),0)

ตัวอย่างสูตรใน AB7 ครับ

=IFERROR(IF(OR($E7={"H-วันหยุด";"T-หยุดประเพณี"}),IF(W7>=8/24,X7+Y7,0),0),0)
kimhunzx
Member
Member
Posts: 12
Joined: Mon Apr 03, 2017 2:42 pm

Re: คำนวณ OT

#11

Post by kimhunzx »

โอ้วว ได้แล้วครับ ขอบคุณมากครับ :thup:
Post Reply