Formula Excel: Cari tahu waktu yang dihabiskan dalam rentang waktu tertentu

0

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)
SupaMonkey
sumber
Anda bisa mendapatkan #s jika kontennya terlalu lebar untuk ditampilkan dalam lebar kolom. Apa yang Anda lihat jika Anda menyesuaikan lebar kolom?
fixer1234
Maaf saya tidak menyebutkannya; Saya mengubah ukuran kolom - tidak melakukan apa pun. Hanya mengubah format menjadi "angka" menghasilkan -0,04 yang saya sebutkan.
SupaMonkey
Apakah mungkin untuk mendapatkan waktu negatif di [I] (mungkin terkait dengan apa yang memberi Anda kesalahan 1 jam di [J])? -,04 setara dengan kira-kira - 1 jam (yaitu, 0,04 sehari). Jika Anda tidak boleh menghasilkan hasil dengan waktu negatif, itu mungkin petunjuk. Jika waktu negatif diizinkan, alasan Anda mendapatkan #s kemungkinan adalah Anda bekerja di Windows dan menggunakan "dasar 1900" untuk tanggal / waktu, yang tidak mampu menangani waktu negatif. Versi Mac dari Excel default ke "basis 1904", yang dapat menangani waktu negatif, dan Anda dapat memilihnya di versi Windows.
fixer1234
Jadi: 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.
SupaMonkey
Kedengarannya sangat mirip dengan ini .. Silakan pertimbangkan untuk menambahkan data sampel (Anda telah menempelkan formula Anda, yang bagus .. tetapi tidak ada cara bagi orang lain untuk mengujinya ..)
p._phidot_

Jawaban:

0

Terima kasih atas bantuannya, tetapi inilah yang akhirnya saya dapatkan (anggap baris awal adalah 6):

A6 (DATE)
B6 (DAY) =IF(A6<>"",TEXT(A6,"dddd"),"")
F6 (START TIME)
I6 (END TIME)
L6 (HOURS WORKED) =IF(AND(F6>0,I6>0),MOD(I6-F6,1)*24,"")
M6 (BASIC HOURS) =IF(AND(F6>0,I6>0),IF(AND(WEEKDAY($A6)>1,WEEKDAY($A6)<7),IF(F6 < I6,MAX(0,MIN(I6,upper)-MAX(F6,lower))*24,MAX(0,upper - F6)+MAX(0,I6 - lower)*24),0),"")
N6 (Overtime @ 1.5) =IF(AND($F6>0,$I6>0),IF(AND(WEEKDAY($A6)>1,ISERROR(VLOOKUP($A6,tblPublicHolidays,1,FALSE))=TRUE),(L6-M6),0),"")
O6 (Overtime @ 2.0) =IF(AND($F6>0,$I6>0),IF(OR(WEEKDAY($A6)=1,ISERROR(VLOOKUP($A6,tblPublicHolidays,1,FALSE))=FALSE),$L6,0),"")
SupaMonkey
sumber