在谷歌表格文档中,我实现了一个脚本,其中工作表名称根据单元格 A10 中的内容进行更改。 这是脚本:
function onEdit() {
var sheet = SpreadsheetApp.getActiveSheet();
var oldName = sheet.getName();
var newName = sheet.getRange(1,10).getValue();
if (newName.toString().length>0 && newName !== oldName) {
sheet.setName(newName);
}
}
在单元格 A10 中,我有公式 =concatenate(A1:A9)。 在 A1 中,我有公式 =day(today())。 A2 = 月(今天())。 A3 = 年(今天())。然后,接下来的单元格和 A9 中的一些静态文本是将触发文件名更改的输入。
这样,工作表名称会根据 A9 单元格内容更改的时间自动更改为当前的日、月、年。
我有3张床单,早上、下午、晚上各换一次。早上和下午的床单没有问题,但是晚上的床单,因为可以在午夜之前或之后更换,所以我想与其他两张床单在同一天使用,无论更换时间如何.
我已经在夜间工作表中的白天单元格中尝试过这个公式,但没有成功:
A1=if(day(today)='Afternoon'!A1; day(today()) ; day((today())-1))
有没有办法改进这个公式,或者我应该采取不同的方法?
谢谢!
=LET(now, NOW(),
DAY(now-(MOD(now, 24)<12)))
1 day=1
和 1 hour=1/24
MOD(x, 24)=12
其中 x=12:00 PM
正如 @Tedinoz 指出的那样,在没有日期的情况下称呼日期很容易出现日期、月份和年份的错误:
DAY("1/1/23")-1 ≠ DAY("1/1/23"-1)
MONTH("1/1/23") ≠ MONTH("1/1/23"-1)
YEAR("1/1/23") ≠ YEAR("1/1/23"-1)
这三个工作表应各自使用一个公式来返回日期字符串。
=LET(now, NOW(),
TEXT(
now-(MOD(now, 24)<12)),
"ddmmyyyy")
A1:A3
中的三个公式。=TEXT(NOW(), "ddmmyyyy")
A1:A3
中的三个公式。