Mencoba mengerjakan lembar kerja lembur yang sedikit lebih rumit di sini:
Karyawan dibayar:
- Tarif 1x per jam selama hari kerja (Sen-Jum) selama pukul 08:30 hingga 17:30
- Tarif 1,5x per jam selama hari kerja (Senin-Jumat) sebelum pukul 08:30 atau setelah 17:30
- Tingkat 1,5x per jam pada hari Sabtu
- Tarif 2x per jam pada hari Minggu dan Hari Libur Nasional
Tata Letak Lembar:
|Date |Day |Slip No |Name |Destination |Start Time |End Time |Total Hours Worked |Basic Hours |OT @ 1.5 |OT @ 2.0
Jadi saya mencari rumus untuk kolom
- [H] = Jam Bekerja
- [I] = Jam Dasar
- [J] = OT @ 1.5
- [K] = OT @ 2.0
Saya hanya mencari representasi jam tentang apa yang berhasil; jadi tidak perlu untuk bidang 'tarif per jam'.
[H] =MOD(G6-F6,1)
[I] =IF(F6<G6,MIN(G6,Data!F2)-MAX(F6,Data!E2),MAX(0,Data!F2-F6)+MAX(0,G6-Data!E2))
[J] =H6-I6
[K] =IF(OR(WEEKDAY($A6)=1,ISERROR(VLOOKUP($A6,tblPublicHolidays,1,FALSE))=FALSE),$H6,0)
[H] = bekerja;
[K] = bekerja;
[I] / [J] adalah masalahnya dan saya merasa jika saya bisa membuat saya bekerja, saya akan memiliki solusi untuk J juga. J hanya "total jam" minus "jam dasar".
tblPublicHolidays adalah daftar hari libur nasional yang kami miliki.
Data! E2 = waktu mulai - yaitu: 08:30
Data! F2 = waktu akhir - yaitu: 17:30
Untuk keperluan demo ini, baris pertama ini (6) memiliki nilai waktu mulai 18:30 dan waktu berakhir 18:45. Saya mendapatkan formula [I] dari https://exceljet.net/formula/total-hours-that-fall-between-two-times tetapi sepertinya tidak berfungsi karena alasan ini:
- [I] muncul sebagai sekelompok hash (#) jika saya memiliki format sebagai 'Waktu'
- Jika saya mengubah [I] ke format Angka, maka muncul sebagai -0,04
- [J] tampaknya selalu memiliki 1 jam lebih dari yang seharusnya (dalam contoh ini 1:15 bukannya 0:15)
Data!E2 = 8:30
& Data!F2 = 17:30
tautkan MIN(G6,upper) = 08:30 in the first instance
MAX(F6,lower) = 18:30 in the first instance
dua contoh terakhir di mana 'waktu mulai' / 'kumpulkan waktu' sebelum 'rendah' - itu berfungsi dengan baik Dua contoh pertama di mana 'waktu mulai' / 'waktu kumpulkan' adalah setelah 'atas' - itu tidak bekerja.