Есть ли способ создать метку времени в электронной таблице Google?

31

Я использую PSPad в качестве текстового редактора, который позволяет нажимать Alt+, Dчтобы вставить метку времени, например:

2010-07-17 23:45:44

Есть ли способ сделать это в таблице Google?

Эдвард Тангей
источник
4
Это было бы полезно при использовании документа Google как что-то вроде инженерного журнала. +1.
Томас Оуэнс
1
да, я использую Google Docs в качестве внешних источников данных для веб-сайтов и по этой причине хотел бы иметь возможность делать отметки времени
Эдвард Тангей
1
@EdwardTanguay, если вы случайно проходите мимо ... вам следует сменить правильный ответ на самый голосующий :)
Lipis
1
Читателям рекомендуется использовать лучший ответ , хотя в настоящее время он не находится на вершине.

Ответы:

8

Я использую AutoHotKey для выполнения этой функции.

AutoHotKey - это скриптовое приложение и язык Windows.

Код, который я использую ниже, будет легко изменить время вставки и изменить косую черту на дефис, если вы предпочитаете это.

+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return
tobeannounced
источник
да, autohotkey - мой друг, странно, я забыл об этом, я использовал% A_YYYY% -% A_MM% -% A_DD%% A_Hour%:% A_Min%:% A_Sec%, и он работает отлично, спасибо!
Эдвард Тангей
Не беспокойся, рад, что я тебе напомнил :)
объявлено
39

Google Sheets поддерживает следующие сочетания клавиш:

  • Ctrl+ Shift+ :- это нажатие клавиши для вставки времени.

  • Ctrl+ ;нажатие клавиши для вставки даты.

  • Ctrl+ Alt+ Shift+ :- это нажатие клавиши для вставки даты и времени.

См. Клавиатурные ускорители, мнемонику и сочетания клавиш для получения более подробной информации.

Danniogirl
источник
4
Это похоже на Microsoft Excel, однако, в отличие от Excel, вы не можете использовать один ярлык с другим, чтобы получить полную метку времени. Ярлык в Google Docs работает только тогда, когда выделена вся ячейка, а не когда она редактируется, поэтому вы можете получить только дату ИЛИ время с помощью этого метода, но не оба.
MrWhite
3
Ницца! Обратите внимание, что это работает только для электронных таблиц, но не для документов.
Джиммирр
1
@ Рубен Теперь есть один для обоих! (ч / т Колен и Кэмерон Крест )
Не работает на Firefox Linux :-( Есть ли способ получить эту функцию через меню ?? !!
Филипп Гачу
13

Я создал небольшой скрипт, который преобразует строковый литерал "_now" в текущую дату -


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.

0cd
источник
1
Power to Google Apps Script
Джейкоб Ян Туинстра
4
Это должно быть ответом, если рассматривать все платформы, а не только для Windows.
Роберт
@ Роберт, разве webapps.stackexchange.com/a/24692/10579 не лучший ответ?
Pacerier
@Pacerier Я так не думаю, потому что эти ярлыки добавляют только дату или время. Не дата / время, которое запросил ОП. Прочитайте комментарии, сделанные по ссылке, которую вы предоставили.
Джейкоб Ян Туинстра
Форматирование временных меток, созданных с помощью этого сценария, рассматривается здесь .
7

Вы можете поместить в букмарклет это место:

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);

затем отредактируйте ячейку и щелкните букмарклет.

Бен Джонсон
источник
Как вы положили букмарклет?
Руби
Рубин - вы можете перетащить кнопку я создал здесь в закладки бара.
SelfPublish.org
2
  1. В соседней ячейке или в замороженной панели введите =today()в ячейку текущую дату.
  2. Скопируйте ячейку, а затем используйте (Специальная вставка → Вставить только значения) из меню редактирования, чтобы получить статическую дату и время, в то время, когда вы вставили значение в ячейку, в которую вы хотели установить отметку даты.
Тристан Парлетт
источник
Эквивалентно, используйте Ctrl-C, а затем Ctrl-Shift-V (не доходя до меню). Тот же подход можно использовать =now()для получения даты и времени в одной и той же ячейке: возможно, это самый простой способ сделать это без сценария.
2

Формула для текущей даты-времени =now(). Это можно использовать для создания статической временной метки следующим образом:

  1. Войти =NOW()в клетку
  2. Скопируйте это значение с CtrlC
  3. Вставить в ту же ячейку с помощью CtrlShiftV (или эквиваленты для «вставлять только текст» на других платформах)
Jennifer
источник
2
Это не отметка времени, правда? Это просто показывает текущую дату / время открытия таблицы, нет?
Але
1

Google Sheets не поддерживает его, но вы можете попробовать другой обходной путь без внешних приложений:

  1. Вставить комментарий ( Ctrl+ M)
  2. Скопируйте метку времени оттуда ( Ctrl+ Cили Ctrl+ X)
  3. Удалить комментарий (Щелкните правой кнопкой мыши> Удалить)
  4. Вставьте метку времени ( Ctrl+ V)

(Если вы используете MacOS, используйте Cmdвместо Ctrlfor Copy/Cut/Paste, но Ctrl+ Mдля вставки комментария, потому что Cmd+ Mминимизирует окно.)

Lipis
источник
1

Я также создал сценарий для этого, и я хотел формат, который не доступен в метках времени по умолчанию (например, в =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 Sheets - куча пылающего мусора (нет способа установить пользовательский формат по умолчанию, нет способа изменить порядок элементов даты / времени, не удаляя все сначала и добавляя каждую часть за раз).

Кайл Фалконер
источник
Это закончилось тем , что в то же время для каждого вызова
nhed
@nhed каждый раз, когда вызывается этот скрипт (например, когда вы открываете электронную таблицу), он будет возвращать текущую дату в этом формате в виде строки. Если вам нужна постоянная временная метка, которая никогда не обновляется, вы можете поместить ее в ячейку и скопировать значение из этой ячейки, а затем вставить ее в нужное место.
Кайл Фальконер
Я добавил сценарий в свой браузер на рабочем столе, и электронная таблица уже была открыта на моем телефоне ... она все еще производила на моем телефоне ту же временную метку, которая была на моем рабочем столе ... требуя, чтобы я закрыл и снова открыл, чтобы добавить точку данных. «т , кажется практичным ... Я объединил форматирование с другой функцией выше , чтобы получить что - то , что работало для меня
nhed
0

Вы можете обратиться к этому руководству , оно также содержит видео. В коде сценария измените

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

По умолчанию это только дает вам дату, измените код ниже, чтобы получить время.

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

Это то, что вы ищите ? Я попробовал это, и это работает отлично.

Arpan
источник
0

tanguay, я только что проверил это =IF(A2<>"",NOW(),""). Если A2 имеет значение, то оно вводит метку времени. Если A2 пусто, отметка времени не вводится в столбец отметки времени.

Говард Риминтон
источник
-1

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

В настройках измените решение схемы на 1, и оно будет работать без JavaScript

Вратислав Новак
источник