formula untuk membandingkan format waktu dalam excel (compare time in excel)
kali ini saya akan coba membahas sedikit mengenai fungsi pada excel, khususnya untuk membandingkan format waktu (date/time). saya tertarik menulis masalah ini karena saat ini saya sedang mengerjakan rekap absen, dan iseng-iseng saya ingin mencoba membuat formula untuk mengecek keterlambatan setiap pegawai dengan data dari mesin absen dengan menggunakan fingerprint.
awalnya saya harus memeriksa apakah status pointnya adalah kedatangan (check in) atau kepulangan (check out), lalu baru membandingkan dengan batas waktu kedatangan atau kepulangan, dan menentukan flag untuk terlambat atau pulang cepat.
baiklah, untuk mengecek kondisi status point bisa dilihat dari salah satu kolom yang tersedia apakah terisi “Check In” yang berarti kedatangan, atau berisi “Check Out” yang berarti kepulangan. rasanya formula untuk permasalahan ini cukup sederhana yaitu dengan menggunakan fungsi IF yang bentuk dasarnya adalah IF(KONDISI; VALUE/FUNGSI BILA BENAR; VALUE/FUNGSI BILA SALAH). contoh penggunaannya adalah sebagai berikut:
=IF(F15=”Check In”;”fungsi kedatangan”; “selain fungsi kedatangan”)
nah sekarang kita beralih ke permasalahan utama, yaitu membandingkan waktu. pertama yang harus kita lakukan adalah dengan mengkonversi teks dari cell tertentu menjadi format waktu (time), cell ini memiliki teks misalnya “07:20” tanpa tanda petik. teks ini (misalnya pada cell D5) bisa kita konversikan menjadi format waktu dengan fungsi TIME(JAM; MENIT; DETIK). fungsi ini dikombinasikan dengan fungsi LEFT(CELL; JUMLAH DIGIT) dan RIGHT(CELL; JUMLAH DIGIT) untuk mendapatkan angka jam dan menit dari suatu cell tertentu. gabungan dari fungsi ini kita gunakan sebagai berikut:
=TIME(LEFT(D15;2);RIGHT(D15;2);0) -> yang misalnya kita simpan di cell E15
yang pada contoh ini 07:20 akan dikonversi menjadi 07:20 AM dengan format waktu. bila konversi telah selesai kita lakukan maka kita bisa langsung membandingkan dengan waktu yang kita inginkan misalnya jam 07:30, dengan formula kondisi WAKTU1 > WAKTU2. cara menuliskannya adalah sebagai berikut:
=IF(E15>TIME(7;30;0);”status terlambat”;”status tidak terlambat”)
atau untuk memeriksa apakah pegawai tersebut pulang cepat (kurang dari jam 16:00), maka formulanya kita modifikasi menjadi:
=IF(E15<TIME(16;0;0);”status pulang cepat”;”status tidak pulang cepat”)
lalu bagaimana lagi? sebenarnya semua fungsi utamanya sudah kita buat,dan bila memang ingin terlihat lebih simpel dengan tidak membuat begitu banyak kolom tambahan, maka fungsinya bisa kita gabungkan agar menjadi seperti ini:
=IF(F21=”Check In”;(IF((TIME(LEFT(D21;2);RIGHT(D21;2);0))>TIME(7;30;0);”status terlambat”;”status tidak terlambat”)); (IF((TIME(LEFT(D21;2);RIGHT(D21;2);0))<TIME(16;0;0);”status pulang cepat”;”status tidak pulang cepat”)))
bila dengan menggunakan formula diatas masih terdapat error, mungkin karena pengaturan separator untuk formula pada excel berbeda dengan yang saya gunakan, coba ganti karakter titik koma “;” menjadi koma “,”. selamat mencoba…..
Selamat pagi, saya sedang mengerjakan rekap absensi, sama seperti anda, tapi permasalahannya saya ingin mendapatkan status kurang disipliin apabila datang lewat dari jam 8, tidak disiplin apabila waktu kerja kurang dari 9Jam dan disiplin apabila waktu kerja >= 9 jam… nah saya mencoba menggikuti dari blog anda ini tetapi terdapat masalah pada format waktu cek in krn formatnya ” 03/11/2014 14:17:00″ saya coba select semua ganti format ttp saja seperti itu….. tapi kalo saya ganti dengan text “17:00” itu baru bisa… mohon solusinya.. atau kalo ada email saya ingin mengirim file excel saya.. thanks
kalau saya lihat di formatnya ini ” 03/11/2014 14:17:00″, apa benar selalu ada spasi ” ” di depan tanggal ini? (spasi di depaan angka “03”)
bila memang ada, mungkin bisa di trim dulu. caranya bisa dilihat di artikel saya yang lain (https://quin2.wordpress.com/2013/02/13/menghilangkan-spasi-trim-whitespace-pada-cell-excel/) nanti setelah spasi sebelah kiri itu bersih semua menjadi “03/11/2014 14:17:00″, barulah bisa dimasukkan ke dalam fungsi date, namun tentunya dengan sedikit modifikasi. misalnya seperti ini, untuk membandingkan waktu real kedatangan dengan batas waktu katakanlah jam 08:00:00, asumsi waktu kehadiran disimpan di cell D9:
=IF(TIME(HOUR(D9),MINUTE(D9),SECOND(D9))<TIME(8,0,0),"disiplin","kurang disiplin")
untuk kondisi lebih dari satu, misalnya bila datang sebelum jam 8 dan waktu kerja lebih dari 9 jam maka status "disiplin", maka kodenya kurang lebih seperti ini:
*formula untuk kondisi lebih dari 1 bisa menggunakan AND ataupun OR di dalam fungsi IF tergantung kebutuhan, pada contoh ini lebihcocok menggunakan AND
*waktu kedatangan disimpan pada cell D9
*waktu pulang disimpan pada cell D10
*selisih jam pulang dengan kedatangan disimpan pada cell D11 dengan formula:
=TEXT(D10-D9,"h")
formula status disiplin:
=IF(AND(TIME(HOUR(D9),MINUTE(D9),SECOND(D9))=8),”disiplin”,”tidak disiplin”)
arti formula di atas:
bila (waktu(D9)=8) maka status=”disiplin”, selain itu maka status=”tidak disiplin”
di mana D11 = D10-D9
semoga bisa membantu 🙂
mau nanya nih mas, jika kondisi ke-2 nya adalah pengurangan sel dari sel IF ke sel tertentu gmn formulanya? jadi begini kondisinya…..kalo seorang pegawai masuk setelah jam 7.30 maka akan di hitung selisih antara jam masuk dan waktu masuk (7.30) tetapi kalo sebaliknya jam masuk kurang dari jam 7.30 maka akan di anggap 0. dan nanti akhir bulan akan di jumlahkan selisih antara jam masuk dan waktu masuknya.
terima kasih
coba saya jawab,
kalo saya ga salah tangkep ini maksudnya bila jam masuk (D9) kurang dari 7.30 pagi maka waktu keterlambatan (D10) akan diisi 0,
namun bila jam masuk (D9) lewat dari 7.30 pagi, maka waktu keterlambatan (D10) akan diisi dengan selisih jam datang (D9) dikurangi jam masuk (7.30 pagi)
begitu?
ok, singkatnya kira2 formulanya seperti ini:
=IF(TIME(HOUR(D9),MINUTE(D9),SECOND(D9))<TIME(7,30,0),0,TEXT(TIME(HOUR(D9),MINUTE(D9),SECOND(D9))-TIME(7,30,0),"h:m:s"))
formula diatas akan saya bagi dulu supaya jadi lebih mudah dipahami:
TIME(HOUR(D9),MINUTE(D9),SECOND(D9))<TIME(7,30,0)
— saya simbolkan jadi X
TEXT(TIME(HOUR(D9),MINUTE(D9),SECOND(D9))-TIME(7,30,0),"h:m:s")
— saya simbolkan jadi Z
kurang lebih jadi seperti ini:
=IF(X,0,Z)
— kalau kondisi X terpenuhi maka nilai cell tersebut adalah 0, bila kondisi X tidak terpenuhi maka nilai cell tersebut adalah Z
lalu kita breakdown lagi penjelasannya, kondisi X adalah:
TIME(HOUR(D9),MINUTE(D9),SECOND(D9))<TIME(7,30,0)
— membandingkan waktu (jam menit detik dari cell D9 apakah lebih kecil dari jam menit detik 07:30:00)
pada statement Z artinya adalah:
TIME(HOUR(D9),MINUTE(D9),SECOND(D9))-TIME(7,30,0)
— saya simbolkan dengan A, merupakan pengurangan cell D9 dengan format waktu 7:30:00, jadi:
TEXT(A,"h:m:s")
— adalah hasil pengurawan waktu pada cell D9 dengan jam 7:30:00, dan ditulis dengan format “h:m:s” yaitu “jam:menit:detik”
nanti cell D10 ini (yang berisi selisih waktu keterlambatan), tinggal dijumlah sesuai kebutuhan
semoga saya ga salah tangkep permasalahannya dan semoga penjelasannya bisa gampang dimengerti… 😀
iya mas kondisi permasalahanya memang seperti itu…akan menghitung jumlah keterlambatan kehadiran pegawai dalam menit dari waktu masuknya.
kemarin sehabis baca2 postingan mas saya coba2 buat formula seperti ini :
A1 =>> waktu acuan (7:30)
A2 =>> waktu masuk
A3 =>> =IF(A2<=TIME(7,30,0),0,A2-A1)
jadi setelah saya coba memasukan nilai di sel A2, misal 8:00 maka di sel A3 akan terisi nilai 0:30 demikian juga ketika saya masukan nilai2 lain maka nilai di A3 akan sesuai.
terima kasih
Allow cara mencari rumus check in Dan check out gimana ? Saya kurang faham
maaf gan saya mau nanya…
kalo format date ato time jadi bentuk angka (41899) dan time jadi bentuk 0.899899999
merubah ke bntuk normalnya gimna..
saya coba ubah date sama time tapi masih ttp?
Hmm.. Saya masih belum paham kondisi sebenarnya, bagaimana angka ini muncul, apakah dari formula, ataukah dari mengetikkan tanggal kemudian langsung berubah sendiri, atau mungkin hasil copy/extract dari format lain?
tapi mungkin salah satu kemungkinan ini bisa dicoba:
-Apakah sudah mencoba mengubah format cell dengan cara klik kanan pada cell ybs kemudian pilih menu “format cell”?
-Bila angka tersebut memiliki tanda aposthrope ‘ di depannya, maka pastikan tanda itu terhapus (convert to numbers)
Semoga membantu 🙂
malam pak..mau tanya gimna caranya bila membuat daftar hadir bertambah saat tanggal di ubah untuk daftar hadir..maksih
maaf bu lilik, saya kurang paham dengan kondisi yang dibutuhkan
maksudnya tanggal diubah itu apakah diubah manual dari cell-nya atau bagaimana?
kalau contoh yang saya yang di artikel atas itu daftarnya sudah tersedia sebelumnya, dan tinggal membandingkan jam absen pada saat masuk/pulang dengan aturan jam kerja.
kalau untuk menambah otomatis setiap pergantian tanggal mungkin sebaiknya menggunakan macro/vba di excel atau yang lebih sederhana di access 🙂
Mas. Mohon bantuannya.. sy natik data absensi dari mesin fingerprint..
Trus sy ilah di excel..
Nah,
Kalau dalam 1 hari ada pegawai yg lupa absen datang/pulang, gimana cara bikin rumusnya agar jam hadir dan jam pulangnya itu sama? Maksud sy jgn sampai ada data yg kosong..
Kalau dia lupa absen dtg, maka jam dtgnya disamakan dgn jam pulang. Begitu juga sebaliknya. Gmn caranya ya mas?
sepertinya harus menggunakan kolom tambahan untuk menampung formula yang mengecek apakah nilai kolom kedatangan ada isinya atau tidak.
misalnya di cell A3 diisi waktu kedatangan dan A4 diisi waktu pulang,
kemudian di cell A5 kita isi dengan formula untuk mengecek kedatangan seperti berikut:
dan di cell A6 diisi dengan formula untuk mengecek waktu pulang seperti berikut:
nah, untuk proses selanjutnya seperti mendapatkan selisih waktu pulang dan datang atau yang lain bisa merujuk ke cell (atau kolom bila sudah diterapkan ke seluruh baris dalam kolom tersebut) A5 dan A6.
kita juga bisa menggunakan cara lain yang lebih elegan, tanpa perlu tambahan kolom baru untuk pengecekan, yaitu dengan menggunakan VBA Excel, jadi kita bisa menambahkan tombol yang bila diklik akan memeriksa nilai dari suatu cell (misal kedatangan) bila kosong maka akan direplace dengan nilai dari cell lain (waktu pulang), demikian pula sebaliknya.
untuk cara sederhana menggunakan VBA Excel, mungkin nanti akan coba saya tulis kalau sudah agak senggang.. 😀 atau coba saja googling dengan keyword vba excel.
kalau mau menghitung selisih jam masuk dan jam terlambat bagaimana ya? lalu disandingkan dgn potongan penerimaan. misal, jika terlambat 1-30 menit dipotong 5000, 31-60 menit dipotong 7000, 61-90 menit dipotong 8000 dan >91 menit dipotong 10000
kalo pakai fungsi IF bagaimana, kalo pakai VLOOKUP bagaimana langkahnya?
trus kalo pakai vba excel bagaimana scriptnya?
Terima kasih
pak anang, untuk tipe data time di excel sebenarnya bisa langsung dilakukan operasi pengurangan matematis biasa.
misalnya pada cell A2 terdapat jam kedatangan, maka untuk mencari selisih waktu keterlambatan cukup dengan menguranginya dengan jam kerja contohnya seperti ini untuk mendapatkan selisih keterlambatannya:
tapi formula di atas bisa mengakibatkan error bila jam kedatangan di bawah jam 7:30. maka formulanya bisa dimodifikasi dengan kondisi IF seperti berikut:
nah, untuk mendapatkan jumlah potongan seperti syarat di atas, maka bisa dengan formula berikut
formula di atas menyaring yang tidak terlambat untuk potongan 0 dan yang terlambat sampai dengan jam 8:00 (terlambat 30 menit) untuk potongan 5000. lalu bagaimana denga potongan yang lain? formula di atas memang sengaja saya singkat supaya gampang dimengerti, atau sebenernya biar gampang nulisnya.. :p
tapi karena saya iseng ya saya tulis juga ajalah kondisi IF-nya yang lengkap jadi seperti ini
(maap ini jawabannya formula minded) 😀 untuk yang versi vlookupnya kayaknya menurut saya jadi tidak efisien, karena pengecekannya berdasarkan match atau tidaknya jam kedatangan dengan waktu tertentu. tapi entah kalau ada ide lain dengan vlookup.. 🙂
untuk yang dengan VBA sebenarnya juga bisa, bahkan bisa lebih fleksibel karena tidak perlu copy paste formulanya ke semua cell yang harus terisi,
tapi kayaknya nanti saya buat di postingan baru aja deh biar ga tabrak2an sama topik yang diposting di sini.. 🙂
betewe, terima kasih atas kunjungannya pak anang.. 🙂
mksih gan atas pencerahannya, maju terus…bravoo
MAS, mau nanya bagaimana membuat tabel absensi sekaligus gaji karyawan di excel dengan kondisi dan ketentuan sebagai berikut
hari senin – jum’at
shift 1 jam masuk jam 7:00 sampai jam 15:00
shift 2 jam masuk jam 15:00 sampai 21:30
dengan toleransi keterlambatan absen masuk 15 menit
hari sabtu
shift 1 masuk jam 7:00 sampai jam 13:00 termasuk lembur wajib 1 jam
shift 2 masuk jam 13:00 sampai jam 18:00 termasuk lembur wajib 1/2 jam
dengan toleransi keterlambatan absen masuk 15 menit
jika karyawan masuk lebih dari 15 menit gaji di potong setiap menitnya sesuai gajinya, (contoh : gaji karyawan =50rb keterlmbatan 20menit, maka gaji karyawan dibagi Jam untuk menghasilkan gaji perjamnya, atau di bagi menit untuk mengetahui gaji karyawan setiap menitnya )
GAJI POKOK : 50.000 / HARI
upah lembur karyawan SELAIN HARI MINGGU /jam : 7.000 rb
UPAH LEMBUR KARYAWAN HARI MINGGU : 10.000 /JAM
maaf pak jion, sepertinya untuk kondisi yang dimaksud pak jion ini sepertinya akan jadi complicated kalau dibuat dalam bentuk formula biasa. pada dasarnya mungkin bisa, tapi akan lebih panjang (pake banget) formulanya dibandingkan contoh lain di atas. jadi saya sarankan lebih baik menggunakan syntax vba saja agar lebih mudah dikelola
Alhamdulillah, Terimakasih ilmunya Mas. bermanfaat sekali. akhirnya bisa juga bikin Absen
mas, pada prinsipnya hampir sama dengan kasus punya mas. cuma ada sedikit perbedaan, yaitu kondisinya jam masuk itu 8.00 maka jam pulang minimal 16.30. namun diperbolehkan jika masuk kurang 30 menit dari yang ditentukan, yaitu 7.30, maka boleh pulang minimal 16.00 (tapi kalopun datang lebih awal, yaitu kurang dari jam 7.30, misal 6.00 maka tetep aja harus balek jam 16.00); kemudian ada kompensasi keterlambatan 30 menit dari jam normal, yaitu 8.30 maka pulangnya minimal adalah jam 17.00. berarti jika orang masuk diatas 8.30 maka dia telat. dan begitu juga pulangnya, pokoknya dia harus ada itu 8jam 30 menit. dengan memperhatikan ketentuan jam normal adalah 8.00, dengan kompensasi 30 menit sebelum dan 30 menit sesudah. makasih mas
Selamat malam Mas, maaf mau nanya, saya mau mengitung pemakaian lapangan dengan menggunakan rumus exel. sebagai gambaran, tarif sewa lapangan dikelompokkan berdasarkan waktu bermain. saya ada kesulitan untuk membuat kode pengelompokan waktu agar lebih mudah dalam perhitungannya. Misalnya jam 60:00 – 10:00 dengan kode P (pagi), jam 10:00 – 16:00 dengan kode S (siang) dan 16:00 – 22:00 dengan kode M (malam). Bisa mohon bantuannya? Terima kasih
pak triyadi, saya kurang paham dengan maksud permasalahannya, kalau cuma memberi kode “p”, “s”, atau “m” kan bisa pake formula “IF” nanti dimasukkan kondisi lebih kecil dari jam tertentu maka isinya “p” dan seterusnya. apa itu yang dimaksud? mungkin bisa diperjelas dengan kolom apa mau diisi apa.. 🙂
Mas saya mau menghitung keterlambatan karyawan, tpi menggunakan rumus diatas gak bisa 2. minta tlong dibantu ya. data absen nya seperti contih diatas
nnnggg… saya agak kurang paham nih.. maksudnya gak bisanya gimana ya? rumus yang dicoba yang mana? mungkin perlu diperiksa juga format isi cell-nya, mungkin emang beda format? 🙂
Mas Saya punya kasus soal waktu juga nih.
Jam kerja senin-kamis 7:30-16:40 Jumat 7:30-17:10 (durasi jam kerja 9:10). Saya mau menghitung durasi lembur, lalu saya jumlahkan durasi lembur selama 1 bulan. Namun seandainya saya masuk jam 8:30-16:40 hasilnya akan minus (misalnya : -1:00) dan akan mengurangi durasi lembur yang saya jumlahkan selama 1 bulan, padahal itu jumlah jam kerjanya yang minus, bukan jam lemburnya.
Nah, bagaimana caranya agar apabila hasilnya minus seperti itu, durasi lemburnya tetap 0:00 dan apabila masuknya lewat dari jam7:30, meskipun sudah lewat 16:40/17:10, durasi lembur tetap 0:00.
Kalau masnya bingung, berikut saya kirimkan file-nya. (Contoh kasu cell F16 & F17)
https://www.dropbox.com/s/6sntgdc51exwixm/Absen.xls?dl=0
Mas..saya mau tanya formula lembur. Jadi di kantor saya jam masuk 08.00, jam keluar 17.00. Untuk jam lembur dimulai dari jam 18.00. Maksimal waktu lembur 3 jam perhari, jadi walaupun kita pulang lewat dari jam 21.00 maka akan tetap tertera 3 jam pada kolom Lembur. Itu formulanya seperti apa ya mas? Mohon pencerahannya mas.
Terima kasih.
Mungkin Saya bisa bantu. Apa seperti ini yang diminta…
selamat malam mas,
saya mau tanya apabila dalam satu cell ada dua absensi masuk dan keluar gimana ya cara untuk misah nya.
saya sudah coba fungsi di atas tapi tidak work
terimakasih
maaf pak fatur, sepertinya saya belum paham situasinya, di contoh saya kan ada penanda untuk cell timestamp ini apakah sebagai “check in” atau “check out” mungkin bisa disesuaikan dengan penanda yang ada.
Saran sementara saya mungkin bisa dibuat fungsi yang secara bertahap mengenali apakah waktu yang tertera di cell tersebut adalah waktu datang atau waktu pulang, caranya bisa mirip seperti ketika kita ingin mengenali apakah ada keterlambatan pada waktu kedatangan.
Selamat sore Bpk, saya sangat berterima kasih atas informasi yang sangat berguna, benar benar sangat berguna soalnya saya juga sedang mengerjakan rekapan absensi TERIMA KASIH
Selamat Siang, mohon bantuannya
parkir star finish durasi Target
—————————————————————–
P 5:00 5:20 0:20 SUKSES
P 5:00 5:21 0:21 GAGAL
R 5:00 5:30 0:30 SUKSES
R 5:00 5:31 0:31 GAGAL
Mohon dibantu untuk rumus di Kolom Target
– Jika durasi 21 menit parkir “P” maka kolom di target hasilnya GAGAL
– Jika durasi 31 menit parkir “R” maka kolom di target hasilnya GAGAL
Terima kasih atas perhatian dan bantuannya
Salam
Ahmad Ghazali
ahmadghazali777@gmail.com
Selamat Siang, mohon bantuannya
parkir star finish durasi Target
—————————————————————–
P 5:00 5:20 0:20 SUKSES
P 5:00 5:21 0:21 GAGAL
R 5:00 5:30 0:30 SUKSES
R 5:00 5:31 0:31 GAGAL
Mohon dibantu untuk rumus di Kolom Target
– Jika durasi 21 menit parkir “P” maka kolom di target hasilnya GAGAL
– Jika durasi 31 menit parkir “R” maka kolom di target hasilnya GAGAL
Terima kasih atas perhatian dan bantuannya
Salam
Ahmad Ghazali
ahmadghazali777@gmail.com
pak ahmad ghazali, berdasarkan keteranga yang ada, dan dengan asumsi parkir di cell “A2”, dan durasi di cell “D2″, mungkin bisa dicoba rumus seperti ini pada cell target:
=IF(OR((AND(A2=”p”,D2>=TIME(0,21,0))),(AND(A2=”r”,D2>=TIME(0,31,0)))),”sukses”,”gagal”)
bapak mohon bantuannya
waktu kedatangan
1. <7.30= tidak terlambat
2. 7.31 sd 8.00 jika tidak mengganti waktu pulang 16.00 dikenakan telat 1 tapi kalau mengganti waktu pulang sesuai menit toleransi keterlambatan 30 menit tidak telat
3. 8.01 sd 8.30 telat 2
4. 8.31 sd 9.00 telat 3
5. <= 9.01 telat 4
mohon rumusnya
Siang,
Mau tanya. kalo mau menghitung jam kehadiran = dia hadir gimana yah Mas.
Contoh:
Jujujuarni
02-Mar-20
06:42 ->Scan In
15:06 -> Scan Out
Jujujuarni
03-Mar-20
06:41 -> Scan in
15:39 ->Scan Out
dari kehadiran itu saya mau hitung dia hadir 1 hri kerja.
rumusnya bagaimana yah?
saya pakai rumus ini ternyata tidak bisa.
=COUNT(B3:Q3)
Bpk, met sore,saya mo nanya :
kolom clock ini isinya harus format time yaitu misnya : “08:03”. mesti sperti ini. Jadi bila kolom clock ini ketika diedit diisi bukan format time misnya : “1” or “2” , “s”, “;” , “,” hasil menjadi kosong (“”). Gimana rumusnya spaya kolom itu harus mutlak format time only.
Terima kasih atas help nya.
Rayu Salim
Allow…. Saya ikuti formula ini =IF(F21=”Check In”;(IF((TIME(LEFT(D21;2);RIGHT(D21;2);0))>TIME(7;30;0);”status terlambat”;”status tidak terlambat”)); (IF((TIME(LEFT(D21;2);RIGHT(D21;2);0))<TIME(16;0;0);”status pulang cepat”;”status tidak pulang cepat”)))
Kok keluarnya error y…
Maaf new be
Allow cara mencari rumus check in Dan check out gimana ? Saya kurang faham