: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

คำนวณเวลาการทำงานนอกเวลา

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

คำนวณเวลาการทำงานนอกเวลา

#1

Post by shevy »

- การคำนวณเวลาในวันหยุดถ้าทำครบ 8 ชั่วโมงให้แสดงที่ ช่อง 1 เท่าสูงสุดที่ 8 ชั่วโมง ถ้าน้อยกว่าให้แสดงตามที่ได้ ส่วนที่เกิน 8 ชั่วโมงให้แสดงผลที่ช่อง 3 เท่าคะ
- การแสดงผลชั่วโมงหลังเวลา 24.00 - 8.00 ในวันศุกร์ให้แสดงผลที่ช่อง 3 เท่าคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#2

Post by snasui »

:D ค่อย ๆ ถามตอบกันไปครับ

เซลล์ N3 คีย์

=IF(C3=$C$14,MIN(8/24,MIN(17/24,E3)-8/24-I3),0)

Enter > Copy ลงด้านล่าง

ส่วนคอลัมน์ O ให้เขียนคำตอบที่ถูกต้องลงมาในเซลล์แทนการเขียนเป็นสูตรพร้อมอธิบายว่าค่านั้น ๆ คิดมาได้อย่างไรจะได้สะดวกในการทำความเข้าใจครับ
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#3

Post by shevy »

ขอบคุณค่ะ ในคอลัมน์ O กรณีที่เริ่มทำตั้งแต่เวลา 24.00 เป็นต้นไป จำนวนชั่วโมงจะไม่แสดงที่ช่อง 1 เท่า แต่จะต้องไปแสดงที่ช่อง 3 เท่าค่ะ จะอ้างอิงจาก คอลัมน์ C3 เวลาเลือก เป็น Holiday ค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#4

Post by snasui »

:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ N3 คีย์
    =IF(AND($C3=$C$14,$D3="00:00"),0,IF(C3=$C$14,MIN(8/24,MIN(17/24,E3)-8/24-I3),0))
    Enter > Copy ลงด้านล่าง
  2. ที่ O3 คีย์
    =IF(C3=$C$14,L3-N3,0)
    Enter > Copy ลงด้านล่าง
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#5

Post by shevy »

ขอบคุณค่ะ ในคอลัมน์ N5 กรณีที่เลือกคอลัมน์ C5 เป็น Holiday แล้วใส่เวลาจะคำนวณไม่ถูกต้องค่ะ และในคอลัมน์ O5 จะขึ้น ERROR : ######## ค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#6

Post by snasui »

:D ช่วยเขียนอธิบายเงื่อนไขในคอลัมน์ N ให้ครอบคลุมทุก ๆ เงื่อนไขที่เกี่ยวข้องมาใหม่อย่างละเอียด จะได้สะดวกในการทำความเข้าใจครับ
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#7

Post by shevy »

เงื่อนไขตามนี้ค่ะ
1.คอลัมน์ M5 ค่าที่ได้มาจากคอลัมน์ H2 กับ J2 ก่อนเวลาเข้างาน และหลังเวลาออกงานและอ้างอิง กับคอลัมน์ C5=C15 เช่น ถ้าคอลัมน์ D5 เริ่มที่ 6:00 จะได้ 2:30 ชั่วโมง และคอลัมน์ E5 สิ้นสุดที่เวลา 20:30 จะได้ 3 ชั่วโมง เมื่อรวมกันแล้ว ที่คอลัมน์ M5 จะได้เท่ากับ 5:30 ชั่วโมง แต่ถ้าเลือกพักที่คอลัมน์ J5 จะเหลือ 5 ชั่วโมง แต่ถ้าเลือกเวลาเริ่มที่ 17:30 - 20:00 แล้วไม่พักจะได้ 2:30 ชั่วโมง ถ้าเป็นช่วงเช้าจะไม่มีหักเวลาพัก เช่น เริ่ม 6:00 - 8:30 จะได้เท่ากับ 2:30 ชั่วโมง

2.คอลัมน์ N5 ค่าที่ได้มาจากเวลา เข้าและเวลาออกโดยอ้างอิงจาก กับคอลัมน์ C5=C16 เช่น กะเริ่ม 8:30 ถึง 17:30 จะได้ 8 ชั่วโมง ถ้าเข้าก่อนเวลาเข้าและทำเลยเวลาออกข้อมูลจะไปแสดงที่คอลัมน์ O5 แต่ถ้าอยู่ในช่วงเวลาเข้าและออก เช่น เข้า 10:00 - 16:00 จะได้ 5 ชั่วโมง แต่ถ้าเลือกไม่พักที่ คอลัมน์ H5 จะได้ 6 ชั่วโมง
You do not have the required permissions to view the files attached to this post.
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#8

Post by Bo_ry »

ถูกไหม

M5
=(C5="Normal")*(IF(E5<$H$2,E5-D5,IF(D5>$J$2,E5-D5,MAX($H$2-D5,0)+MAX(E5-$J$2,0)))-(J5="พัก")*"0:30")

N5
=(C5="Holiday")*MIN(MAX(MIN($J$2,E5)-MAX($H$2,D5),0)-(H5="พัก")*"1:00","8:00")

