Cara Pakai TODAY dan NOW di Spreadsheet
Kamu pernah kebingungan buat ngatur deadline tugas, ngitung umur, atau bikin laporan harian di spreadsheet? Dua fungsi yang bakal sering kamu pakai adalah `TODAY()` dan `NOW()`.
Fungsinya kelihatan simpel — tapi kalau dipakai jago, bisa bikin spreadsheet kamu jadi otomatis, rapi, dan gak bikin pusing.
Artikel ini bakal kupas tuntas cara pakai `TODAY` dan `NOW` di Excel dan Google Sheets: dari dasar, contoh nyata (tabel siap copy-paste), trik format, menghitung selisih waktu, masalah umum, sampai cara bikin timestamp statis (yang nggak berubah).
Gaya santai, cocok buat anak remaja — paragraf pendek, banyak sub-judul dan contoh supaya gampang dipahami.
Daftar isi cepat
- Apa itu `TODAY()` dan `NOW()`
- Sintaks & perilaku dasar
- Mengerti serial number tanggal/waktu
- Format tanggal & waktu (pakai `TEXT` dan Format Cell)
- Contoh tabel: hitung hari tersisa (deadline)
- Contoh tabel: expiry subscription (pakai `EDATE`)
- Timestamp dinamis vs statis (shortcut, script)
- Menghitung durasi (hari, jam, menit)
- Pakai `TODAY()`/`NOW()` dengan fungsi lain (`IF`, `DATEDIF`, `NETWORKDAYS`, `SUMIFS`)
- Volatility: kenapa `NOW()` berubah sendiri dan cara atasi
- Shortcut & trik untuk Excel/Google Sheets
- Script contoh (Apps Script & VBA) untuk timestamp otomatis
- Conditional formatting based on `TODAY()`
- Troubleshooting & tips praktis
- Checklist & langkah praktek cepat
Apa itu `TODAY()` dan `NOW()`?
- `=TODAY()` → mengembalikan tanggal hari ini (tanpa waktu).
- `=NOW()` → mengembalikan tanggal + waktu saat ini (timestamp dinamis).
Keduanya tidak memerlukan argumen: tulis `=TODAY()` atau `=NOW()` di sel, tekan Enter, dan spreadsheet akan tampilkan nilai tanggal/waktu.
Catatan penting: keduanya adalah fungsi volatile. Artinya nilai akan diperbarui saat spreadsheet dihitung ulang (open, edit, recalculation). Ini bagus kalau kamu mau data selaras dengan hari ini, tapi jadi masalah kalau kamu butuh waktu yang tetap (statis).
Sintaks & contoh cepat
- Excel / Google Sheets:
text =TODAY() =NOW()
Coba di sel kosong:
- A1: `=TODAY()` → misal menampilkan `2025-10-06`
- A2: `=NOW()` → misal menampilkan `2025-10-06 14:23:10`
Kalau kamu lihat angka seperti `45218.60`, itu berarti format sel belum diatur ke Date/DateTime. Ganti format sel agar tampil sebagai tanggal/waktu.
Mengapa tanggal & waktu disimpan sebagai angka?
Di Excel/Sheets, tanggal/waktu adalah serial number:
- Bagian integer = jumlah hari sejak epoch (tanggal awal spreadsheet).
- Bagian desimal = fraksi hari (waktu). Contoh: `0.5 = 12:00 siang`, `0.25 = 06:00`.
Karena itu kamu bisa:
- Menambah hari: `=TODAY() + 7` → 7 hari ke depan.
- Menambah jam: `=NOW() + 1/24` → 1 jam ke depan.
- Kurangi tanggal: `=TODAY() - A2` → jumlah hari sejak A2.
Pemahaman ini penting biar kamu bisa menghitung selisih waktu secara matematika.
Format tanggal & waktu — biar tampilannya cakep
Kamu bisa ubah tampilan pakai:
- Format Cell (Excel) atau Format → Number (Google Sheets) — recommended.
- Atau pakai fungsi `TEXT()` untuk output berbentuk teks.
Beberapa contoh `TEXT()`:
excel =TEXT(TODAY(), "dd mmm yyyy") // 06 Okt 2025 =TEXT(NOW(), "dddd, dd mmmm yyyy hh:mm") // Senin, 06 Oktober 2025 14:23 =TEXT(NOW(), "hh:mm:ss AM/PM") // 02:23:10 PM
Format kode umum:
- `d`/`dd` = hari (6 → 06)
- `ddd` = nama hari singkat (Sen)
- `dddd` = nama hari penuh (Senin)
- `m`/`mm` = bulan angka (1 → 01)
- `mmm` = nama bulan singkat (Okt)
- `mmmm` = nama bulan penuh (Oktober)
- `yy`/`yyyy` = tahun
- `h`/`hh` = jam
- `m`/`mm` (pada waktu) = menit — hati-hati, `m` bisa bulan saat format tanggal
- `s`/`ss` = detik
- `AM/PM` = menampilkan jam 12-hr
Tips: pakai format sel agar rumus tetap numeric (bisa dipakai hitung lagi). `TEXT()` mengubah menjadi teks, jadi gak bisa langsung dipakai operasi matematika.
Contoh nyata 1 — Tabel Deadline & Countdown
Salin contoh ini ke sheet:
| No | Tugas | Deadline | Hari Tersisa | Status |
|---|---|---|---|---|
| 1 | Laporan | 2025-10-12 | ||
| 2 | Presentasi | 2025-10-08 | ||
| 3 | Quiz | 2025-10-20 |
Rumus Hari Tersisa (E2):
excel = C2 - TODAY()
Rumus Status (D2):
excel =IF(E2<0,"Telat",IF(E2=0,"Hari Ini",IF(E2<=3,"Segera","Aman")))
Penjelasan:
- `C2 - TODAY()` menghasilkan bilangan hari (positif = sisa, negatif = lewat).
- `Status` memberi label ramah: Telat / Hari Ini / Segera / Aman.
Tambahkan Conditional Formatting:
- Telat → merah: rule `=$D2="Telat"`.
- Segera → kuning: rule `=$D2="Segera"`.
Praktis: buka file tiap hari — status akan update otomatis.
Contoh nyata 2 — Expiry Subscription (pakai `EDATE`)
Tabel:
| User | Mulai | Durasi (bulan) | Expiry | Status |
|---|---|---|---|---|
| Ani | 2025-01-15 | 6 | ||
| Budi | 2025-06-03 | 12 |
Rumus Expiry (D2):
excel =EDATE(B2, C2)
Rumus Status (E2):
excel =IF(D2 < TODAY(), "Expired", "Active")
Kenapa EDATE? karena EDATE menambah bulan secara akurat (meng-handle bulan beragam hari dan leap years). Jangan gunakan `+30*n` untuk bulan karena bisa error.
Timestamp: dinamis vs statis
Timestamp dinamis
`=NOW()` akan selalu update. Gunakan kalau kamu mau waktu real-time di dashboard atau saat sheet dihitung ulang.
Contoh:
excel =NOW()
Tapi ingat: tiap recalc, `NOW()` berubah.
Timestamp statis (manual)
Kalau kamu mau catatan waktu tetap (mis. waktu submit), jangan pakai `NOW()` langsung. Ada beberapa cara:
Cara cepat Excel — shortcut:
- Tanggal sekarang (statis): `Ctrl + ;`
- Waktu sekarang (statis): `Ctrl + Shift + ;`
- Tanggal + waktu: tekan `Ctrl+;` lalu spasi lalu `Ctrl+Shift+;`
Cara Google Sheets — menu:
- `Insert → Date` atau `Insert → Time` (ini statis).
- Shortcut `Ctrl+;` tidak konsisten di Sheets, jadi gunakan menu.
Cara statis otomatis — script (lihat bagian Apps Script / VBA di bawah)
Script bisa memasukkan nilai waktu sebagai value, bukan formula. Jadi tidak berubah.
Contoh nyata 3 — Absensi / Log entry (timestamp statis otomatis)
Scenario: Saat kolom A diisi (nama), kolom B otomatis berisi waktu masuk (statis).
Google Sheets — Apps Script
Buka `Extensions → Apps Script`, paste:
javascript
function onEdit(e) {
var sh = e.range.getSheet();
if (sh.getName() !== 'Sheet1') return;
var col = e.range.getColumn();
if (col === 1) {
var row = e.range.getRow();
var tsCell = sh.getRange(row, 2);
if (e.value) {
tsCell.setValue(new Date());
} else {
tsCell.clear();
}
}
}
Skrip ini menulis waktu sekarang (statis) ke kolom B saat pengguna memasukkan nilai di kolom A.
Excel — VBA (Worksheet_Change)
Buka `Alt+F11`, pilih sheet, paste:
vb
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ExitHandler
Application.EnableEvents = False
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Dim c As Range
For Each c In Intersect(Target, Range("A:A"))
If c.Value <> "" Then
c.Offset(0, 1).Value = Now
Else
c.Offset(0, 1).ClearContents
End If
Next c
End If
ExitHandler:
Application.EnableEvents = True
End Sub
Simpan file sebagai `.xlsm` (macro-enabled).
Menghitung durasi: hari, jam, menit, detik
Misal `Start` di A2, `End` di B2. Selisih dasar:
excel =B2 - A2 // hasil bilangannya dalam hari (mis: 1.5 = 1 hari 12 jam)
Konversi ke unit lain:
- Jam:
- Menit:
- Detik:
excel =(B2 - A2) * 24
excel =(B2 - A2) * 24 * 60
excel =(B2 - A2) * 24 * 60 * 60
Tampilkan durasi dalam format `d hh:mm:ss`:
excel =INT(B2-A2) & " hari " & TEXT(MOD(B2-A2,1), "hh:mm:ss")
Penjelasan:
- `INT` ambil bagian hari penuh.
- `MOD(...,1)` ambil sisa hari (jam/menit/detik), lalu format.
Menggabungkan `TODAY()`/`NOW()` dengan fungsi lain — contoh nyata
Countdown tugas (pake `IF`)
excel =IF(C2 < TODAY(), "Telat", CONCAT(C2 - TODAY(), " hari lagi"))
Hitung transaksi hari ini (timestamp di kolom DateTime)
Kalau transaksi (B) ada jam, gunakan:
excel =SUMIFS(H2:H100, B2:B100, ">=" & TODAY(), B2:B100, "<" & TODAY()+1)
Ini aman karena mencakup semua waktu pada tanggal hari ini.
Kirim reminder jika tinggal 3 hari
excel =IF(AND(C2 - TODAY() > 0, C2 - TODAY() <= 3), "Kirim Reminder", "")
Hapus data older than 30 days (untuk cleanup)
excel =IF(A2 < TODAY() - 30, "Delete", "")
DATEDIF vs manual: kapan pakai DATEDIF?
`DATEDIF(start_date, end_date, unit)` berguna buat hitung selisih dalam tahun/bulan/hari. Catatan: DATEDIF ada di Excel dan Google Sheets meski dokumentasi Excel agak tersembunyi.
Contoh:
excel =DATEDIF(A2, TODAY(), "Y") // umur dalam tahun penuh =DATEDIF(A2, TODAY(), "YM") // sisa bulan setelah hitung tahun =DATEDIF(A2, TODAY(), "MD") // sisa hari setelah tahun/bulan
Output sering dipakai untuk format: `X tahun Y bulan Z hari`.
NETWORKDAYS — hitung hari kerja (libur disesuaikan)
`NETWORKDAYS(start, end, [holidays])` menghitung jumlah hari kerja (Senin–Jumat) di antara dua tanggal. Kalau mau exclude libur nasional, masukkan daftar tanggal libur di array/range.
Contoh:
excel =NETWORKDAYS(A2, B2) // default Senin–Jumat =NETWORKDAYS(A2, B2, HolidaysRange) // exclude custom holidays
Praktis untuk deadline kerja atau SLA.
Volatility: kenapa `NOW()` berubah sendiri? Cara atasi
`TODAY()` dan `NOW()` adalah volatile. Mereka recalculated setiap:
- workbook dibuka
- sheet di-recalc (F9 di Excel)
- perubahan di workbook yang memicu kalkulasi
Jika kamu mau nilai tetap:
- Manual: copy rumus → `Paste Special → Values`.
- Shortcut: gunakan `Ctrl+;` (Excel) untuk tanggal statis.
- Script: otomatis tulis nilai ke sel dengan Apps Script / VBA.
Jika kamu mau update harian tapi tidak real-time setiap menit:
- Buat snapshot harian via Apps Script (time-driven trigger) atau macro.
Time zone & locale: kenapa hasil berbeda antar komputer?
- Google Sheets: `File → Spreadsheet settings` → atur Locale dan Time zone.
- Excel: ikut system locale & time zone di OS.
- Perbedaan locale bisa merubah format tanggal (DD/MM/YYYY vs MM/DD/YYYY) dan nama bulan/hari.
Jika impor data dari sistem lain, periksa format teks (mis. `YYYYMMDD`) dan konversi pake `DATE()` atau `DATEVALUE()`:
excel =DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))
Shortcut cepat & tips kecil
- Excel: `Ctrl + ;` → tanggal; `Ctrl + Shift + ;` → waktu.
- Google Sheets: Insert → Date / Time (menu).
- `INT(NOW())` → bagian tanggal dari datetime (sama dengan `TODAY()` pada hasil).
- Tambah jam: `=NOW() + TIME(2,30,0)` → tambah 2 jam 30 menit.
- Cek jika sel adalah tanggal: `=ISNUMBER(A2)` → TRUE kalau valid date (karena tanggal adalah angka).
Conditional formatting dengan TODAY/NOW
Contoh: highlight row deadline yang lewat:
- Pilih range A2:D100.
- New rule → formula: `=$C2 < TODAY()` → format fill merah.
Contoh: highlight tugas yang deadline dalam 3 hari:
- Formula: `=AND($C2 >= TODAY(), $C2 <= TODAY()+3)` → fill kuning.
Contoh: transaksi hari ini (kolom tanggal+jam):
- Formula: `=INT($B2) = TODAY()` → highlight.
Script: snapshot harian otomatis (Apps Script)
Buat sheet bernama `DailySnapshot`. Apps Script:
javascript
function dailySnapshot() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName('DailySnapshot');
var lastRow = sh.getLastRow() + 1;
sh.getRange(lastRow, 1).setValue(new Date()); // simpan timestamp
// misal ambil total penjualan hari ini
var sales = ss.getSheetByName('Sales');
var data = sales.getRange(2,2, sales.getLastRow()-1, 8).getValues();
// hitung total hari ini dan tulis ke kolom lain...
}
Atur trigger `Triggers → Add Trigger → Time-driven → Day timer` supaya jalan setiap hari.
Script: timestamp otomatis Google Sheets (revisi lengkap)
Lebih lengkap: hanya tulis timestamp sekali, tidak overwrite kalau kolom A sudah diisi sebelumnya:
javascript
function onEdit(e) {
var sh = e.range.getSheet();
if (sh.getName() !== 'Sheet1') return;
var col = e.range.getColumn();
if (col === 1) {
var row = e.range.getRow();
var tsCell = sh.getRange(row,2);
if (e.value && tsCell.getValue() === "") {
tsCell.setValue(new Date());
}
}
}
Ini memastikan timestamp hanya dibuat pertama kali.
Troubleshooting umum & solusinya
Masalah: `TODAY()` tidak update otomatis saat hari berganti.
- Excel hanya update saat buka workbook atau recalc. Tekan `F9` untuk recalc. Untuk auto update, gunakan `Application.OnTime` di VBA untuk trigger recalc setiap hari.
Masalah: `NOW()` tampil angka besar (serial).
- Ubah format sel ke Date/Time.
Masalah: tanggal dianggap teks (ISNUMBER=FALSE).
- Gunakan `DATEVALUE()` atau parsing `LEFT/MID/RIGHT`.
Masalah: ingin jam lokal tapi mendapati selisih timezone di Google Sheets.
- Periksa `File → Spreadsheet settings` timezone. Pastikan script juga memakai timezone yang sama (`Script editor → Project settings`).
Masalah: data timestamp berubah karena `NOW()`—padahal ingin statis.
- Copy → Paste Values, atau gunakan script untuk menulis value.
Praktik langsung — latihan singkat (coba di sheet kamu)
- Buat tabel Deadline seperti contoh. Isi beberapa tanggal berbeda termasuk tanggal lalu.
- Terapkan rumus `C2 - TODAY()` untuk hari tersisa.
- Buat kolom Status pakai rumus IF seperti contoh.
- Tambah conditional formatting untuk highlight tugas "Telat" dan "Segera".
- Buat tabel subscription, pakai `EDATE` untuk expiry.
- Coba tambahkan kolom log: saat memasukkan nama di kolom A, tulis timestamp statis di kolom B (pakai shortcut atau script).
Best practice & checklist sebelum pakai di file kerja
- Gunakan `TODAY()`/`NOW()` jika kamu mau update otomatis; gunakan shortcut/script untuk catatan waktu statis.
- Format sel via Format → Number untuk menjaga tipe data numeric, jangan pakai `TEXT()` kecuali output memang mau teks.
- Jangan pakai `+30` untuk menambah bulan — gunakan `EDATE`.
- Untuk rentang tanggal termasuk jam, selalu gunakan `>= TODAY()` dan `< TODAY()+1` untuk mencakup semua waktu di hari itu.
- Untuk performance: batasi penggunaan fungsi volatile pada workbook besar. Banyak `NOW()`/`TODAY()` di ribuan sel bikin lemot.
Ringkasan cepat (cheat sheet)
- `TODAY()` → tanggal hari ini
- `NOW()` → tanggal + waktu sekarang
- `=A2 - TODAY()` → hitung selisih hari
- `=INT(NOW())` → ambil bagian tanggal dari NOW
- `=EDATE(start, months)` → tambah bulan akurat
- `=NETWORKDAYS(start, end, [holidays])` → hitung hari kerja
- `Ctrl+;` (Excel) → masukkan tanggal statis
- `Ctrl+Shift+;` (Excel) → masukkan waktu statis
Penutup singkat
Sekarang kamu udah pegang panduan lengkap buat pakai `TODAY()` dan `NOW()` di spreadsheet.
Mulai dari dasar sampai trik praktis buat tugas sekolah, laporan jualan, atau buat sistem reminder.
Langkah terbaik: praktek langsung. Bikin satu sheet kecil, salin tabel contoh di artikel ini, coba semua rumus satu-satu, atur format, lalu lihat apa yang berubah.
Setelah itu, kembangkan jadi template yang kamu pakai terus, misal tracker tugas atau ringkasan penjualan harian.
Selamat ngoprek , semoga spreadsheet kamu jadi lebih pinter dan nggak bikin pusing!

Gabung dalam percakapan