Google Sheets夜间工作表如何与午间表保持同日期?技术问询
解决Google Sheets夜间工作表日期同步问题
方案一:直接引用午间工作表日期(最简且可靠)
既然要求夜间工作表日期和早、午工作表完全一致,无需自行计算日期,直接引用午间工作表的日期单元格即可:
- 夜间工作表A1单元格公式:
='Afternoon'!A1 - 夜间工作表A2单元格公式:
='Afternoon'!A2 - 夜间工作表A3单元格公式:
='Afternoon'!A3
这样A10通过=concatenate(A1:A9)拼接出的日期会和午间表完全同步,无论夜间何时修改A9,工作表名称都会和早、午表保持一致。
方案二:修正原判断公式(若需自定义逻辑)
你原公式存在两处错误:一是today未加括号(需写成TODAY());二是仅比较日会出现跨月判断失效的问题。修正后的完整逻辑公式如下:
先计算目标日期:=IF(TODAY()=DATE('Afternoon'!A3,'Afternoon'!A2,'Afternoon'!A1), TODAY(), TODAY()-1)
再拆分到A1、A2、A3:
- A1(日):
=DAY(IF(TODAY()=DATE('Afternoon'!A3,'Afternoon'!A2,'Afternoon'!A1), TODAY(), TODAY()-1)) - A2(月):
=MONTH(IF(TODAY()=DATE('Afternoon'!A3,'Afternoon'!A2,'Afternoon'!A1), TODAY(), TODAY()-1)) - A3(年):
=YEAR(IF(TODAY()=DATE('Afternoon'!A3,'Afternoon'!A2,'Afternoon'!A1), TODAY(), TODAY()-1))
可选:优化onEdit脚本减少无效触发
原脚本每次编辑单元格都会执行,可优化为仅当A9单元格被编辑时才触发,提升效率:
function onEdit(e) { var range = e.range; // 仅在编辑A9单元格时执行逻辑 if (range.getRow() === 9 && range.getColumn() === 1) { var sheet = range.getSheet(); var oldName = sheet.getName(); var newName = sheet.getRange(1,10).getValue(); if (newName.toString().length > 0 && newName !== oldName) { sheet.setName(newName); } } }
内容的提问来源于stack exchange,提问作者Catalin Ciobanu
相关产品推荐
相关产品推荐

