【问题标题】:Google sheets add value to itself in same cell谷歌表格在同一个单元格中为自己增加价值
【发布时间】:2021-12-30 04:16:26
【问题描述】:
我在网上的任何地方都找不到这个问题。在谷歌表格上,我想在输入时为其自身添加一个数字。也就是说,如果单元格 C1 的值为 23,我选择 C1 并键入 13,则 C1 的新值将是 36,新值和先前值的总和。
有什么办法可以做到吗?我本以为可以打开一些“添加”模式来执行此操作,或者可以打开一些快捷方式,例如输入“++23”,但似乎没有任何效果,而且我在网上找不到任何帮助来完成一些简单的任务。
提前致谢。
【问题讨论】:
-
使用 Google Apps 脚本,您可以设置一个onEdit(e) 触发器来监控数据何时输入到单元格中,然后更改单元格中的值。
标签:
google-apps-script
google-sheets
google-sheets-formula
【解决方案1】:
假设您的工作表是“mySheet”并且单元格是 C1,请尝试
function onEdit(event){
var sh = event.source.getActiveSheet();
var cel = event.source.getActiveRange();
if (sh.getName()=='mySheet' && cel.getA1Notation()=='C1'){
cel.setValue(1*(event.value)+1*(event.oldValue))
}
}
解释
注意事件结构如下
var event = {
"authMode": {object},
"range": {
"columnStart": int,
"rowStart": int,
"rowEnd": int,
"columnEnd": int
},
"source": {Spreadsheet_object},
"oldValue": "string",
"user": {
"nickname": "string",
"email": "string"
},
"value": "string"
};
所以我使用 oldValue 和 value 来获得预期的结果。
【解决方案2】:
你也可以使用单行进式
转到您的 google sheet 文档
转到文件 > 设置
然后转到“计算”选项卡并输入以下设置。
- 重新计算 - 更改时
- 迭代计算 - 开启
- 最大迭代次数 - 1
- 阈值 - 0.05
现在您可以引用单元格自身,并获得运行总计。
运行总单元格中的公式
=IF(B2 = -1,0,B2 + A2)
如果 VALUE 为 -1,则重置为 0,如果不是将其值添加到我的任何值。
请注意,如果您在此单元格中留下一个值并在其他任何地方更新电子表格,它将继续在运行总计中添加相同的值。因为我们将重新计算设置设置为“On Change”。