บทที่ 10 การสร้างโปรแกรมวิเคราะห์อัตรากำลังคน

แผนผังแนวคิดเบื้องต้น
ก่อนทำการเขียนโปรแกรม ควรมีการทำความเข้าใจกับแนวคิดเบื้องต้นในการคำนวนอัตรากำลังคน โดยอาศัยการเขียนแผนผังแนวคิด เพื่อช่วยให้การคิดมีโครงสร้างหลักที่ชัดเจน
ในการสร้างโปรแกรมวิเคราะห์กำลังคน อาศัยหลักการคำนวนแบบวนซ้ำ โดยอาศัยปัจจัยข้อมูลด้านเวลามาตรฐาน (Standard time) จำนวนชั่วโมงทำงานของพนักงาน (Man hours) และอัตราส่วนจ่าย (Payment ratio) เข้ามาคำนวนเพื่อหาอัตราส่วนจ่ายที่เหมาะสม

รูปที่ 10.1


รูปแบบการวิเคราะห์กำลังคน
1.การวิเคราะห์กำลังคนแบบคู่ขนาน (Parallel)
เป็นการคำนวนอัตรากำลังคนแบบกำหนดให้พนักงานประจำและพนักงานชั่วคราว ทำงานคู่ขนานกันไปทั้งในวันทำงานปกติ และการทำล่วงเวลาแบบต่าง ๆ
ข้อดีของการวิเคราะห์กำลังคนแบบคู่ขนานมีความเหมาะสมกับกลุ่มงานที่ใช้กำลังคนน้อย หรือเป็นหน่วยงานที่มีขนาดเล็ก เนื่องจากการคำนวนแบบคู่ขนาน เป็นการคำนวนที่แฝงในเรื่องของความสัมพันธ์ระหว่างบุคคลในกลุ่ม
ตัวอย่างเช่น มีปริมาณงานคิดเป็นจำนวนชั่วโมงทำงานเท่ากับ x ชั่วโมง โดยหน่วยงานมีจำนวนพนักงานประจำอยู่ 5 คน และต้องใช้พนักงานชั่วคราวอีก 5 คน เพื่อให้สามารถทำงานนี้ได้เสร็จในช่วงเวลาที่กำหนด
ในการวิเคราะห์กำลังคนแบบคู่ขนาน จะกำหนดให้พนักงานทั้ง 10 คน ทำงานไปพร้อมกัน ทั้งในเวลาทำงานปกติ และการทำล่วงเวลา

รูปที่ 10.2


รูปที่ 10.3

2.การวิเคราะห์กำลังคนแบบอนุกรม (Series)
การวิเคราะห์กำคังคนแบบอนุกรม เป็นการคำนวนอัตรากำลังคนแบบกำหนดให้มีลำดับการคำนวนชั่วโมงในการทำงานในวันทำงานปกติ และการทำล่วงเวลาแบบต่าง ๆ โดยเริ่มจากพนักงานประจำเป็นอันดับแรก และพนักงานชั่วคราวเป็นลำดับที่สอง
ข้อดีของการวิเคราะห์กำลังคนแบบอนุกรม มีความละเอียดในการคำนวนเพราะจะคำนวนชั่วโมงทำงานของพนักงานทีละคน และแยกเป็นแต่ละประเภทของชั่วโมงทำงาน การคำนวนแบบอนุกรมนี้ มีความเหมาะสมกับกลุ่มงานขนาดใหญ่ที่มีการใช้กำลังคนจำนวนมาก หรือเป็นหน่วยงานที่มีขนาดใหญ่
ตัวอย่างเช่น มีปริมาณงานคิดเป็นจำนวนชั่วโมงทำงานเท่ากับ x ชั่วโมง โดยหน่วยงานมีจำนวนพนักงานประจำอยู่ 5 คน และต้องใช้พนักงานชั่วคราวอีก 5 คน เพื่อให้สามารถทำงานนี้ได้เสร็จในช่วงเวลาที่กำหนด
ในการวิเคราะห์กำลังคนแบบอนุกรม จะคำนวนโดยให้พนักงานประจำคนที่ 1 รับภาระงานในวันทำงานปกติตามช่วงเวลาที่กำหนดก่อน จากนั้นพนักงานประจำคนที่ 2,3,4,5 จะรับภาระงานถัดไป และจะทำการคำนวนเช่นนี้ไปเรื่อย จนถึงพนักงานชั่วคราว ตามลำดับ


