以True值递增+1个单元格

时间:2018-07-23 22:13:40

标签: google-sheets

我正在尝试使用一组名称,并在其旁边设置复选框,并建立一个系统,以便您可以检查某些名称(将其标记为“ True”)并单击一个按钮。然后,它会将标记为true的人员姓名旁边的值增加+1。

这里是样本表的链接: https://docs.google.com/spreadsheets/d/1gf-BrXXR0cAYCn7bMkvvK65R290NXbP9D6aA68c06C8/edit?usp=sharing

如果将A列第2行(Tim的行)标记为true,我想将C列第2行的值加1,所以Tim的名字旁边将有连续的拖延时间。

我希望这是可行的。谢谢!

2 个答案:

答案 0 :(得分:1)

(现在我知道您要获得什么) 据我所知,为了通过按下按钮来增加值,您必须使用脚本(Tools -> Script Editor)。这是我一起扔的东西:

// editCell takes the cell to edit and it's new value
function editCell(cellName, value) {
  SpreadsheetApp.getActiveSheet().getRange(cellName).setValue(value);
}

// getCell takes the cell's value and returns it
function getCell(cellName) {
  return SpreadsheetApp.getActiveSheet().getRange(cellName).getValue();
}

// plusOne adds one to the field supplied. It's linked to the button in the sheet
function plusOne() {
  editCell("C2",getCell("C2")+1);
}

为使其正常工作,您可能需要更改目标单元(当前为C2)。您还需要创建一个绘图(Insert -> Drawing),它将用作您可以按下的按钮。插入后,单击其上的三个点,然后单击Link Script。输入plusOne。首次执行时,它会要求您验证脚本的使用。
这应该够了吧。我希望您对Java脚本有所了解(以最佳方式修改代码)。


编辑-扩展版本

因此,要使选中的字段后面的每个数字都加1,可以使用以下版本的代码:

// Adds one to every field within "AddArea" that has a tick in front of it. It's linked to the button in the sheet.
function plusOne() {
  var ss = SpreadsheetApp.getActiveSheet();
  var range = ss.getRange("AddArea");
  var values = range.getValues();
  var newValues = [];

  for (var i = 0; i < range.getNumRows(); ++i) {
    var row = values[i];

    if(row[0]) {
      newValues.push([true, row[1]+1]);
    }
    else {
      newValues.push([false, row[1]]);
    }
  }
  range.setValues(newValues);
}

您需要定义一个自定义的命名区域,名为“ AddArea”(Data -> Labeled Areas [或类似名称]),将脚本链接到按钮并允许脚本运行。这很难但很有趣。

Example Sheet供参考(已更新)

答案 1 :(得分:0)

仅使用C2就可以实现:

=A2+C2

,但是您需要打开迭代计算功能(文件>电子表格设置...>计算[最大1就足够了)),并且我不建议您通过Google Apps脚本触发。 / p>