Page 1 of 2

รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Mon Mar 31, 2014 3:51 pm
by konkung
เพิ่งได้สมัครเป็นสมาชิกใหม่ ใคร่ขอรบกวนปรึกษาสูตรการคิดค่าแรงและค่าล่วงเวลา
เนื่องจากลักษณะเป็นการจ้างเหมารายวัน จึงไม่มีวันหยุดให้เหมือนการจ้างโดยทั่วไปนะครับ
โดยไม่กำหนดเวลาเข้า-ออก ตายตัว เนื่องจากบางวันอาจต้องทำงานจนมืดค่ำ ดังนั้นจึงอนุโลมการเข้างานตอนเช้าในวันถัดไปได้
จึงไม่มีกรณีสาย ยกเว้นที่ทำไม่ครบ 10 ชม.ต่อวัน จะคิดค่าแรงให้เป็นรายชั่วโมง เงื่อนไขการจ้างจึงไม่ซับซ้อนมากนัก
แต่ผมติดตรงที่ตัดเศษที่เกินจาก 10 ชม.ไปสมทบกับเวลาของ OT ไม่ได้ครับ รบกวนช่วยชี้แนะให้ด้วยครับ
ขอบคุณคุณเป็นการล่วงหน้านะครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Mon Mar 31, 2014 6:21 pm
by bank9597
konkung wrote:เพิ่งได้สมัครเป็นสมาชิกใหม่ ใคร่ขอรบกวนปรึกษาสูตรการคิดค่าแรงและค่าล่วงเวลา
เนื่องจากลักษณะเป็นการจ้างเหมารายวัน จึงไม่มีวันหยุดให้เหมือนการจ้างโดยทั่วไปนะครับ
โดยไม่กำหนดเวลาเข้า-ออก ตายตัว เนื่องจากบางวันอาจต้องทำงานจนมืดค่ำ ดังนั้นจึงอนุโลมการเข้างานตอนเช้าในวันถัดไปได้
จึงไม่มีกรณีสาย ยกเว้นที่ทำไม่ครบ 10 ชม.ต่อวัน จะคิดค่าแรงให้เป็นรายชั่วโมง เงื่อนไขการจ้างจึงไม่ซับซ้อนมากนัก
แต่ผมติดตรงที่ตัดเศษที่เกินจาก 10 ชม.ไปสมทบกับเวลาของ OT ไม่ได้ครับ รบกวนช่วยชี้แนะให้ด้วยครับ
ขอบคุณคุณเป็นการล่วงหน้านะครับ
ลองดูตามไฟล์แนบก่อนครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 1:38 pm
by konkung
ขอบคุณคุณ Bank9597 เป็นอย่างสูงนะครับ
ที่ช่วยจัดทำสูตรให้ ผมเลยจัดทำข้อมูลเป็นตัวเต็มมาตามไฟล์แนบนี้แล้ว
โดยแก้ไขการคำนวณค่าจ้างเป็นจำนวนเงิน แต่ยังติดเรื่องกรณีหากทำงานไม่ครบ 10 ชม.
การปัดเศษ ยังไม่ถูกต้องดีนัก แต่จะลองใช้ไปก่อน ค่อยดูปัญหาในตอนปฏิบัติจริงอีกครั้งครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 1:48 pm
by bank9597
konkung wrote:ขอบคุณคุณ Bank9597 เป็นอย่างสูงนะครับ
ที่ช่วยจัดทำสูตรให้ ผมเลยจัดทำข้อมูลเป็นตัวเต็มมาตามไฟล์แนบนี้แล้ว
โดยแก้ไขการคำนวณค่าจ้างเป็นจำนวนเงิน แต่ยังติดเรื่องกรณีหากทำงานไม่ครบ 10 ชม.
การปัดเศษ ยังไม่ถูกต้องดีนัก แต่จะลองใช้ไปก่อน ค่อยดูปัญหาในตอนปฏิบัติจริงอีกครั้งครับ
:D ผมตอบโดยไม่ทราบเงื่อนไขที่ชัดเจนครับ อีกทั้งโจทย์ที่คุณถามมาครั้งล่าสุดก็ยังไม่ชัดเจนครับ

ต้องการให้แสดงค่าอย่างไร หรือ มีเงื่อนไขอย่างไร เมื่อเจอว่าชั่วโมงทำงานไม่ครบ 10 ช.ม