รูปที่ 10.4


รูปที่ 10.5

การสร้างฟอร์มของโปรแกรม
ส่วน INPUT
กำหนดส่วนของตัวแปรทั้งหมดที่ต้องใช้ในการสร้างโปรแกรม
1.ข้อมูล Standard time
2.ข้อมูล จำนวนวันทำงานปกติ
3.จำนวนวันหยุด
4.อัตราการจ่ายค่าแรง
5.จำนวนพนักงานประจำ
6.จำนวนพนักงานชั่วคราว
7.อัตราการมาทำงาน

เมื่อได้แผนผังที่เป็นกรอบและกระบวนการทำงานหลักของโปรแกรมแล้ว ขั้นตอนต่อไป ก็คือการสร้างส่วนของโปรแกรมเพื่อ interface กับผู้ใช้งานโดยการออกแบบฟอร์ม และส่วนคอนโทรลต่างๆ ของโปรแกรม
1.สร้างไฟล์ Excel ใหม่ขึ้นมา ตั้งชื่อไฟล์ MPA-R1.xls แล้วทำการบันทึก
2.เข้าหน้าต่าง Visual Basic Editor เพื่อสร้างฟอร์ม โดยคลิกที่ Tools>Macro>Visual Basic Editor


รูปที่ 10.6
3.เมื่อหน้าต่าง Visual Basic Editor ปรากฏขึ้นให้คลิกเลือก Insert>UserForm เพื่อเรียกฟอร์มเปล่าขึ้นมาใช้งาน

รูปที่ 10.7
4.UserForm1 จะปรากฏขึ้นมา ให้นำคอนโทรลต่างๆ วางใน UserForm1 ดังรูป

รูปที่10.8

รูปที่ 10.9

ตารางแสดงกำหนดค่าของพร็อพเพอร์ตี้ ของคอนโทรลต่างๆ
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
Userform1 Name Userform1
Caption MPA-R1
Backcolor &H0000C000&
Height 287
width 489
Frame1 Name Frame1
Caption -
BackColor &H8000000F&
BorderColor &H80000012&
SpecialEffect 2-fmSpecialEffectSunken
Height 125
width 252
Frame2 Name Frame2
Caption -
BackColor &H8000000F&
BorderColor &H80000012&
SpecialEffect 2-fmSpecialEffectSunken
Height 125
width 204
Label1 Caption Manpower Analysis
Label2 Caption Day
Label3 Caption Hours
Label4 Caption Permanent pay ratio
Label5 Caption Temporary pay ratio
Label6 Caption Normal Day
Label7 Caption Normal OT
Label8 Caption Holiday
Label9 Caption Holiday OT
Label10 Caption Standard time
Label11 Caption Permanent Manpower
Label12 Caption Attendant rate
Label13 Caption Maximum manpower calculation
Label14 Caption hrs
Label15 Caption prs
Label16 Caption prob
Label17 Caption prs
CommandButton1 Caption Clear sheet
CommandButton2 Caption Parallel
CommandButton3 Caption Series
ListBox1 Name ListBox1
เมื่อใส่ค่าพร็อพเพอร์ตี้ของแต่ละคอนโทรลแล้ว หน้าจอของโปรแกรมจะมีลักษณะดังรูป

รูปที่ 10.10
ใส่รหัสคำสั่งที่ปุ่ม Clear sheet
Private Sub Clear_sheet_Click()
Cells.Clear
End Sub


การใส่คำสั่งให้ปุ่ม Parallel
Private Sub Parallel_Click()
Dim Day, PM, Temp, MP, m As Integer
Dim PH, TH, PP, TP, HRS, AR As Double
Dim TT1, TT2, TT3, TT4, TP1, TP2, TP3, TP4 As Double
Dim Totalmanhours, manhours, payhours, Totalpayhours, std As Double

'Writen by Ruttapon Puttanasiri 1/1/11
std = Txt17.Text 'Standard time
PM = Txt18.Text 'Permanent manpower
AR = Txt19.Text 'Attendant rate
MP = Txt20.Text 'Calculation loop
Upper = 0

