[Google Sheet]从二维网格中查找

时间:2017-03-18 04:28:01

标签: google-sheets

因为我使用Google表单来收集数据。数据源不是我想要的,所以我需要创建一个选项卡并转换数据。

以下是Google表格(从Google表格导出)

的示例
Group Leader    Groupmates
Leader 1        John       Mary       Linda
Leader 2        KK         Johanna
Leader 3        Rick

我将名称网格转换为数组(下面的第一列)。我的问题是如何找到相应的领导者(下面第二栏)?

Groupmate  Group Leader
John       Leader 1
Mary       Leader 1
Linda      Leader 1
KK         Leader 2
Johanna    Leader 2
Rick       Leader 3

非常感谢

1 个答案:

答案 0 :(得分:0)

这样做。您需要更改工作表名称和范围以满足您的数据需求。它还会创建一个自定义菜单来运行它。您可以在表单提交上运行它。

function onOpen() {
 SpreadsheetApp.getActiveSpreadsheet().addMenu(
    'Fix Data', [ 
      { name: 'Fix', functionName: 'reArrange' },
      ]);  
}
function reArrange() {
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheetByName("Sheet1")//get data sheet
  var lr = s.getLastRow()  //get last row with data 
  var lc = s.getLastColumn() //get last column with data   
  var s1=ss.getSheetByName("Sheet2")//sheet to write to
  var rng = s.getRange(2, 2, lr-1,lc).getValues() 
  var newrng=[]  //new array
  for(var i=0;i<rng.length;i++){ //for each row in range
    for(var j=1;j<rng[0].length;j++){ //for each column in range
      if(rng[i][j]==""){break} //if column is blank break the J loop
        newrng.push([rng[i][j],rng[i][0]]) //push values to new array
     }}
   s1.getRange(2, 1, newrng.length,newrng[0].length).setValues(newrng)//set values in sheet2
 }