Używam PSPad jako edytora tekstu, który pozwala nacisnąć Alt+, Daby wstawić znacznik czasu, np .:
2010-07-17 23:45:44
Czy można to zrobić w arkuszu kalkulacyjnym Google?
Używam PSPad jako edytora tekstu, który pozwala nacisnąć Alt+, Daby wstawić znacznik czasu, np .:
2010-07-17 23:45:44
Czy można to zrobić w arkuszu kalkulacyjnym Google?
Odpowiedzi:
Używam AutoHotKey do wykonania tej funkcji.
AutoHotKey to aplikacja skryptowa i język Windows.
Kod, którego używam, znajduje się poniżej, można łatwo zmodyfikować, wstawiając czas i zmieniając ukośniki na łączniki, jeśli tak wolisz.
+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return
Arkusze Google obsługują następujące skróty klawiaturowe:
Ctrl+ Shift+ :to naciśnięcie klawisza, aby wstawić czas.
Ctrl+ ;to naciśnięcie klawisza, aby wstawić datę.
Ctrl+ Alt+ Shift+ :to naciśnięcie klawisza, aby wstawić datę i godzinę.
Aby uzyskać więcej informacji, zobacz Akceleratory klawiatury, mnemoniki i skróty .
Stworzyłem mały skrypt, który konwertuje dosłowny ciąg „_now” na bieżącą datę i godzinę -
function onEdit(e) {
if (e.range.getValue() == "_now") {
e.range.setValue(new Date());
}
}
Uważam, że pisanie _now
i konwertowanie na bieżącą wartość daty / godziny jest bardzo przydatne .
Zobacz https://developers.google.com/apps-script/quickstart/macros i https://developers.google.com/apps-script/understanding_events, aby uzyskać więcej informacji na temat dodawania tego do arkusza kalkulacyjnego Google
Możesz umieścić bookmarklet z tą lokalizacją:
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);
następnie edytuj komórkę i kliknij bookmarklet.
=today()
do komórki, aby uzyskać bieżącą datę.Wzór na bieżącą datę i godzinę to =now()
. Można tego użyć do utworzenia statycznego znacznika czasu w następujący sposób:
=NOW()
komórkęArkusze Google go nie obsługują, ale możesz wypróbować inne obejście bez zewnętrznych aplikacji:
(Jeśli jesteś na MacOS, użyj Cmdzamiast Ctrlza Copy/Cut/Paste
, ale Ctrl+ Mza wstawienie komentarza, ponieważ Cmd+ Mminimalizuje okno.)
Stworzyłem również skrypt do tego i chciałem formatu, który nie jest dostępny w domyślnych znacznikach czasu (takich jak w =TODAY()
lub =NOW()
).
To również chwyta strefę czasową na podstawie bieżącej sesji (który jest ustawiony w preferencjach arkusza'S).
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;
}
Korzystanie z niego jest łatwe:
=_NOW()
Aby wyjaśnić: formatowanie daty wykonałem ręcznie, ponieważ niestandardowe formatowanie daty w Arkuszach Google to stos płonących śmieci (nie ma możliwości ustawienia niestandardowego formatu jako domyślnego, nie ma możliwości zmiany kolejności elementów daty / godziny bez usuwania wszystkiego najpierw i dodając każdą część na raz).
Możesz odnieść się do tego samouczka , który również zawiera wideo. W kodzie skryptu zmień
var timestamp_format = "MM-dd-yyyy"; // Timestamp Format.
Domyślnie podaje tylko datę, zmień na poniższy kod, aby uzyskać czas.
var timestamp_format = "MM-dd-yyyy hh:mm:ss"; // Timestamp Format.
Czy tego szukasz? Próbowałem i działa idealnie.
tanguay, właśnie to przetestowałem =IF(A2<>"",NOW(),"")
. Jeśli A2 ma wartość, wówczas wpisuje znacznik czasu. Jeśli A2 jest pusty, znacznik czasu nie jest wprowadzany w kolumnie znacznika czasu.
=if(len(A2)>0;if(B2<>"";B2;now());"")
W Ustawieniach zmień rozwiązanie obwodu na 1, a będzie ono działać bez JavaScript