Mengelola jadwal kerja karyawan bukan sekadar membagi nama ke dalam tabel. Jika tidak diatur dengan baik, pembagian shift bisa menimbulkan rasa tidak adil, penumpukan shift tertentu, bahkan konflik internal. Karena itu, cara mengatur jadwal shift kerja otomatis di Excel menjadi solusi yang semakin banyak dicari oleh staf administrasi, HR, dan pengelola jadwal kerja.
Dengan memanfaatkan Excel, kita bisa menerapkan cara mengatur jadwal shift kerja otomatis yang rapi, adil, dan dapat dijalankan hanya dengan sekali klik. Artikel ini akan membahas dua metode praktis, yaitu menggunakan rumus Excel dan menggunakan VBA (Macro). Keduanya memiliki kelebihan masing-masing dan dapat dipilih sesuai kebutuhan. Contoh tabel hasil penggunaan juga akan dilampirkan agar pembahasan lebih kontekstual dan mudah dipahami.
Jika Anda ingin memahami cara mengatur jadwal shift kerja otomatis tanpa ribet dan minim kesalahan, artikel ini adalah panduan lengkapnya.
Gambaran Umum Jadwal Shift Kerja

Dalam contoh yang digunakan di atas, terdapat:
- 5 karyawan
- 5 hari kerja (Senin–Jumat)
- 3 shift per hari (Pagi, Siang, Malam)
Artinya, setiap hari harus diisi 3 orang yang berbeda, dan dalam satu minggu pembagian shift diusahakan seimbang. Struktur data seperti ini sangat cocok untuk mempraktikkan cara mengatur jadwal shift kerja otomatis di Excel.
Cara Mengatur Jadwal Shift Kerja Otomatis Menggunakan Rumus Excel
Metode pertama dalam cara mengatur jadwal shift kerja otomatis adalah menggunakan rumus Excel. Cara ini cocok untuk pengguna Excel modern yang ingin solusi cepat tanpa macro.
Rumus yang Digunakan
=TRANSPOSE(
TAKE(
SORTBY($B$3:$B$7;RANDARRAY(ROWS($B$3:$B$7)));
3
)
)
Dan berikut adalah hasil akhirnya:

Penjelasan Rumus Secara Sederhana
Agar konsep cara mengatur jadwal shift kerja otomatis ini mudah dipahami, berikut penjelasannya:
- RANDARRAY menghasilkan angka acak sebanyak jumlah karyawan
- SORTBY mengacak urutan nama berdasarkan angka acak tersebut
- TAKE mengambil 3 nama teratas untuk satu hari
- TRANSPOSE mengubah hasil vertikal menjadi horizontal agar sesuai dengan kolom shift
Dengan satu rumus ini, jadwal shift langsung terisi otomatis.
Kelebihan Menggunakan Rumus
- Tidak perlu VBA atau macro
- Mudah diterapkan oleh pemula
- Cocok untuk simulasi cepat
- Termasuk cara mengatur jadwal shift kerja otomatis paling sederhana
Kekurangan Menggunakan Rumus
- Hasil selalu berubah setiap kalkulasi
- Sulit dikunci permanen
- Tidak menjamin keadilan jangka panjang
- Tidak bisa mengontrol distribusi shift pagi/siang/malam
Karena keterbatasan ini, banyak pengguna Excel beralih ke metode kedua sebagai cara mengatur jadwal shift kerja otomatis yang lebih profesional, yaitu VBA.
Cara Mengatur Jadwal Shift Kerja Otomatis Menggunakan VBA Excel
Metode kedua adalah cara mengatur jadwal shift kerja otomatis menggunakan VBA (Visual Basic for Applications). Metode ini sangat cocok untuk jadwal kerja nyata karena hasilnya stabil, adil, dan dapat dijalankan sekali klik.
Kode VBA yang Digunakan
Kode berikut adalah versi terbaru yang sudah ditingkatkan agar pembagian shift benar-benar seimbang:
Sub Atur_Shift()
Dim karyawan As Variant
Dim pool() As String
Dim hasil(1 To 5, 1 To 3) As String
Dim i As Long, j As Long, k As Long
Dim idx As Long
Dim temp As String
Dim ulang As Boolean
Dim s1 As Long, s2 As Long, s3 As Long
' Ambil data karyawan
karyawan = Range("B3:B7").Value ' 5 karyawan
' 1. Buat pool (masing-masing 3x)
ReDim pool(1 To 15)
idx = 1
For i = 1 To 5
For j = 1 To 3
pool(idx) = karyawan(i, 1)
idx = idx + 1
Next j
Next i
Randomize
' 2. Acak sampai adil
Do
' Acak pool (Fisher-Yates)
For i = 15 To 2 Step -1
j = Int(Rnd * i) + 1
temp = pool(i)
pool(i) = pool(j)
pool(j) = temp
Next i
' Isi hasil
idx = 1
For i = 1 To 5
For j = 1 To 3
hasil(i, j) = pool(idx)
idx = idx + 1
Next j
Next i
ulang = False
' 2a. Cek dobel dalam 1 hari
For i = 1 To 5
If hasil(i, 1) = hasil(i, 2) _
Or hasil(i, 1) = hasil(i, 3) _
Or hasil(i, 2) = hasil(i, 3) Then
ulang = True
Exit For
End If
Next i
If ulang Then GoTo LanjutUlang
' 2b. Cek penumpukan shift
For k = 1 To 5
s1 = 0: s2 = 0: s3 = 0
For i = 1 To 5
If hasil(i, 1) = karyawan(k, 1) Then s1 = s1 + 1
If hasil(i, 2) = karyawan(k, 1) Then s2 = s2 + 1
If hasil(i, 3) = karyawan(k, 1) Then s3 = s3 + 1
Next i
If Abs(s1 - s2) > 1 _
Or Abs(s1 - s3) > 1 _
Or Abs(s2 - s3) > 1 Then
ulang = True
Exit For
End If
Next k
LanjutUlang:
Loop While ulang
' 3. Tulis ke sheet
Range("E3:G7").ClearContents
For i = 1 To 5
For j = 1 To 3
Cells(2 + i, 4 + j).Value = hasil(i, j)
Next j
Next i
MsgBox "Jadwal shift berhasil dibuat & seimbang", vbInformation
End Sub
Dan berikut adalah hasil akhirnya:

