Excel 2016 für Mac - Konvertieren einer Matrix in eine Liste

-1

Ich habe hier bereits einige Antworten gesehen, aber keine funktioniert in Excel 2016 für Mac.

Ich möchte eine einfache Lösung, um eine Matrix in eine Liste wie diese umzuwandeln:

date    city1   city2   cityN
jan1    value   value   value
jan2    value   value   value

zu

date    city    value
jan1    city1   value
jan1    city2   value
jan1    cityN   value
jan2    city1   value
jan2    city2   value
jan2    cityN   value
João Saro
quelle
Sie haben Antworten gesehen? Welche? Hast du sie benutzt? Sie haben nicht funktioniert? Warum nicht? Was ist passiert? Haben Sie versucht, das zu beheben?
Raystafarian
Versionsprobleme. Ich habe ein Skript auf Google Spreedsheet verwendet:
João Saro

Antworten:

0

Ich habe ein Google Spreedsheet-Skript verwendet:

function transformData(){

var sheet = SpreadsheetApp.getActiveSheet();
 var data = sheet.getDataRange().getValues();//read whole sheet
 var output = [];
 var headers = data.shift();// get headers
 var empty = headers.shift();//remove empty cell on the left
 var products = [];
   for(var d in data){
     var p = data[d].shift();//get product names in first column of each row
     products.push(p);//store
   }
 Logger.log('headers = '+headers);
 Logger.log('products = '+products);
 Logger.log('data only ='+data);
 for(var h in headers){
   for(var p in products){  // iterate with 2 loops (headers and products)
     var row = [];
     row.push(headers[h]);
     row.push(products[p]);
     row.push(data[p][h])
     output.push(row);//collect data in separate rows in output array
   }
 }
 Logger.log('output array = '+output);
 var ns = SpreadsheetApp.getActive().getSheets().length+1
 SpreadsheetApp.getActiveSpreadsheet().insertSheet('New Sheet'+ns,ns).getRange(1,1,output.length,output[0].length).setValues(output);
}
João Saro
quelle