Как перевести продолжительность в секунды в Google Sheets, которая использует IMPORTRANGE - PullRequest
1 голос
/ 26 марта 2020

Я скопировал данные из Googlesheet1 в Googlesheet2, используя следующий запрос

=IMPORTRANGE("url","!A2:H")

, который скопировал данные из Googlesheet1 в Googlesheet2.

В этом листе у меня есть продолжительность столбец как на изображении ниже

enter image description here

Когда я использовал сценарий приложения, чтобы скопировать данные в пожарный магазин, вместо сохранения продолжительности, он сохраняет данные в DateTime формат как ниже. enter image description here

Есть ли способ преобразовать заданную продолжительность в секунды в листе Google.

Я пытался использовать =value(G2*24*3600), но он не работал в Googlesheet2, поскольку этот лист является клоном Googlesheet1

Сценарий приложения Logi c:

function firestore() {
   // Firestore setup
   const email = "//client-email";
   const key = "//client-key";
   const projectId = "timesheet-aog";
   var firestore = FirestoreApp.getFirestore (email, key, projectId);

   // get document data from ther spreadsheet
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheetname = "timesheet";
   var sheet = ss.getSheetByName(sheetname); 
   // get the last row and column in order to define range
   var sheetLR = sheet.getLastRow(); // get the last row
   var sheetLC = sheet.getLastColumn(); // get the last column

   var dataSR = 2; // the first row of data
   // define the data range
   var sourceRange = sheet.getRange(2,1,sheetLR-dataSR+1,sheetLC);

   // get the data
   var sourceData = sourceRange.getValues();
   // get the number of length of the object in order to establish a loop value
   var sourceLen = sourceData.length;

   console.log('sourceLen is', sourceLen);
   // Loop through the rows
   for (var i=0;i<sourceLen;i++){

     var data = {};

     console.log('data is', sourceData);

     data.date = sourceData[i][0];
     data.name = sourceData[i][1];
     data.workFrom = sourceData[i][2];
     data.project = sourceData[i][3];
     data.phase = sourceData[i][4];
     data.task = sourceData[i][5];
     data.totalHrs = sourceData[i][6];
     data.comments = sourceData[i][7];

   firestore.createDocument("timesheet",data);

  }

}

1 Ответ

2 голосов
/ 26 марта 2020

Вот формула для ячейки A1 второго листа:

={
  IMPORTRANGE("url","!A2:F"),
  ARRAYFORMULA(
    IF(
      IMPORTRANGE("url","!G2:G") = "",
        "",
        N(IMPORTRANGE("url","!G2:G")) * 24 * 3600
    )
  ),
  IMPORTRANGE("url","!H2:H")
} 

Попробуйте использовать именованные диапазоны для столбцов (A2:F, G2:G, H2:H) в исходном листе, и импортируйте их по этим именам, чтобы вам не пришлось настраивать формулу, в которой используются точные имена столбцов.

...