Langkah Menyimpan VBA di Modul Excel
Agar cara mengatur jadwal shift kerja otomatis dengan VBA bisa digunakan, ikuti langkah berikut:
- Buka file Excel
- Tekan Alt + F11
- Klik Insert → Module
- Tempelkan kode VBA di atas
- Tutup VBA Editor
- Tekan Alt + F8, pilih
Atur_Shift, lalu klik Run
Dalam satu klik, jadwal shift langsung tersusun otomatis dan seimbang.
Penjelasan Logika VBA
VBA ini menerapkan cara mengatur jadwal shift kerja otomatis dengan logika yang lebih maju:
- Pool karyawan dibuat dengan pengulangan 3 kali per orang
- Pool diacak menggunakan algoritma Fisher-Yates
- Hasil dibagi ke 5 hari × 3 shift
- Dicek agar tidak ada nama ganda dalam satu hari
- Dicek agar tidak ada penumpukan shift tertentu
- Jika tidak seimbang, sistem otomatis mengulang
Inilah yang membuat metode VBA menjadi cara mengatur jadwal shift kerja otomatis yang adil dan profesional.
Perbandingan Rumus vs VBA
Berikut adalah perbandingan antara menggunakan rumus dengan Macro VBA:
Kelebihan Rumus
- Cepat dan praktis
- Tanpa macro
- Cocok untuk belajar konsep dasar
Kekurangan Rumus
- Hasil tidak stabil
- Tidak bisa mengontrol distribusi shift
- Kurang adil untuk penggunaan nyata
Kelebihan VBA
- Jadwal stabil
- Sekali klik
- Distribusi shift seimbang
- Bisa dikembangkan lebih lanjut
Kekurangan VBA
- Perlu mengaktifkan macro
- Sedikit lebih teknis
Kesimpulan
Baik menggunakan rumus maupun VBA, keduanya adalah solusi cara mengatur jadwal shift kerja otomatis di Excel. Rumus cocok untuk kebutuhan sederhana, sedangkan VBA adalah pilihan terbaik untuk jadwal kerja nyata yang membutuhkan keadilan dan konsistensi.
Dengan VBA, Anda tidak hanya mendapatkan cara mengatur jadwal shift kerja otomatis, tetapi juga sistem pembagian yang seimbang, profesional, dan siap digunakan di lingkungan kerja sesungguhnya. Sekali klik, jadwal selesai tanpa ribet.
Jika Anda ingin, artikel ini juga bisa dikembangkan menjadi seri lanjutan seperti versi bulanan, rotasi minggu berikutnya, atau penyesuaian hari libur nasional.
Download Template Gratis
Bagi Anda yang ingin mencoba teknik ini secara langsung, kami telah menyiapkan template gratis yang dirancang khusus untuk membantu Anda mempraktikkan Cara Mengatur Jadwal Shift Kerja Otomatis dengan Adil dan Sekali Klik di Excel ini. File Excel bisa didownload melalui tautan berikut:
Atau juga jika ingin mempelajari langkah demi langkah secara visual, bisa kunjungi Youtube Channel Depot Excel. Di sana teman-teman akan melihat bagaimana rumusnya bekerja. Semoga bermanfaat!
—











0 Komentar