Apakah ada cara untuk membuat cap waktu di Google Spreadsheet?

31

Saya menggunakan PSPad sebagai editor teks, yang memungkinkan Anda untuk menekan Alt+ Duntuk memasukkan stempel waktu, misalnya:

2010-07-17 23:45:44

Apakah ada cara untuk melakukan ini di Google Spreadsheet?

Edward Tanguay
sumber
4
Ini akan sangat membantu dalam menggunakan dokumen Google sebagai sesuatu seperti log teknik. +1.
Thomas Owens
1
ya, saya menggunakan google docs sebagai sumber data eksternal untuk situs web dan ingin dapat mencatat waktu karena alasan ini
Edward Tanguay
1
@EdwardTanguay jika Anda kebetulan lewat .. Anda harus mengubah jawaban yang benar untuk yang paling banyak dipilih :)
Lipis
1
Pembaca disarankan untuk menggunakan jawaban terbaik , meskipun saat ini tidak di atas.

Jawaban:

8

Saya menggunakan Autohotkey untuk melakukan fungsi ini.

AutoHotKey adalah aplikasi dan bahasa scripting Windows.

Kode yang saya gunakan di bawah ini, akan mudah dimodifikasi untuk memasukkan waktu dan mengubah garis miring menjadi tanda hubung jika itu yang Anda inginkan.

+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return
akan diumumkan
sumber
ya, autohotkey adalah teman saya, aneh saya lupa tentang ini untuk ini, saya menggunakan% A_YYYY% -% A_MM% -% A_DD%% A_Jam%:% A_Min%:% A_Sec% dan berfungsi dengan baik, terima kasih!
Edward Tanguay
Jangan khawatir, senang saya ingatkan Anda :)
diumumkan
39

Google Sheets mendukung pintasan keyboard berikut:

  • Ctrl+ Shift+ :adalah penekanan tombol untuk memasukkan waktu.

  • Ctrl+ ;adalah penekanan tombol untuk memasukkan tanggal.

  • Ctrl+ Alt+ Shift+ :adalah penekanan tombol untuk memasukkan tanggal dan waktu.

Lihat Akselerator keyboard, mnemonik, dan pintasan untuk detail lebih lanjut.

Danniogirl
sumber
4
Ini mirip dengan Microsoft Excel, namun, tidak seperti Excel, Anda sepertinya tidak bisa mengikuti satu pintasan dengan yang lain untuk menghasilkan stempel waktu yang lengkap. Pintasan di Google Documents hanya berfungsi ketika seluruh sel dipilih, bukan saat sedang diedit, jadi Anda hanya bisa mendapatkan tanggal ATAU waktu dengan metode ini, bukan keduanya.
MrWhite
3
Bagus! Catatan, ini hanya berfungsi untuk Spreadsheets, bukan Documents.
jimmyorr
1
@ Rubén Sekarang ada satu untuk keduanya! (h / t kolen dan Cameron Crest )
Tidak bekerja di linux firefox :-( adakah cara untuk mendapatkan fungsi ini melalui menu ?? !!
Philippe Gachoud
13

Saya membuat skrip kecil yang mengubah string literal "_now" menjadi datetime saat ini -


function onEdit(e) {
  if (e.range.getValue() == "_now") {
    e.range.setValue(new Date());
  }
}

Saya merasa cukup mudah untuk mengetik _nowdan mengubahnya ke nilai datetime saat ini.

Lihat https://developers.google.com/apps-script/quickstart/macros dan https://developers.google.com/apps-script/understanding_events untuk info lebih lanjut tentang cara menambahkan ini ke Google Spreadsheet Anda

0cd
sumber
1
Power to Google Apps Script
Jacob Jan Tuinstra
4
Ini harus menjadi jawaban jika mempertimbangkan semua platform bukan hanya untuk windows.
Robert
@ Robert, Bukankah webapps.stackexchange.com/a/24692/10579 jawaban yang lebih baik?
Pacerier
@ Peracer Saya tidak berpikir demikian karena jalan pintas ini hanya menambah tanggal atau waktu. Bukan tanggal / waktu yang diminta OP. Baca komentar yang dibuat di tautan yang Anda berikan.
Jacob Jan Tuinstra
Format cap waktu yang dibuat dengan skrip ini dibahas di sini .
7

Anda dapat memasukkan bookmarklet dengan lokasi ini:

javascript:var thetime=new Date();var txtNode=document.createTextNode((thetime.getMonth()+1)+'/'+thetime.getDate()+'/'+thetime.getFullYear()+' '+thetime.getHours()+':'+thetime.getMinutes()+':'+thetime.getSeconds()); var myInputNode=document.getElementsByClassName('cell-input')[1]; if (myInputNode.hasChildNodes()) {  myInputNode.replaceChild(txtNode, myInputNode.childNodes[0]); } else { myInputNode.appendChild(txtNode); }; void(0);

lalu edit sel dan klik bookmarklet.

Ben Johnson
sumber
Bagaimana Anda meletakkan bookmarklet?
Ruby
Ruby - Anda dapat menyeret tombol yang saya buat di sini ke bilah bookmark Anda.
SelfPublish.org
2
  1. Di sel terdekat, atau di dalam panel beku, masukan =today()ke dalam sel untuk mendapatkan tanggal saat ini.
  2. Salin sel, dan kemudian gunakan (Tempel khusus → Tempel nilai saja) dari menu edit, untuk mendapatkan tanggal dan waktu statis, pada saat Anda menempelkan nilai dalam sel yang Anda inginkan cap tanggal.
Tristan Parlette
sumber
Secara setara, gunakan Ctrl-C diikuti oleh Ctrl-Shift-V (tanpa mencapai menu). Pendekatan yang sama dapat digunakan =now()untuk mendapatkan tanggal dan waktu dalam sel yang sama: ini bisa dibilang cara termudah untuk melakukan ini tanpa skrip.
2

Rumus untuk saat tanggal-waktu =now(). Ini dapat digunakan untuk membuat cap waktu statis sebagai berikut:

  1. Masukkan =NOW()dalam sel
  2. Salin nilai ini dengan CtrlC
  3. Rekatkan ke sel yang sama dengan CtrlShiftV (atau setara dengan "tempel teks saja" di platform lain)
Jennifer
sumber
2
Tapi itu bukan cap waktu, bukan? Itu hanya menunjukkan tanggal / waktu saat ini ketika spread sheet dibuka, bukan?
ale
1

Google Sheets tidak mendukungnya, tetapi Anda dapat mencoba solusi lain tanpa aplikasi eksternal:

  1. Masukkan komentar ( Ctrl+ M)
  2. Salin TimeStamp dari sana ( Ctrl+ Catau Ctrl+ X)
  3. Hapus komentar (Klik kanan> Hapus)
  4. Rekatkan TimeStamp ( Ctrl+ V)

(Jika Anda menggunakan MacOS, gunakan Cmdbukan Ctrluntuk Copy/Cut/Paste, tetapi Ctrl+ Muntuk menyisipkan komentar, karena Cmd+ Mmeminimalkan jendela.)

Lipis
sumber
1

Saya juga membuat skrip untuk ini, dan saya ingin format yang tidak tersedia di cap waktu default (seperti dalam =TODAY()atau =NOW()).

Itu juga meraih zona waktu berdasarkan sesi saat ini (yang diatur dalam preferensi Sheet).

function _NOW(input)
{
  // for formatting, see:
  // https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
  var timestamp_format = "yyyy-MM-dd hh:MM a"; // Timestamp Format eg: 2019-04-11 12:04 PM
  var timezone = Session.getScriptTimeZone();
  var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
  return date;
}

Menggunakannya mudah:

=_NOW()

Untuk memperjelas: Saya melakukan pemformatan tanggal secara manual karena pemformatan tanggal kustom di Google Sheets adalah tumpukan sampah yang menyala-nyala (tidak ada cara untuk mengatur format kustom sebagai default, tidak ada cara untuk mengubah urutan elemen tanggal / waktu tanpa menghapus semuanya) pertama dan menambahkan setiap bagian satu per satu).

Kyle Falconer
sumber
Ini berakhir menjadi waktu yang sama untuk setiap doa
nhed
@nhed setiap kali skrip ini dipanggil (seperti ketika Anda membuka spreadsheet) ia akan mengembalikan tanggal saat ini dalam format itu sebagai string. Jika Anda ingin cap waktu itu permanen, tidak pernah diperbarui, Anda dapat menempatkan ini di sel dan menyalin nilai dari sel itu, lalu tempel di tempat yang Anda inginkan.
Kyle Falconer
Saya menambahkan skrip pada browser desktop saya dan spreadsheet sudah terbuka di ponsel saya ... masih menghasilkan stempel waktu yang sama dengan yang ada di desktop saya ... yang mengharuskan saya menutup dan membuka kembali untuk menambahkan titik data. Kelihatannya praktis ... Saya menggabungkan pemformatan Anda dengan fungsi berbeda di atas untuk mendapatkan sesuatu yang bekerja untuk saya
nhed
0

Anda dapat merujuk tutorial ini , juga berisi video. Dalam kode skrip, ubah

var timestamp_format = "MM-dd-yyyy"; // Timestamp Format.

Secara default hanya memberi Anda tanggal, ubah kode di bawah ini untuk mendapatkan waktu.

var timestamp_format = "MM-dd-yyyy hh:mm:ss"; // Timestamp Format.

Apa ini yang kamu cari ? Saya mencobanya dan berfungsi dengan baik.

Arpan
sumber
0

tanguay, saya baru saja menguji ini =IF(A2<>"",NOW(),""). Jika A2 memiliki nilai maka ia memasuki stempel waktu. Jika A2 kosong maka stempel waktu tidak dimasukkan di kolom stempel waktu.

Howard Riminton
sumber
-1

=if(len(A2)>0;if(B2<>"";B2;now());"")

Di Pengaturan, ubah solusi rangkaian ke 1, dan itu akan berfungsi tanpa JavaScript

Vratislav Novák
sumber