我从一个脚本开始,有人在这里慷慨地帮助并且需要构建它并且不知道从哪里开始。这是当前的脚本:
call
我想要添加的是第二组标准,它们会查看另一个列值=批号(列D)。假设当前批号与前一行相同并且上述所有匹配,则每个附加行将是设定值3.但是如果当前行之前的批号的值不相同,那么值是5.在我所读过的内容中,可能需要有一些循环条件,因此计算不会继续进行。这里的任何帮助将不胜感激。谢谢!
以下是指向电子表格Test Script
的基本格式的链接答案 0 :(得分:0)
这是一个更新的函数,它演示了我相信你所描述的一般方法。
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.Enrich.With(new SimpleClassEnricher())
.WriteTo.Console(outputTemplate: "{Timestamp:HH:mm:ss} [{Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}")
.CreateLogger();
运行此功能后,此工作表如下所示:
var COLUMNS = {
FRUIT: 0,
STATUS: 1,
SIZE: 2,
LOT_NUMBERr: 3,
COST: 4,
NEW_VALUE: 5,
}
function updateValues() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet3');
var range = sheet.getDataRange();
var values = range.getValues();
var previousLotNumber = -1;
for(var i = 1; i < values.length; i++){
if (values[i][COLUMNS.FRUIT] == 'Apple'
&& values[i][COLUMNS.STATUS] == 'Ripe') {
values[i][COLUMNS.COST] = 5.5;
}
if (previousLotNumber == values[i][COLUMNS.LOT_NUMBER]) {
values[i][COLUMNS.NEW_VALUE] = 3;
} else {
values[i][COLUMNS.NEW_VALUE] = 5;
}
previousLotNumber = values[i][COLUMNS.LOT_NUMBER];
}
range.setValues(values);
}
一些注意事项: