Гугл листы: конвертировать рваный массив в 2D массив - PullRequest
0 голосов
/ 11 мая 2018

У меня есть несколько столбцов в одной строке в рваном массиве, и я хочу преобразовать это в 2d массив.

enter image description here

Этот пример может бытьнайдено здесь

Я понимаю, что похожих вопросов было задано для нескольких записей в одной ячейке;однако я не могу понять, как работать с несколькими выходными столбцами.

Любой совет?

1 Ответ

0 голосов
/ 12 мая 2018

Скорее всего, это можно сделать с помощью формулы, но это можно сделать с помощью сценария:

function reOrder() {
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheetByName("Sheet1")//Data sheet
  var s1=ss.getSheetByName("Sheet2")//new sheet
  var lr=s.getLastRow()
  var lc=s.getLastColumn()
  var row=s.getRange(2,1,lr-1,lc).getValues()//get data values
  var array=[]// array for new data
  for(var i=0;i<row.length;i++){
     for(var j=1;j<row[0].length;j=j+3){  
      if(row[i][j+1]==''){break}// If date is blank break row loop
         array.push([row[i][0],row[i][j]," ",row[i][j+1],row[i][j+2]])//new format
    }}
   s1.getRange(2,1,array.length,5).setValues(array)//write array to Sheet2
}

Вы не опубликовали свою электронную таблицу.Вот копия того, что я тестировал.Я положил новые данные на отдельном листе.https://docs.google.com/spreadsheets/d/1KDtzOWZiHra7QYsTrqt40WO4_A-N-LZnKup38jAwIYk/edit?usp=sharing

...