【问题标题】: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”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 2019-10-12
      • 2013-01-29
      相关资源
      最近更新 更多