问题是:我有一个很大的电子表格(超过4500行),第一列中有很多数据-例如。带有不唯一的水果类型,例如:
APPLE
BANANA
APRICOTS
APPLE
BLACKCURRANT
APPLE
BANANA
APRICOTS
etc.
我需要的-找到每个香蕉,以便能够在某些信息旁边放入单元格,例如。是。我尝试从Locating a cell's position in google sheets using a string or an integer循环解决方案,但是可以肯定我的代码是错误的。我已经花了很多时间来发明一些东西,但是仍然不明白我所缺少的东西。
function test(){
var dispatch = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FRUITS");
var find = dispatch.getRange("A:A").getValues();
var name = "BANANA";
var lastRow = dispatch.getLastRow();
var n = 1;
var temp = dispatch.getRange(n, 2).getValue();
var i = 0;
while (temp != ""){
for(var n in find){
if(find[n][0] === name){break}
}
n++;
var n = n + i;
dispatch.getRange(n, 2).setValue("YES");
var temp = dispatch.getRange(n, 2).getValues();
var find = dispatch.getRange(n, 2, lastRow).getValues();
var i = n;
}
}
我将非常感谢您的帮助。
答案 0 :(得分:0)
代码示例如下:
function test(){
var dispatch = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FRUITS");
var range = dispatch.getRange(1, 1, dispatch.getLastRow(), 2);
var values = range.getValues();
values.map(function(row) {
if (row[0] == "BANANA")
row[1] = "YES";
});
range.setValues(values);
}
JS array map()
method完成了大部分工作。我们将范围值转换为JS数组,并在映射完成后将其返回。