c = 1
Do Until Cells(1, c) = ""
c = c + 1
Cells(1, c).Select
Loop


Cells(1, c) = "Manpower"
Cells(1, c + 1) = "Normal day"
Cells(1, c + 2) = "Normal OT"
Cells(1, c + 3) = "Holiday"
Cells(1, c + 4) = "Holiday OT"
Cells(1, c + 5) = "Standard time"
Cells(1, c + 6) = "Man hours"
Cells(1, c + 7) = "Pay hours"



On Error Resume Next

For m = 1 To MP
Cells(m + 1, c).Select
Cells(m + 1, c) = m
TT1 = 0: TT2 = 0: TT3 = 0: TT4 = 0
TP1 = 0: TP2 = 0: TP3 = 0: TP4 = 0
If m <= PM Then Permanent = m: Temp = 0 If m > PM Then Permanent = PM: Temp = m - PM

'Normal working day
Day = Txt1.Text
HRS = Txt2.Text
P_ratio = Txt3.Text
T_ratio = Txt4.Text
PH = (Permanent * Day * HRS) * AR
TH = (Temp * Day * HRS) * AR
manhours = PH + TH
PP = (Permanent * Day * HRS) * 1 * P_ratio
TP = (Temp * Day * HRS) * 1 * T_ratio
payhours = PP + TP
If Temp = 0 Then Cells(m + 1, c + 1) = (Permanent) & "," & (Day) & "," & (PH)
If Temp > 0 Then Cells(m + 1, c + 1) = (Permanent) & "," & (Day) & "," & (PH) & "-" & (Temp) & "," & (Day) & "," & (TH)
TT1 = manhours: TP1 = payhours
Totalmanhours = TT1
Totalpayhours = TP1
If Totalmanhours > std Then GoTo a

For y = 1 To 3
If y = 1 Then Day = Txt5.Text: HRS = Txt6.Text: P_ratio = Txt7.Text: T_ratio = Txt8.Text
If y = 2 Then Day = Txt9.Text: HRS = Txt10.Text: P_ratio = Txt11.Text: T_ratio = Txt12.Text
If y = 3 Then Day = Txt13.Text: HRS = Txt14.Text: P_ratio = Txt15.Text: T_ratio = Txt16.Text

For d1 = 1 To Day
'For a = 1 To 30000
'For b = 1 To 10
'Next b
'Next a
PH = (Permanent * d1 * HRS) * AR
TH = (Temp * d1 * HRS) * AR
manhours = PH + TH
PP = (Permanent * d1 * HRS) * AR * P_ratio
TP = (Temp * d1 * HRS) * AR * T_ratio
payhours = PP + TP
If Temp = 0 Then Cells(m + 1, y + c + 1) = (Permanent) & "," & (d1) & "," & (PH)
If Temp <> 0 Then Cells(m + 1, y + c + 1) = (Permanent) & "," & (d1) & "," & (PH) & "-" & (Temp) & "," & (d1) & "," & (TH)
If y = 1 Then TT2 = manhours: TP2 = payhours
If y = 2 Then TT3 = manhours: TP3 = payhours
If y = 3 Then TT4 = manhours: TP4 = payhours
Totalmanhours = TT1 + TT2 + TT3 + TT4
Totalpayhours = TP1 + TP2 + TP3 + TP4
If Totalmanhours > std Then GoTo a
Next d1

Next y

a:
Cells(m + 1, c + 5) = std
Cells(m + 1, c + 6) = Totalmanhours
Cells(m + 1, c + 7) = Totalpayhours
If TT1 > std Then Upper = Upper + 1
If Totalmanhours >= std And Upper <= 1 Then Range(Cells(m + 1, c), Cells(m + 1, c + 7)).Interior.ColorIndex = 35 Next m ListBox1.AddItem "Parallel_ " & "," & (std) & "," & (Txt1.Text)
End Sub

