我有专栏。一个具有日期字段,另一个具有值(即成本)。我们可以调用第一列A和第二列B.我想在每个成本设置时注册日期。这意味着,当在B列中设置了值时,必须使用当前日期自动填充A列。
我的第一个想法是使用today()
但是这个函数每次打开文档时都会更新值。这意味着A列的所有值始终具有当前日期。
我想知道是否有可能第一次使用today()
。因此我尝试过这样的事情:
if(AND(len(A1)=0,len(B1)>0), today(), "")
但是日期仍然更新到当前日期。
我的第二种方法是在单元格中设置today()
,并在填充B列时尝试复制A列中的值。问题是我需要复制单元格的内容,而不是公式。我不能在这种情况下使用Paste special -> paste values only
,因为是一个手动交互。在谷歌搜索一点我发现this link建议这个动作复制值而不是公式:
数据 - >验证:
这不是一个糟糕的方法,但我仍然需要在下拉列表中选择范围。它未自动选中。这里我们有一个截图:
有更好的方法来实现我的目的吗?或者我需要创建一个片段吗?
您可以使用谷歌应用程序脚本onEdit。如果编辑了B列,它将使用日期填充A.
function onEdit(e) {
var sheet=e.source.getSheetName()
if( sheet == "Sheet1" ) { //checks that we're on the correct sheet
var column = e.range.getSheet().getActiveCell().getColumn();
if( column == 2 ) { //checks the column
var newCell = e.range.getSheet().getActiveCell().offset(0,-1);//get column A of active row
if( newCell.getValue() === '' ){ //If A is empty?
var d = new Date();// d is now a date object
newCell.setValue(d)}
else{return}
}}