这将做到这一点。您需要更改表单名称和范围以适合您的数据需求。它还创建了一个自定义菜单来运行它。你可以在表单提交上运行它。
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
}
我已创建此附加组件,以帮助为朋友重新安排Google表单数据。你可以试试[这里:](https://chrome.google.com/webstore/detail/data-splitter/dhaihbfkhlfihidfdedfpaalhppaokbm?utm_source=permalink)。运行插件后,它将创建一个侧栏,您可以在其中选择要合并的列并将其组合成一行。 –