และปัญหาการปัดเศษที่กล่าวมานั้น คือส่วนใด ต้องการให้ปัดเศษแบบไหน ลองอธิบายโจทย์หรือยกตัวอย่างมาให้ชัดเจนครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 2:16 pm
by konkung
ตามไฟล์ที่แนบล่าสุด ในวันที่ 5 จะพบว่าค่าแรงปกติคำนวณตามจริงได้ 9.05 ชม.
ซึ่งควรจะคิดที่ 9 ชม. ดังนั้นค่าแรงที่ถูกต้องควรเป็น 270 บาทในวันนั้นครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 2:26 pm
by bank9597
konkung wrote:ตามไฟล์ที่แนบล่าสุด ในวันที่ 5 จะพบว่าค่าแรงปกติคำนวณตามจริงได้ 9.05 ชม.
ซึ่งควรจะคิดที่ 9 ชม. ดังนั้นค่าแรงที่ถูกต้องควรเป็น 270 บาทในวันนั้นครับ
:D ที่่ L6 คีย์

Code: Select all

=IF(H6<="10:00:00"*1,IF(AND(MINUTE(H6)>=MINUTE(("00:25:00"*1)),MINUTE(H6)<=MINUTE(("00:30:00"*1))),"00:30:00"*1,IF(AND(MINUTE(H6)>MINUTE(("00:30:00"*1)),MINUTE(H6)<=MINUTE(("00:50:00"*1))),"01:00:00"*1,"00:00:00"*1))+TIME(HOUR(H6),0,0),"10:00:00")*1
คัดลอกลงมาครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 2:30 pm
by konkung
โอ้ว ใช่เลยครับ ขอบพระคุณคุณbank9597 เป็นอย่างสูงอีกครั้งครับ
ทีนี้ ตรงตามวัตถุประสงค์แล้วครับผม

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 2:36 pm
by konkung
สงสัยวิธี input นิดนึงนะครับ
เวลาใส่ข้อมูล ต้องใช้ : (Colon) กั้นระหว่างชั่วโมงกับนาทีเท่านั้นหรือเปล่าครับ
เพราะเครื่องหมายนี้ต้องยก Shift มันเสียเวลา มีเครื่องหมายอื่นที่ทดแทนกันได้หรือไม่ครับ
เพื่อให้การคีย์ข้อมูลเร็วขึ้น

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Tue Apr 01, 2014 4:02 pm
by bank9597
konkung wrote:สงสัยวิธี input นิดนึงนะครับ
เวลาใส่ข้อมูล ต้องใช้ : (Colon) กั้นระหว่างชั่วโมงกับนาทีเท่านั้นหรือเปล่าครับ
เพราะเครื่องหมายนี้ต้องยก Shift มันเสียเวลา มีเครื่องหมายอื่นที่ทดแทนกันได้หรือไม่ครับ
เพื่อให้การคีย์ข้อมูลเร็วขึ้น
ต้องใช้เครื่องหมายโคลอนเท่านั้นครับ หากใช้เครื่องหมายอื่น สูตรจะไม่ทำงานครับ

การ Input ข้อมูล ควรจะมีฟอร์มเลือกค่า เช่น ปฏิทิน จะทำให้ข้อมูลที่ถูกกรอกลงไป มีความถูกต้อง ซึ่งการจะทำแบบนั้นได้ ต้องใช้ VBA ในการทำครับ

ลองดูตามไฟล์แนบครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 10:26 am
by konkung
ขอบคุณคุณbank มากครับ
ผมเองไม่ค่อยมีความรู้เรื่อง vba เลย แต่กำลังศึกษาค้นคว้าอยู่ครับ
สำหรับไฟล์ที่คุณ bank ทำให้นี้ผมมีคำถามเรียนถามเพิ่มเติมดังนี้ครับ
1. เราสามารถตัดวินาทีออกได้หรือไม่ครับ หรือมีความจำเป็นต้องคงเอาไว้เสมอ เพราะในทางปฏิบัติไม่ได้ให้ความสำคัญกับหน่วยวินาทีแต่อย่างใด
2. ตอนนี้ผมคลิ๊กไปตรงตำแหน่งไหนก็จะขึ้น code VBA มาให้ตลอดทุกเซลล์ ไม่ทราบว่าจะกำหนดเฉพาะจุดที่ต้องขึ้นได้หรือไม่ครับ
3. หากผมเปลี่ยนเงื่อนไขการปัดเศษนาที ให้คิดเฉพาะตั้งแต่ 55 นาทีขึ้นไปให้คิดเป็น 1 ชม. เงื่อนไขเดียว ไม่ทราบว่าต้องแก้สูตรในเซลล์ใดครับ
4. หากทำเป็น VBA เท่ากับว่าผมต้องใช้ 1 ไฟล์ ต่อ 1 ลูกจ้างใช่ไหมครับ ทีแรกคิดว่าจะใช้การ copy แล้ววางลงเป็นชีท ๆ ไป แต่ถ้าเป็น 1 ไฟล์ต่อ 1 คน ก็ไม่มีปัญหาแต่อย่างใดครับ
ขออภัยที่สอบถามเยอะนะครับ เนื่องจากความรู้เรื่อง excel ผมน้อยมากครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 11:20 am
by bank9597
:D
ผมเองไม่ค่อยมีความรู้เรื่อง vba เลย แต่กำลังศึกษาค้นคว้าอยู่ครับ
:D ปกติจะต้องเขียน VBA มาก่อน ตามกฏครับ แต่ที่มตอบไปนั้น เพื่อเป็นแนวทางต่อไป
1. เราสามารถตัดวินาทีออกได้หรือไม่ครับ หรือมีความจำเป็นต้องคงเอาไว้เสมอ เพราะในทางปฏิบัติไม่ได้ให้ความสำคัญกับหน่วยวินาทีแต่อย่างใด
คงไว้จะดีกว่าครับ เนื่องจากรูปแบบเวลา จะต้องมีองค์ประกอบที่สมบูรณ์ ส่วนการให้แสดงค่าเป็นแบบไหน เราก็กำหนดรูปแบบเซลล์เอาได้ครับ เช่น เป็น "hh:mm"
2. ตอนนี้ผมคลิ๊กไปตรงตำแหน่งไหนก็จะขึ้น code VBA มาให้ตลอดทุกเซลล์ ไม่ทราบว่าจะกำหนดเฉพาะจุดที่ต้องขึ้นได้หรือไม่ครับ
ปรับโค๊ดใน Sheet1 ดังนี้

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Not Intersect(Range("B6:C20"), Target) Is Nothing Then
        input_time.Show
        End If
        If Not Intersect(Range("E6:F20"), Target) Is Nothing Then
        input_time.Show
        End If
        If Not Intersect(Range("I6:J20"), Target) Is Nothing Then
        input_time.Show
        End If
End Sub
3. หากผมเปลี่ยนเงื่อนไขการปัดเศษนาที ให้คิดเฉพาะตั้งแต่ 55 นาทีขึ้นไปให้คิดเป็น 1 ชม. เงื่อนไขเดียว ไม่ทราบว่าต้องแก้สูตรในเซลล์ใดครับ
แก้ไขตัวเลขเวลาในสูตรจาก 00:50:00 เป็น 00:55:00 ในคอลัมน์ L, Q, T
4. หากทำเป็น VBA เท่ากับว่าผมต้องใช้ 1 ไฟล์ ต่อ 1 ลูกจ้างใช่ไหมครับ ทีแรกคิดว่าจะใช้การ copy แล้ววางลงเป็นชีท ๆ ไป แต่ถ้าเป็น 1 ไฟล์ต่อ 1 คน ก็ไม่มีปัญหาแต่อย่างใดครับ
แล้วแต่ครับ แต่หลักการนั้น ควรแยกชีทกัน มีชีทเก็บข้อมูลดิบ (database) มีชีทบันทึกข้อมูลเข้า (Input) และมีชีทแสดงรายงาน (Report) ครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 1:25 pm
by konkung
คุณ bank ครับ
รบกวนดูสูตรสำหรับหัวข้อ 3 ให้ผมหน่อยครับ
คือจะใช้เวลาตั้งแต่ 55 นาทีขึ้นไปคิดเป็น 1 ชม.น่ะครับ
สูตรเดิม
=IF(AND(MINUTE(S12)>=MINUTE(("00:25:00"*1)),MINUTE(S12)<=MINUTE(("00:30:00"*1))),"00:30:00"*1,IF(AND(MINUTE(S12)>MINUTE(("00:30:00"*1)),MINUTE(S12)<=MINUTE(("00:55:00"*1))),"01:00:00"*1,"00:00:00"*1))
คือจะไม่เอาครึ่งชั่วโมงแล้วครับ นับ 55 นาที เงื่อนไขเดียวเลย

