มีวิธีใดในการสร้างการประทับเวลาใน Google Spreadsheet


31

ฉันใช้ PSPad เป็นโปรแกรมแก้ไขข้อความซึ่งให้คุณกดAlt+ Dเพื่อแทรกการประทับเวลาเช่น:

2010-07-17 23:45:44

มีวิธีทำเช่นนี้ใน Google Spreadsheet หรือไม่?


4
สิ่งนี้จะเป็นประโยชน์ในการใช้เอกสารของ Google เป็นสิ่งที่คล้ายกับบันทึกทางวิศวกรรม +1
Thomas Owens

1
ใช่ฉันใช้ google docs เป็นแหล่งข้อมูลภายนอกสำหรับเว็บไซต์และต้องการให้สามารถบันทึกเวลาได้ด้วยเหตุผลนี้
Edward Tanguay

1
@EdwardTanguay ถ้าคุณโดยโอกาสที่ผ่านโดย .. คุณควรเปลี่ยนคำตอบที่ถูกต้องมากที่สุดโหวตให้เป็นหนึ่ง :)
Lipis

1
ผู้อ่านควรใช้คำตอบที่ดีที่สุดแม้ว่าจะไม่ได้อยู่ด้านบน

คำตอบ:


8

ฉันใช้ AutoHotKey เพื่อทำหน้าที่นี้

AutoHotKeyเป็นแอปพลิเคชันการเขียนสคริปต์และภาษา Windows

รหัสที่ฉันใช้อยู่ด้านล่างจะสามารถแก้ไขได้อย่างง่ายดายเพื่อแทรกเวลาและเปลี่ยนเครื่องหมายทับเป็นขีดกลางถ้านั่นคือสิ่งที่คุณต้องการ

+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return

ใช่ autohotkey คือเพื่อนของฉันแปลกฉันลืมมันไปเลยฉันใช้% A_YYYY% -% A_MM% -% A_DD%% A_Hour%:% A_Min%:% A_Sec% และทำงานได้อย่างสมบูรณ์แบบขอบคุณ!
Edward Tanguay

ไม่ต้องกังวลฉันดีใจที่ได้เตือนคุณ :)
ถึง

39

Google ชีตสนับสนุนแป้นพิมพ์ลัดต่อไปนี้:

  • Ctrl+ Shift+ :คือการกดแป้นพิมพ์เพื่อแทรกเวลา

  • Ctrl+ ;คือการกดแป้นพิมพ์เพื่อแทรกวันที่

  • Ctrl+ Alt+ Shift+ :คือการกดแป้นพิมพ์เพื่อแทรกวันที่และเวลา

ดูเร่งคีย์บอร์ดจำและทางลัดสำหรับรายละเอียดเพิ่มเติม


4
สิ่งนี้คล้ายกับ Microsoft Excel แต่ไม่เหมือนกับ Excel คุณไม่สามารถติดตามทางลัดหนึ่งไปยังอีกทางลัดหนึ่งเพื่อสร้างการประทับเวลาที่สมบูรณ์ ทางลัดใน Google เอกสารดูเหมือนว่าจะทำงานเฉพาะเมื่อมีการเลือกเซลล์ทั้งหมดไม่ใช่เมื่อมีการแก้ไขดังนั้นคุณจะได้รับวันที่หรือเวลาด้วยวิธีนี้เท่านั้นไม่ใช่ทั้งสองอย่าง
MrWhite

3
ดี! หมายเหตุสิ่งนี้ใช้ได้กับสเปรดชีตไม่ใช่เอกสาร
jimmyorr

1
@ Rubénทีนี้มันมีหนึ่งเดียวสำหรับทั้งคู่! (h / t kolenและCameron Crest )

