Google sheets 在单元格A中输入值时如何在google工作表中自动填写日期

Google sheets 在单元格A中输入值时如何在google工作表中自动填写日期,google-sheets,Google Sheets,如果我在工作表的单元格A中输入“paid”文本,我希望自动提取单元格B中的当前日期。如果单元格为空,则不应提取日期。比如: -------------------------------------- A | B -------------------------------------- Paid | 2/25/2018 ---------------------------------- Paid | 2/26/2018 --------

如果我在工作表的单元格A中输入“paid”文本,我希望自动提取单元格B中的当前日期。如果单元格为空,则不应提取日期。比如:

--------------------------------------
A           |  B
--------------------------------------
Paid        |  2/25/2018
----------------------------------
Paid        | 2/26/2018 
----------------------------------
empty cell  |   
----------------------------------
empty cell  |  




I tried to use =ArrayFormula(IF(A2:A81=paid),"paid",(NOW())) 
但这是一个错误。他们有什么办法吗?

试试这个:

=ArrayFormula(IF(A2:A81="paid", NOW(),"")) 
如果您永远不想更改日期,则需要使用如下脚本:

function onEdit() {
  // writes the current date to the cell to the right on the row when a cell in a specific column is edited
  // adjust the following variables to fit your needs

  var sheetNameToWatch = "Sheet1";
  var columnNumberToWatch = /* column A */ 1; // column A = 1, B = 2, etc.
  var valueToWatch="paid";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();
  var val=sheet.getActiveCell().getValue()

  if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && val==valueToWatch) {
    var targetCell = sheet.getRange(range.getRow(), range.getColumn()+1
                               );
    targetCell.setValue("" + Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy"));
  }
}
没有一种方法可以用我知道的公式做到这一点。可以缩短,但仍需要脚本:

function onEdit(e) {
   if (e.source.getSheetName()=="Sheet1" && e.range.getColumn() == 1 && e.range.getValue() == "paid") {
      e.range.offset(0,1).setValue(new Date());
  }}

非常好用,谢谢

我对它做了一点修改,所以如果我在列中输入任何内容,日期将自动填充。我保存了几个spreedsheet,用于会计、计费和业务跟踪。其中之一是小时。因此,当我输入小时数“1”或“5.5”时,左侧的日期将填充。爱死它了!谢谢


function onEdit() {
  // writes the current date to the cell to the right on the row when a cell in a specific column is edited
  // adjust the following variables to fit your needs

  var sheetNameToWatch = "Sheet1";
  var columnNumberToWatch = /* column A */ 2; // column A = 1, B = 2, etc.
  var valueToWatch="paid"; /* isn't doing anything */

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();
  var val=sheet.getActiveCell().getValue()

  if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && val!= "" /* I changed this var value so if I input anything, it will update the date */) {
    var targetCell = sheet.getRange(range.getRow(), range.getColumn()-1 /* changed this to "-1" so it will input to the left column */
                               );
    targetCell.setValue("" + Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy"));
  }
}


答案不太准确,但对于一个单元格来说:

  • 命令+;(在Mac键盘上,按Ctrl键或其他键)

你能解释一下“永远不希望日期改变”是不是公式没有设置永远不会改变的日期?如果公式中有now(),当你明天打开电子表格时,日期将是明天的日期。他们有什么公式可以做到这一点吗。。如果我不想使用这个脚本?我植入了ARRAYFORMULA解决方案这个问题,它包含了我引入这个公式当天的所有日期,如果我更改它,ARRAYFORMULA显然会显示错误