Я використовую PSPad як текстовий редактор, який дозволяє натиснути Alt+, Dщоб вставити часову позначку, наприклад:
2010-07-17 23:45:44
Чи можна це зробити в електронній таблиці Google?
Я використовую PSPad як текстовий редактор, який дозволяє натиснути Alt+, Dщоб вставити часову позначку, наприклад:
2010-07-17 23:45:44
Чи можна це зробити в електронній таблиці Google?
Відповіді:
Я використовую AutoHotKey для виконання цієї функції.
AutoHotKey - це сценарій програми та мови для Windows.
Код, який я використовую, наведений нижче, його можна легко змінити, щоб вставити час і змінити косої риски на дефіси, якщо це те, що ви віддаєте перевагу.
+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return
Google Таблиці підтримують такі комбінації клавіш:
Ctrl+ Shift+ :- натискання клавіші для вставки часу.
Ctrl+ ;- натискання клавіші для вставки дати.
Ctrl+ Alt+ Shift+ :- це натискання клавіші для вставки дати та часу.
Додаткову інформацію див. У прискорювачах клавіатури, мнеміці та ярликах .
Я створив невеликий скрипт, який перетворює рядковий буквальний "_now" в поточний datetime -
function onEdit(e) {
if (e.range.getValue() == "_now") {
e.range.setValue(new Date());
}
}
Я вважаю, що це досить зручно вводити _now
і перетворювати його на поточне значення часу.
Див. Https://developers.google.com/apps-script/quickstart/macros та https://developers.google.com/apps-script/understanding_events для отримання додаткової інформації про те, як додати це до електронної таблиці Google.
Ви можете помістити закладку з цим розташуванням:
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);
потім відредагуйте комірку та натисніть закладку.
=today()
її в комірку, щоб отримати поточну дату.Формула струму дати-часу така =now()
. Це можна використовувати для створення статичної позначки часу наступним чином:
=NOW()
у коміркуGoogle Sheets не підтримує його, але ви можете спробувати інше рішення без зовнішніх програм:
(Якщо ви користуєтесь MacOS, використовуйте Cmdзамість Ctrlдля Copy/Cut/Paste
, але Ctrl+ Mдля вставки коментаря, оскільки Cmd+ Mмінімізує вікно.)
Я також створив для цього сценарій, і мені потрібен формат, який недоступний у часових позначках за замовчуванням (наприклад, у =TODAY()
або =NOW()
).
Він також захоплює часовий пояс на основі поточного сеансу (який встановлений у налаштуваннях Листа).
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;
}
Використовувати це легко:
=_NOW()
Для уточнення: я робив форматування дати вручну, оскільки власне форматування дат у Google Таблицях - це купа полум'яного сміття (жоден спосіб встановити нестандартний формат за замовчуванням, ніякий спосіб змінити порядок елементів дати / часу, не видаляючи все спочатку і додаючи по черзі кожну частину).
Ви можете посилатися на цей підручник , він містить і відео. У коді сценарію змініть
var timestamp_format = "MM-dd-yyyy"; // Timestamp Format.
За замовчуванням він дає вам лише дату, перейдіть на код нижче, щоб отримати час.
var timestamp_format = "MM-dd-yyyy hh:mm:ss"; // Timestamp Format.
Це те, що ви шукаєте? Я спробував це, і він працює чудово.
tanguay, я щойно це перевірив =IF(A2<>"",NOW(),"")
. Якщо A2 має значення, він вводить позначку часу. Якщо A2 порожній, позначка часу не вводиться в стовпчик часових міток.
=if(len(A2)>0;if(B2<>"";B2;now());"")
У Налаштуваннях змініть схему рішення на 1, і вона працюватиме без JavaScript