อธิบายแผนผังของโปรแกรมแบบคู่ขนาน Parallel 
เมื่อโปรแกรมรับค่าจากฟอร์มจะเริ่มทำงานดังนี้ นำค่า MP มาทำการกำหนดลูปในการคำนวนจำนวนคน โดยเริ่มตั้งแต่ ค่า MP = 1 คน จากนั้นจะทำการแยกจำนวนพนักงานประจำและจำนวนพนักงานว่ามีเท่าไร เมื่อได้จำนวนพนักงานแต่ละประเภทแล้วก็จะเข้าสู่การคำนวนจำนวนชั่วโมงทำงานปกติทั้งเดือนของแต่ประเภทของพนักงาน และจำนวนอัตราส่วนจ่ายเทียบเป็นชั่วโมงโดยแยกแต่ละประเภท เมื่อได้จำนวนชั่วโมงทำงานแยกแต่ละประเภทแล้ว ก็จะนำไปเปรียบเทียบกับจำนวนชั่วโมงทำงานมาตรฐาน ถ้ามีจำนวนมากกว่าหรือเท่ากับจำนวนชั่วโมงทำงานมาตรฐานก็จะออกจากโปรแกรม แต่หากจำนวนชั่วโมงทำงานรวมทั้งหมดน้อยกว่าจำนวนชั่วโมงทำงานมาตรฐาน ก็จะสู่การคำนวนชั่วโมงทำงานในส่วนโอทีต่อไป ในกรณีที่จำนวนชั่วโมงทำงานที่ได้รวมทั้งหมดน้อยกว่าจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการ โปรแกรมจะเข้าสู่การคำนวนชั่วโมงทำงานในส่วนที โดยเริ่มจากการอ่านค่าปัจจัยต่างๆ ของการทำล่วงเวลาแต่ละประเภท ซึ่งในที่นี้ กำหนดให้มีประเภทของการทำงานล่วงเวลาอยู่ 3 ประเภท คือ 1.การทำงานล่วงเวลาในวันทำงานปกติ 2.การทำงานในวันหยุด 3.การทำงานล่วงเวลาในวันหยุด ซึ่งการทำงานล่วงเวลาแต่ละประเภทจะมีปัจจัยในการคำนวนที่ต่างกัน เช่น จำนวนวัน จำนวนชั่วโมงต่อวัน และอัตราการจ่ายค่าแรงของพนักงานแต่ละประเภท เมื่อโปรแกรมอ่านค่าปัจจัยที่ป้อนเข้ามาแล้ว จะเริ่มคำนวนจากการทำงานล่วงเวลในวันทำงานปกติเป็นอันดับแรก ในกรณีวิเคราะห์กำลังคนแบบคู่ขนานนั้นโปรแกรมจะทำการคำนวนจำนวนชั่วโมงทำงานล่วงเวลาในวันทำงานปกติแบบคู่ขนานกันไปทั้งพนักงานประจำและพนักงานชั่วคราว ซึ่งผลรวมของจำนวนชั่วโมงทำงานที่ได้จากการทำล่วงเวลา จะเป็นผลรวมของการทำงานทั้งพนักงานประจำและพนักงานชั่วคราว โดยเริ่มจากการทำงานล่วงเวลา 1 วัน ว่าได้จำนวนชั่วโมงทำงานล่วงเวลาเท่าใด ก็จะเอาไปรวมกับผลรวมของจำนวนชั่วโมงทำงานในวันปกติทั้งหมดที่คำนวนได้ก่อนหน้า จากนั้นก็จะนำไปเปรียบเทียบกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องว่ามากกว่า หรือเท่ากับจำนวนชั่วโมงมาตรฐานที่ต้องการหรือยัง หากยังไม่พอกับจำนวนที่ต้องการ ก็จะทำการคำนวนโดยเพิ่มการทำงานล่วงเวลาในวันปกติเป็น 2 วัน แล้วทำการคำนวนจำนวนชั่วโมงทำงานล่วงเวลาที่ได้ไปรวมกับจำนวนชั่วโมงทำงานปกติทั้งหมดที่คำนวนได้ก่อนหน้านี้ หากยังไม่เพียงพอกับจำนวนชั่วโมงทำงานมาตราฐานที่ต้องการอีก ก็จะคำนวนซ้ำเช่นนี้ ไปจนกระทั่ง ครบจำนวนวันที่กำหนด เมื่อครบกำหนดของวันทำงานล่วงเวลาในวันทำงานปกติที่กำหนดแล้ว แต่ชั่วโมงทำงานทั้งก็ยังไม่เพียงพอกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการ โปรแกรมก็จะกลับไปอ่านค่าปัจจัยในการทำงานในวันหยุดต่อไป ซึ่งการคำนวนก็จะมีลักษณะเช่นเดียวกับ การคำนวนจำนวนชั่วโมงทำงานล่วงในวันทำงานปกติ โดยจะคำนวนซ้ำและตรวจสอบเงื่อนไข ไปจนกระทั่ง ครบจำนวนวันหยุดที่กำหนด เมื่อครบกำหนดของวันทำงานในวันหยุดตามที่กำหนดแล้ว แต่ชั่วโมงทำงานทั้งก็ยังไม่เพียงพอกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการ โปรแกรมก็จะกลับไปอ่านค่าปัจจัยในการทำงานล่วงเวลาในวันหยุดต่อไป ซึ่งการคำนวนก็จะมีลักษณะเช่นเดียวกัน โดยจะคำนวนซ้ำและตรวจสอบเงื่อนไข ไปจนกระทั่ง ครบจำนวนวันหยุดที่กำหนด เมื่อการคำนวนจำนวนชั่วโมงทำงานพนักงาน 1 คน ในทุกประเภทของชั่วโมงทำงานแล้วยังไม่พอกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการแล้ว โปรแกรมก็จะกลับไปวนซ้ำการคำนวนโดยเพิ่มจำนวนพนักงานเป็น 2 คน แล้วทำการคำนวนเริ่มจากจำนวนชั่วโมงการทำงานในวันปกติ การทำงานล่วงเวลาในวันทำงานปกติ การทำงานในวันหยุด และการทำล่วงเวลาในวันหยุด ตามลำดับ โดยโปรแกรมจะทำการคำนวนไปจนกระทั่งครบตามจำนวนลูปหรือ จำนวนพนักงานที่กำหนด ในส่วนของจำนวนชั่วโมงทำงานที่เทียบเป็นอัตราส่วนจ่ายก็จะถูกคำนวนไปพร้อมกับการคำนวนชั่วโมงทำงานในทุกขั้นตอน


การใส่คำสั่งให้ปุ่ม Series 
Private Sub Series_Click()
Dim Day, PM, Temp, MP, m As Integer
Dim PH, TH, PP, TP, HRS, AR As Double
Dim TT1, TT2, TT3, TT4, TP1, TP2, TP3, TP4 As Double
Dim Totalmanhours, manhours, payhours, Totalpayhours, std As Double
Dim p, t As Integer
'Writen by Ruttapon Puttanasiri 1/1/11
std = Txt17.Text 'Standard time
PM = Txt18.Text 'Permanent manpower
AR = Txt19.Text 'Attendant rate
MP = Txt20.Text 'Calculation loop Upper = 0 c = 1 Do Until Cells(1, c) = "" c = c + 1 Cells(1, c).Select Loop Cells(1, c) = "Manpower" Cells(1, c + 1) = "Normal day" Cells(1, c + 2) = "Normal OT" Cells(1, c + 3) = "Holiday"
Cells(1, c + 4) = "Holiday OT"
Cells(1, c + 5) = "Standard time"
Cells(1, c + 6) = "Man hours"
Cells(1, c + 7) = "Pay hours"
On Error Resume Next
For m = 1 To MP
Cells(m + 1, c).Select
Cells(m + 1, c) = m
TT1 = 0: TT2 = 0: TT3 = 0: TT4 = 0 TP1 = 0: TP2 = 0: TP3 = 0: TP4 = 0
If m <= PM Then Permanent = m: Temp = 0 If m > PM Then Permanent = PM: Temp = m - PM
'Normal working day
Day = Txt1.Text
HRS = Txt2.Text
P_ratio = Txt3.Text
T_ratio = Txt4.Text
PH = (Permanent * Day * HRS) * AR
TH = (Temp * Day * HRS) * AR
manhours = PH + TH
PP = (Permanent * Day * HRS) * 1 * P_ratio
TP = (Temp * Day * HRS) * 1 * T_ratio
payhours = PP + TP
If Temp = 0 Then Cells(m + 1, c + 1) = (Permanent) & "," & (Day) & "," & (PH)
If Temp > 0 Then Cells(m + 1, c + 1) = (Permanent) & "," & (Day) & "," & (PH) & "-" & (Temp) & "," & (Day) & "," & (TH)
TT1 = manhours: TP1 = payhours
Totalmanhours = TT1
Totalpayhours = TP1
If Totalmanhours > std Then GoTo a
For y = 1 To 3
If y = 1 Then Day = Txt5.Text: HRS = Txt6.Text: P_ratio = Txt7.Text: T_ratio = Txt8.Text
If y = 2 Then Day = Txt9.Text: HRS = Txt10.Text: P_ratio = Txt11.Text: T_ratio = Txt12.Text
If y = 3 Then Day = Txt13.Text: HRS = Txt14.Text: P_ratio = Txt15.Text: T_ratio = Txt16.Text
For p = 1 To Permanent
For d1 = 1 To Day
'For a = 1 To 30000
'For b = 1 To 10
'Next b
'Next a
PH = (p * d1 * HRS) * AR
PP = (p * d1 * HRS) * AR * P_ratio
manhours = PH
payhours = PP
Cells(m + 1, y + c + 1) = (p) & "," & (d1) & "," & (PH)
If y = 1 Then TT2 = manhours: TP2 = payhours
If y = 2 Then TT3 = manhours: TP3 = payhours
If y = 3 Then TT4 = manhours: TP4 = payhours
Totalmanhours = TT1 + TT2 + TT3 + TT4
Totalpayhours = TP1 + TP2 + TP3 + TP4
If Totalmanhours > std Then GoTo a
Next d1
Next p
For t = 1 To Temp
For d2 = 1 To Day
'For x = 1 To 20000
'For z = 1 To 10
'Next z
'Next
TH = (t * d2 * HRS) * AR
TP = (t * d2 * HRS) * AR * T_ratio
manhours = PH + TH
payhours = PP + TP
Cells(m + 1, y + c + 1) = (Permanent) & "," & (Day) & "," & (PH) & "-" & (t) & "," & (d2) & "," & (TH)
If y = 1 Then TT2 = manhours: TP2 = payhours
If y = 2 Then TT3 = manhours: TP3 = payhours
If y = 3 Then TT4 = manhours: TP4 = payhours
Totalmanhours = TT1 + TT2 + TT3 + TT4
Totalpayhours = TP1 + TP2 + TP3 + TP4
If Totalmanhours > std Then GoTo a
Next d2
Next t
Next y
a:
Cells(m + 1, c + 5) = std
Cells(m + 1, c + 6) = Totalmanhours
Cells(m + 1, c + 7) = Totalpayhours
If TT1 > std Then Upper = Upper + 1
If Totalmanhours >= std And Upper <= 1 Then Range(Cells(m + 1, c), Cells(m + 1, c + 7)).Interior.ColorIndex = 35
Next m
ListBox1.AddItem "Series_ " & "," & (std) & "," & (Txt1.Text)
End Sub

อธิบายแผนผังของโปรแกรมแบบอนุกรม Series
ในการทำงานของโปรแกรมแบบอนุกรม มีหลักการคำนวนเหมือนกับการคำนวนแบบคู่ขนานทุกประการ เพียงแต่จะแยกส่วนของพนักงานประจำและพนักงานชั่วคราวออกจากกัน โดยโปรแกรมจะเริ่มจากการคำนวนจำนวนชั่วโมงทำงานในวันทำงานปกติรวมกันระหว่างพนักงานประจำและพนักงานชั่วคราว แล้วทำการตรวจสอบเงื่อนไขว่า จำนวนชั่วโมงทำงานที่ได้เพียงพอกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการหรือไม่ หากยังไม่เพียงพอก็จะเข้าสู่การคำนวนจำนวนชั่วโมงทำงานล่วงเวลาของวันทำงานปกติ โดยจะเริ่มคิดจากพนักงานประจำคนที่ 1 ทำงานล่วงเวลาในวันที่ 1 2 และ 3 ไปเรื่อยๆ โดยจะตรวจสอบเงื่อนไขผลรวมของเวลาทำงานในทุกเงื่อนไข จนครบกำหนดวันทำงานล่วงเวลาของวันทำงานปกติ เมื่อครบกำหนดแล้วแต่ยังไม่เพียงพอก็จะคิดเวลาทำงานล่วงเวลาพนักงานประจำคนที่ 2 และ 3 ต่อไป จนกระทั่ง ครบตามจำนวนพนักงานประจำ หากยังไม่เพียงพออีก ก็จะนำพนักงานชั่วคราวคนที่ 1 , 2 และ 3 เพิ่มไปเรื่อยๆ จนกระทั่งครบตามจำนวนพนักงานชั่วคราว
เมื่อคำนวนจำนวนชั่วโมงทำงานล่วงเวลาแล้ว ผลรวมของจำนวนชั่วโมงทำงานที่ได้ยังไม่เพียงพอกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการแล้ว ก็จะคำนวนจำนวนชั่วโมงทำงานในวันหยุด และการทำงานล่วงเวลาในวันหยุดต่อไป
เมื่อคำนวนจำนวนชั่วโมงทำงานของพนักงานในทุกประเภทของชั่วโมงทำงานแล้วยังไม่พอกับจำนวนชั่วโมงทำงานมาตรฐานที่ต้องการแล้ว โปรแกรมก็จะกลับไปวนซ้ำการคำนวนโดยเพิ่มจำนวนพนักงานเป็น 2 คน แล้วทำการคำนวนเริ่มจากจำนวนชั่วโมงทำงานปกติ การทำงานล่วงเวลาในวันทำงานปกติ การทำงานในวันหยุด และการทำล่วงเวลาในวันหยุด ตามลำดับ โดยโปรแกรมจะทำการคำนวนไปจนกระทั่งครบตามจำนวนลูปหรือ จำนวนพนักงานที่กำหนด



