2017-03-18 85 views
0

因爲我使用Google Form來收集數據。數據源不是我想要的,所以我需要創建一個選項卡並轉換數據。[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 

非常感謝您

+0

我已創建此附加組件,以幫助爲朋友重新安排Google表單數據。你可以試試[這裏:](https://chrome.google.com/webstore/detail/data-splitter/dhaihbfkhlfihidfdedfpaalhppaokbm?utm_source=permalink)。運行插件後,它將創建一個側欄,您可以在其中選擇要合併的列並將其組合成一行。 –

回答

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 
} 
+0

哦,我的上帝,我認爲這只是一個簡單的公式。似乎應用腳本是要走的路。 – Winston

+0

如果這適用於您,請批准答案。謝謝。 –

+0

當然。我還沒有嘗試過。如果有效,將予以批准。謝謝 – Winston