0

我有这样的代码在这里:如何返回2d数组中的不同列?

function getName() { 
    var id = SpreadsheetApp.getActiveSheet().getActiveCell().getValue(); 
    var data = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/spreadsheetIdHere/edit#gid=0') 
    .getSheetByName("Paste Data") 
    .getDataRange() 
    .getValues(); 
    for (var i in data) { 
    if (data[i][8] = id) { 
     return data[i][5]; 
    } else { 
     return "Student Not Found"; 
    } 
    } 
} 

应该寻找在电子表格单元格的用户输入,并在其他电子表格它匹配的行。我试图使它匹配行[i],并在匹配列[8]时返回列[5]。目前,它似乎返回第一行和它找到的id,但它们不在同一行。

请帮忙。

+0

尝试使用数据[I] [8] == ID –

+0

你尝试这样做:'用于(VAR I = 0; I

+0

我曾尝试过所有三种版本,没有更好的结果。我尝试了'(var i = 0; i

回答

0

虽然试图比较data[i][8]id的值,而不是实际比较您将id的值分配给data[i][8]。 更正版本如下:

function getName() { 
    var id = SpreadsheetApp.getActiveSheet().getActiveCell().getValue(); 
    var data = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/spreadsheetIdHere/edit#gid=0') 
          .getSheetByName("Paste Data") 
          .getDataRange() 
          .getValues(); 
    for (var i = 0; i < data.length; i++) { 
    if (data[i][8] == id) { 
     return data[i][5]; 
    } 
    } 
    return "Student Not Found"; 
} 
相关问题