O5
=(C5="Holiday")*(IF(E5<$H$2,E5-D5,IF(D5>$J$2,E5-D5,MAX($H$2-D5,0)+MAX(E5-$J$2,0)))-(J5="พัก")*"0:30")
You do not have the required permissions to view the files attached to this post.
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#9

Post by shevy »

- ที่คอลัมน์ O สามารถสามารถเลือกพักได้ 2 ช่วงค่ะ คือ 1:00 ชั่วโมง หรือ 0:30 ค่ะ
- ที่คอลัมน์ O ถ้าเลือกพัก 1:00 ชั่วโมง เวลา 0:00-8:00 จะขึ้น Error : ##### ที่คอลัมน์ N ค่ะ ขอบคุณค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#10

Post by snasui »

:D ลองดูตัวอย่างไฟล์แนบ ผมได้เพิ่มคอลัมน์ L:N มาช่วยคำนวณเพื่อลดความซับซ้อนของสูตร

คอลัมน์ L ซึ่งเป็นคอลัมน์รวมการทำงานที่ไม่รวมล่วงเวลาจะพิจารณาเวลาพักเที่ยงและพักหลังเลิกงานด้วย
คอลัมน์ M คือล่วงเวลาก่อนเข้างาน
คอลัมน์ N คือล่วงเวลาหลังเลิกงาน

นอกจากนี้ได้เปลี่ยนสูตรในคอลัมน์อื่น ๆ เพื่อให้แสดงผลเป็นตัวเลขที่สะดวกต่อการคำนวณต่อแทนแสดงค่าว่าง
You do not have the required permissions to view the files attached to this post.
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#11

Post by shevy »

ที่คอลัมน์ P ค่า Max สุดจะไม่เกิน 8 ชั่วโมงค่ะ ถ้าเกินจะปัดไปที่ คอลัมน์ Q โดยอ้างอิงตามเวลาเข้า-ออกที่ คอลัมน์ H2 กับ J2 แต่ถ้าไม่เกิน 8 ชั่วโมงก็ยึดตามเวลาที่ คอลัมน์ D กับ E ค่ะ :) :)
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#12

Post by snasui »

:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ L5 คีย์
    =MAX(0,IF(D5<6/24,E5-D5,MIN(E5,$J$2)-MAX($H$2,D5))-I5)
    Enter > Copy ลงด้านล่าง
  2. ที่ O5 คีย์
    =IF(C5=$C$15,M5+N5-K5,0)
    Enter > Copy ลงด้านล่าง
  3. ที่ P5 คีย์
    =IF(AND(D5>=6/24,C5=$C$16),MIN(8/24,L5),0)
    Enter > Copy ลงด้านล่าง
  4. ที่ Q5 คีย์
    =IF(C5=$C$16,M5+N5-I5+MAX(0,L5-8/24),0)
    Enter > Copy ลงด้านล่าง
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#13

Post by shevy »

- คอลัมน์ Q ถ้าเลือกพักจะแสดงผลไม่ถูกต้องค่ะ
- คอลัมน์ Q สามารถเลือกพักได้ทั้ง 1 ชั่วโมง และ 30 นาทีค่ะ :thup: :thup:
User avatar
snasui
Site Admin
Site Admin
Posts: 30921
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#14

Post by snasui »

:D แนบไฟล์นั้นมาพร้อมคีย์ค่าที่ถูกต้อง อธิบายมาว่าเหตุใดจึงได้ค่าเท่านั้นและต้องทำเช่นนี้เสมอ งานลักษณะนี้ต้องรวบรวมเงื่อนไขที่เป็นไปได้ทั้งหมดสำหรับเซลล์นั้น ๆ แล้วแจ้งมาในคราวเดียวไม่เช่นนั้นก็จะถามตอบกันได้เรื่อย ๆ ไม่สิ้นสุดครับ
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: คำนวณเวลาการทำงานนอกเวลา

#15

Post by Bo_ry »

P26

=(K26="Normal")*(IF(M26<$H$2,M26-L26,IF(M26>$J$2,M26-MAX(L26,$J$2),MAX($H$2-L26,0)+MAX(M26-$J$2,0)))-(O26="Yes")*"0:30")

N35
=M35-L35-(O35="yes")*"1:00"-(P35="Yes")*"0:30"

Q35
=MAX((K35="Holiday")*MIN(MAX(MIN($J$2,M35)-MAX($H$2,L35),0)-(O35="yes")*"1:00","8:00"),0)

R35
=N35-Q35
You do not have the required permissions to view the files attached to this post.
shevy
Member
Member
Posts: 34
Joined: Thu Oct 12, 2017 1:48 pm
Excel Ver: Microsoft 365

Re: คำนวณเวลาการทำงานนอกเวลา

#16

Post by shevy »

ได้ตรงตามที่ต้องการแล้วค่ะ ขออนุญาตเพิ่มที่คอลัมน์ Q ถ้ากำหนดเวลาน้อยกว่า 4 ชั่วโมงให้แสดงค่าที่น้อยแต่ถ้ามากกว่า 4 ชั่วโมงสามารถเลือกพักได้ค่ะ ขอบคุณค่ะ
Post Reply