ไม่ได้ทำงานบนลินุกซ์ Firefox :-( จะมีวิธีที่จะได้รับฟังก์ชั่นนี้ผ่านเมนู ?? !!
ฟิลิปป์ Gachoud

13

ฉันสร้างสคริปต์เล็กน้อยที่แปลงสตริงตัวอักษร "_now" เป็น datetime ปัจจุบัน -


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

ฉันคิดว่ามันมีประโยชน์ในการพิมพ์_nowและแปลงเป็นค่า datetime ปัจจุบัน

ดูhttps://developers.google.com/apps-script/quickstart/macrosและhttps://developers.google.com/apps-script/understanding_eventsสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีเพิ่มสิ่งนี้ลงใน Google Spreadsheet ของคุณ


1
เพิ่มพลังให้กับสคริปต์ Google Apps
Jacob Jan Tuinstra

4
อันนี้ควรเป็นคำตอบหากพิจารณาในทุกแพลตฟอร์มไม่เพียง แต่สำหรับ windows
Robert

@Robertไม่ใช่webapps.stackexchange.com/a/24692/10579คำตอบที่ดีกว่านี้หรือไม่
Pacerier

@Pierier ฉันไม่คิดอย่างนั้นเพราะทางลัดเหล่านี้เพิ่มเฉพาะวันที่หรือเวลา ไม่ใช่วันที่ / เวลาที่ OP ขอ อ่านความคิดเห็นที่ทำในลิงค์ที่คุณให้
จาค็อบ ม.ค. Tuinstra

การจัดรูปแบบของการประทับเวลาที่สร้างขึ้นด้วยสคริปต์นี้คือการแก้ไขที่นี่

7

คุณสามารถใส่ bookmarklet ด้วยตำแหน่งนี้:

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

จากนั้นแก้ไขเซลล์และคลิกที่ bookmarklet


คุณจะใส่ bookmarklet ได้อย่างไร?
Ruby

Ruby - คุณสามารถลากปุ่มที่ฉันสร้างที่นี่ไปยังแถบบุ๊คมาร์คของคุณ
SelfPublish.org

2
  1. ในเซลล์ใกล้เคียงหรือภายในบานหน้าต่างที่แช่แข็งให้ป้อน=today()ลงในเซลล์เพื่อรับวันที่ปัจจุบัน
  2. คัดลอกเซลล์จากนั้นใช้ (วางแบบพิเศษ→วางค่าเท่านั้น) จากเมนูแก้ไขเพื่อรับวันที่และเวลาแบบคงที่ในเวลาที่คุณวางค่าในเซลล์ที่คุณต้องการให้ประทับวันที่

เท่ากันให้ใช้ Ctrl-C แล้วตามด้วย Ctrl-Shift-V (โดยไม่ต้องเข้าถึงเมนู) วิธีการเดียวกันสามารถใช้กับ=now()รับทั้งวันที่และเวลาในเซลล์เดียวกัน: นี่เป็นวิธีที่ง่ายที่สุดในการทำสิ่งนี้โดยไม่มีสคริปต์

2

สูตรสำหรับปัจจุบัน=now()วันที่เวลาเป็น สิ่งนี้สามารถใช้เพื่อสร้างการประทับเวลาแบบคงที่ดังต่อไปนี้:

  1. ใส่=NOW()ในเซลล์
  2. คัดลอกค่านี้ด้วย CtrlC
  3. วางในเซลล์เดียวกันด้วยCtrlShiftV (หรือเทียบเท่าสำหรับ "วางข้อความเท่านั้น" บนแพลตฟอร์มอื่น)

2
นั่นไม่ใช่การประทับเวลาใช่มั้ย เป็นเพียงการแสดงวันที่ / เวลาปัจจุบันเมื่อสเปรดชีตเปิดขึ้นมาไม่ใช่เหรอ?
เบียร์

1

Google ชีตไม่รองรับ แต่คุณสามารถลองวิธีแก้ปัญหาอื่นโดยไม่ใช้แอปภายนอก:

  1. แทรกความคิดเห็น ( Ctrl+ M)
  2. คัดลอก TimeStamp จากที่นั่น ( Ctrl+ CหรือCtrl+ X)
  3. ลบความคิดเห็น (คลิกขวา> ลบ)
  4. วาง TimeStamp ( Ctrl+ V)

(ถ้าคุณอยู่ใน MacOS ใช้CmdแทนCtrlสำหรับCopy/Cut/Pasteแต่Ctrl+ Mสำหรับการแทรกความคิดเห็นเพราะCmd+ Mถูกกลบเกลื่อนหน้าต่าง.)


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 ชีทเป็นกองขยะทิ้ง (ไม่มีวิธีตั้งรูปแบบที่กำหนดเองเป็นค่าเริ่มต้นไม่มีวิธีเปลี่ยนลำดับขององค์ประกอบวันที่ / เวลาโดยไม่ต้องลบทุกอย่าง ก่อนและเพิ่มทีละส่วน)


เรื่องนี้จบลงด้วยการที่ในเวลาเดียวกันสำหรับทุกภาวนา
nhed

@nhed ทุกครั้งที่มีการเรียกสคริปต์นี้ (เช่นเมื่อคุณเปิดสเปรดชีต) มันจะส่งคืนวันที่ปัจจุบันในรูปแบบนั้นเป็นสตริง หากคุณต้องการเวลาประทับที่ถาวรไม่เคยอัปเดตคุณอาจใส่มันไว้ในเซลล์และคัดลอกค่าจากเซลล์นั้นจากนั้นวางลงในตำแหน่งที่คุณต้องการ
Kyle Falconer

ฉันเพิ่มสคริปต์บนเบราว์เซอร์เดสก์ท็อปของฉันและสเปรดชีตเปิดแล้วบนโทรศัพท์ของฉัน ... มันยังคงผลิตในโทรศัพท์ของฉันในเวลาเดียวกับที่อยู่บนเดสก์ท็อปของฉัน ... ต้องการให้ฉันปิดและเปิดใหม่อีกครั้งเพื่อเพิ่มจุดข้อมูล 'T ดูเหมือนปฏิบัติ ... ฉันรวมการจัดรูปแบบของคุณด้วยฟังก์ชั่นที่แตกต่างกันดังกล่าวข้างต้นจะได้รับสิ่งที่ทำงานสำหรับฉัน
nhed

0

คุณสามารถอ้างอิงบทช่วยสอนนี้มีวิดีโอด้วย ในรหัสสคริปต์ให้เปลี่ยน

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

ตามค่าเริ่มต้นมันให้วันที่ของคุณเท่านั้นเปลี่ยนเป็นรหัสด้านล่างเพื่อรับเวลา

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

นี่คือสิ่งที่คุณกำลังมองหา? ฉันลองแล้วมันใช้งานได้อย่างสมบูรณ์


0

Tanguay =IF(A2<>"",NOW(),"")ผมได้ทดสอบเพียงแค่นี้ ถ้า A2 มีค่ามันจะเข้าสู่การประทับเวลา หาก A2 ว่างเปล่าการประทับเวลาจะไม่ถูกป้อนในคอลัมน์การประทับเวลา


-1

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

ในการตั้งค่าให้เปลี่ยนโซลูชันวงจรเป็น 1 และจะทำงานโดยไม่ใช้ JavaScript

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.