สูตรที่ผมแก้เอง
=IF(AND(MINUTE(S6)>=MINUTE(("00:55:00"*1)),MINUTE(S6)>=MINUTE(("00:55:00"*1))),"01:00:00"*1,IF(AND(MINUTE(S6)>MINUTE(("00:30:00"*1)),MINUTE(S6)<=MINUTE(("00:55:00"*1))),"01:00:00"*1,"00:00:00"*1))
ซึ่งมันแสดงผลถูก แต่ผมปรับลดทอนสูตรไม่เป็นน่ะครับ จริง ๆ มันควรจะทำให้สั้นกว่านี้ได้ ตามที่ผมเข้าใจ ผมลองพยายามตัดแล้วแต่พบ error ครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 1:35 pm
by konkung
อีกเรื่องหนึ่ง ตามหัวข้อที่ 1
ผมปรับการแสดงผล โดยใช้ Custom ให้แสดงเป็น hh:mm แต่ก็ยังแสดงผลโดยมีวินาทีขึ้นมาด้วยครับ
ไม่ทราบว่าต้องแก้ไขตรงจุดไหนบ้างครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 1:51 pm
by bank9597
konkung wrote:คุณ bank ครับ
รบกวนดูสูตรสำหรับหัวข้อ 3 ให้ผมหน่อยครับ
คือจะใช้เวลาตั้งแต่ 55 นาทีขึ้นไปคิดเป็น 1 ชม.น่ะครับ
สูตรเดิม
=IF(AND(MINUTE(S12)>=MINUTE(("00:25:00"*1)),MINUTE(S12)<=MINUTE(("00:30:00"*1))),"00:30:00"*1,IF(AND(MINUTE(S12)>MINUTE(("00:30:00"*1)),MINUTE(S12)<=MINUTE(("00:55:00"*1))),"01:00:00"*1,"00:00:00"*1))
คือจะไม่เอาครึ่งชั่วโมงแล้วครับ นับ 55 นาที เงื่อนไขเดียวเลย

สูตรที่ผมแก้เอง
=IF(AND(MINUTE(S6)>=MINUTE(("00:55:00"*1)),MINUTE(S6)>=MINUTE(("00:55:00"*1))),"01:00:00"*1,IF(AND(MINUTE(S6)>MINUTE(("00:30:00"*1)),MINUTE(S6)<=MINUTE(("00:55:00"*1))),"01:00:00"*1,"00:00:00"*1))
ซึ่งมันแสดงผลถูก แต่ผมปรับลดทอนสูตรไม่เป็นน่ะครับ จริง ๆ มันควรจะทำให้สั้นกว่านี้ได้ ตามที่ผมเข้าใจ ผมลองพยายามตัดแล้วแต่พบ error ครับ
:) ตัวอย่างการใช้สูตร ที่ Q6 คีย์ =IF(MINUTE(S6)>=MINUTE(("00:55:00"*1)),"01:00:00"*1,"00:00:00"*1) คัดลอกลงมา

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 2:04 pm
by konkung
bank9597 wrote:
konkung wrote:คุณ bank ครับ
รบกวนดูสูตรสำหรับหัวข้อ 3 ให้ผมหน่อยครับ
คือจะใช้เวลาตั้งแต่ 55 นาทีขึ้นไปคิดเป็น 1 ชม.น่ะครับ
สูตรเดิม
=IF(AND(MINUTE(S12)>=MINUTE(("00:25:00"*1)),MINUTE(S12)<=MINUTE(("00:30:00"*1))),"00:30:00"*1,IF(AND(MINUTE(S12)>MINUTE(("00:30:00"*1)),MINUTE(S12)<=MINUTE(("00:55:00"*1))),"01:00:00"*1,"00:00:00"*1))
คือจะไม่เอาครึ่งชั่วโมงแล้วครับ นับ 55 นาที เงื่อนไขเดียวเลย

