我正在尝试使用一组名称,并在其旁边设置复选框,并建立一个系统,以便您可以检查某些名称(将其标记为“ True”)并单击一个按钮。然后,它会将标记为true的人员姓名旁边的值增加+1。
这里是样本表的链接: https://docs.google.com/spreadsheets/d/1gf-BrXXR0cAYCn7bMkvvK65R290NXbP9D6aA68c06C8/edit?usp=sharing
如果将A列第2行(Tim的行)标记为true,我想将C列第2行的值加1,所以Tim的名字旁边将有连续的拖延时间。
我希望这是可行的。谢谢!
答案 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>