ทดสอบโปรแกรม
การเรียกโปรแกรมขึ้นมาทดสอบ
กรณีสมมติ ต้องการหาช่วงจำนวนพนักงานที่เหมาะสม เมื่อกำหนดให้
Standard time ของปริมาณการผลิตประจำเดือนเท่ากับ 5,000 ชั่วโมง
จำนวนวันทำงานปกติเท่ากับ 24 วัน
จำนวนหยุดเท่ากับ 4 วัน
จำนวนพนักงานประจำ 10 คน
อัตราการมาทำงาน (Attendant rate) = 1.0
กำหนดให้คำนวน 30 ลูป หรือ จำนวนพนักงาน 30 คน

รูปที่ 10.13



วิธีการคำนวนแบบขนาน (Parallel)
1.เรียกโปรแกรมขึ้นมา ใส่ข้อมูลจำนวนวัน และอัตราส่วนจ่าย แล้วกดปุ่ม Parallel
ผลการ Run โปรแกรม



วิธีการคำนวนแบบอนุกรม (Series)
1.เรียกโปรแกรมขึ้นมา ใส่ข้อมูลจำนวนวัน และอัตราส่วนจ่าย แล้วกดปุ่ม Series
ผลการ Run โปรแกรม



วิธีการคำนวนแบบหลายเดือนต่อเนื่องกัน (Long Plan)
เนื่องจากรหัสคำสั่งที่เขียนนั้นผู้ใช้สามารถสั่งคำนวนแบบต่อเนื่อง เพื่อทำการวิเคราะห์อัตรากำลังคนในระยะยาวได้ เช่น
เดือนที่ 1 มีจำนวนวันทำงาน 24 วัน และเวลามาตรฐานเท่ากับ 4000 ชั่วโมง
เดือนที่ 2 มีจำนวนวันทำงาน 25 วัน และเวลามาตรฐานเท่ากับ 5000 ชั่วโมง
1.ก่อนเริ่มการคำนวนให้กดปุ่ม Clear sheet เพื่อล้างข้อมูลเก่าในชีทให้หมดก่อน
2.ให้ใส่ข้อมูลเดือนที่ 1 เข้าไปในโปรแกรมแล้ว กดปุ่มเลือกแบบการคำนวนเป็น แบบขนาน หรือแบบอนุกรม
3.ให้ใส่ข้อมูลเดือนที่ 2 เข้าไปในโปรแกรมแล้ว กดปุ่มเลือกแบบการคำนวนเป็น แบบขนาน หรือแบบอนุกรม
4.ในกรณีต้องการเริ่มต้นการคำนวนใหม่ทั้งหมด ให้กดปุ่ม Clear sheet



รูปที่ 10.14