สูตรที่ผมแก้เอง
=IF(AND(MINUTE(S6)>=MINUTE(("00:55:00"*1)),MINUTE(S6)>=MINUTE(("00:55:00"*1))),"01:00:00"*1,IF(AND(MINUTE(S6)>MINUTE(("00:30:00"*1)),MINUTE(S6)<=MINUTE(("00:55:00"*1))),"01:00:00"*1,"00:00:00"*1))
ซึ่งมันแสดงผลถูก แต่ผมปรับลดทอนสูตรไม่เป็นน่ะครับ จริง ๆ มันควรจะทำให้สั้นกว่านี้ได้ ตามที่ผมเข้าใจ ผมลองพยายามตัดแล้วแต่พบ error ครับ
:) ตัวอย่างการใช้สูตร ที่ Q6 คีย์ =IF(MINUTE(S6)>=MINUTE(("00:55:00"*1)),"01:00:00"*1,"00:00:00"*1) คัดลอกลงมา
ลองแล้วครับ แสดงผลไม่ถูกต้องครับ ขึ้นเป็น 0

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 2:06 pm
by bank9597
konkung wrote:อีกเรื่องหนึ่ง ตามหัวข้อที่ 1
ผมปรับการแสดงผล โดยใช้ Custom ให้แสดงเป็น hh:mm แต่ก็ยังแสดงผลโดยมีวินาทีขึ้นมาด้วยครับ
ไม่ทราบว่าต้องแก้ไขตรงจุดไหนบ้างครับ
:D มปรับให้แล้วครับ ลองดูตามไฟล์แนบ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 2:40 pm
by konkung
ขอบคุณมาก ๆ ครับคุณ bank สำหรับ VBA ใหม่ สะดวกขึ้นมากเลยครับ
แต่สูตรในการคำนวณโดยเฉพาะ OT น่าจะยังผิดอยู่ครับ เพราะบางวันยังแสดงผล 30 นาทีอยู่ด้วย
สำหรับหลักการคิด OT จะเท่ากับ จำนวนเวลาทำงานหลังจาก 10 ชม.แล้ว + ชม.ทำงานล่วงเวลาที่ตอกบัตรรอบสุดท้าย
ดังนั้นผมจะต้องเอาส่วนที่เกิน 10 ชม.ของ H มาบวกกับ K ผลลัพธ์ที่ได้จากตรงนี้จะเข้าเงื่อนไขตั้งแต่ 55 นาที จะคิดเป็น 1 ชม.ครับ
ผมเห็นคอลัมพ์ T ยังมีเงื่อนไข 30 นาทีอยู่น่าจะผิดจากจุดนี้หรือไม่ครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 4:05 pm
by bank9597
konkung wrote:ขอบคุณมาก ๆ ครับคุณ bank สำหรับ VBA ใหม่ สะดวกขึ้นมากเลยครับ
แต่สูตรในการคำนวณโดยเฉพาะ OT น่าจะยังผิดอยู่ครับ เพราะบางวันยังแสดงผล 30 นาทีอยู่ด้วย
สำหรับหลักการคิด OT จะเท่ากับ จำนวนเวลาทำงานหลังจาก 10 ชม.แล้ว + ชม.ทำงานล่วงเวลาที่ตอกบัตรรอบสุดท้าย
ดังนั้นผมจะต้องเอาส่วนที่เกิน 10 ชม.ของ H มาบวกกับ K ผลลัพธ์ที่ได้จากตรงนี้จะเข้าเงื่อนไขตั้งแต่ 55 นาที จะคิดเป็น 1 ชม.ครับ
ผมเห็นคอลัมพ์ T ยังมีเงื่อนไข 30 นาทีอยู่น่าจะผิดจากจุดนี้หรือไม่ครับ
:D wมลองให้คุณคิดคิดดูเองครับ
จริงๆแล้วต้องแก้ไขสูตรใน 3 คอลัมน์ที่เคยตอบไปแล้ว ไม่ใช่ในคอลัมน์ Q เท่านั้น

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 4:24 pm
by konkung
ขอบพระคุณเป็นอย่างสูงครับ ผมเองก็พยายามที่จะคิดเอง แต่ตีสูตรไม่แตกเลย
ทดลองดูแล้วก็ติด เห็นท่านทำให้บ่อย ๆ รู้สึกเกรงใจเป็นอย่างมากครับ
จะต้องพยายามศึกษาเพิ่มเติมให้มาก ๆ ขึ้นแล้วครับ

Re: รบกวนเรียนปรึกษาสูตรการคิดค่าแรงและโอทีครับ

Posted: Wed Apr 02, 2014 5:03 pm
by konkung
แหะ ๆ ขอรบกวนความรู้เพิ่มอีกนิดนะครับ เพราะตอนนี้สูตรยังผิดอยู่อีกนิดหน่อยน่ะครับ
เข้าใจว่ามีการใช้เงื่อนไข ปัดนาที ทั้ง 2 รอบ ก่อนที่จะนำมารวมกัน อย่างวันที่ 10 เมื่อนำเวลาส่วนเกินมาบวกกับเวลา OT
จะได้เท่ากับ 55 นาที ซึ่งต้องนับเป็น 1 ชม. แต่ในสูตรไม่ขึ้นเพิ่มให้
ผมต้องการนำส่วนเกิน ของ H มาบวกกับ K ก่อนที่จะใช้สูตร =IF(MINUTE(S12)>=MINUTE(("00:55:00"*1)),"01:00:00"*1,"00:00:00"*1)
อ่ะครับ
คือผมต้องการนำค่าของ V มาเข้าสูตรเงื่อนไข เสร็จแล้วก็จะนำไปไว้ที่ M น่ะครับ
โดยค่า V มาจาก K+S ครับ