Tôi sử dụng PSPad làm trình chỉnh sửa văn bản, cho phép bạn nhấn Alt+ Dđể chèn dấu thời gian, ví dụ:
2010-07-17 23:45:44
Có cách nào để làm điều này trong Bảng tính Google không?
Tôi sử dụng PSPad làm trình chỉnh sửa văn bản, cho phép bạn nhấn Alt+ Dđể chèn dấu thời gian, ví dụ:
2010-07-17 23:45:44
Có cách nào để làm điều này trong Bảng tính Google không?
Câu trả lời:
Tôi sử dụng AutoHotKey để thực hiện chức năng này.
AutoHotKey là một ứng dụng và ngôn ngữ kịch bản Windows.
Mã tôi sử dụng là bên dưới, nó có thể dễ dàng sửa đổi để chèn thời gian và thay đổi dấu gạch chéo thành dấu gạch nối nếu đó là những gì bạn thích.
+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return
Google Sheets hỗ trợ các phím tắt sau:
Ctrl+ Shift+ :là tổ hợp phím để chèn thời gian.
Ctrl+ ;là tổ hợp phím để chèn ngày.
Ctrl+ Alt+ Shift+ :là tổ hợp phím để chèn ngày và giờ.
Xem Bàn phím tăng tốc, ghi nhớ và phím tắt để biết thêm chi tiết.
Tôi đã tạo một tập lệnh nhỏ chuyển đổi chuỗi ký tự "_now" thành datetime hiện tại -
function onEdit(e) {
if (e.range.getValue() == "_now") {
e.range.setValue(new Date());
}
}
Tôi thấy nó khá tiện để gõ _now
và chuyển nó thành giá trị datetime hiện tại.
Xem https://developers.google.com/apps-script/quickstart/macros và https://developers.google.com/apps-script/under Hiểu_events để biết thêm thông tin về cách thêm phần này vào Bảng tính Google của bạn
Bạn có thể đặt một bookmarklet với vị trí này:
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);
sau đó chỉnh sửa ô và nhấp vào bookmarklet.
=today()
vào một ô để lấy ngày hiện tại.Công thức cho thời gian hiện tại là =now()
. Điều này có thể được sử dụng để tạo dấu thời gian tĩnh như sau:
=NOW()
vào một ôGoogle Sheets không hỗ trợ nó, nhưng bạn có thể thử một cách giải quyết khác mà không cần các ứng dụng bên ngoài:
(Nếu bạn đang dùng MacOS, hãy sử dụng Cmdthay vì Ctrlcho Copy/Cut/Paste
, nhưng Ctrl+ Mđể chèn nhận xét, vì Cmd+ Mđang thu nhỏ cửa sổ.)
Tôi cũng đã tạo một tập lệnh cho điều này và tôi muốn một định dạng không có sẵn trong dấu thời gian mặc định (chẳng hạn như trong =TODAY()
hoặc =NOW()
).
Nó cũng lấy múi giờ dựa trên phiên hiện tại (được đặt trong tùy chọn của Trang tính).
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;
}
Sử dụng nó rất dễ dàng:
=_NOW()
Để làm rõ: Tôi đã thực hiện định dạng ngày theo cách thủ công vì định dạng ngày tùy chỉnh trong Google Sheets là một đống rác rực lửa (không có cách nào để đặt định dạng tùy chỉnh làm mặc định, không có cách nào thay đổi thứ tự của các yếu tố ngày / giờ mà không xóa mọi thứ đầu tiên và thêm từng phần một tại một thời điểm).
Bạn có thể tham khảo hướng dẫn này , nó cũng chứa video. Trong mã script, thay đổi
var timestamp_format = "MM-dd-yyyy"; // Timestamp Format.
Theo mặc định, nó chỉ cung cấp cho bạn ngày, thay đổi mã bên dưới để có thời gian.
var timestamp_format = "MM-dd-yyyy hh:mm:ss"; // Timestamp Format.
Đây có phải là những gì bạn đang tìm kiếm ? Tôi đã thử nó và nó hoạt động hoàn hảo.
Tanguay, tôi vừa thử nghiệm điều này =IF(A2<>"",NOW(),"")
. Nếu A2 có giá trị thì nó sẽ nhập dấu thời gian. Nếu A2 trống thì dấu thời gian không được nhập vào cột dấu thời gian.
=if(len(A2)>0;if(B2<>"";B2;now());"")
Trong Cài đặt, thay đổi giải pháp mạch thành 1 và nó sẽ hoạt động mà không cần JavaScript