Google Script help for Google Sheets

78 views
Skip to first unread message

Ankith Produtoori

unread,
May 20, 2022, 6:26:21 AM5/20/22
to Google Apps Script Community
Hi Everyone, 

I'm very new to scripting and have been trying to solve this issue for a while now
Please find the link to the google sheet
There are 3 tabs:
  1. RAW data
  2. Output I'm able to achieve
  3. Output I want
I wrote (copy pasted from multiple sources) a script to copy paste particular headers I need from one tab to an other in the sheet like in tab "Output I want" where I wanted  First Name, Last Name and Feedback

I need you help in modifying my script to clearing data every time the script is run and paste the data in "Output I want" Tab from column B9 can you please help me with this

Here is my code:

function review() {
  var names = [
  'First Name','Last Name','Feedback'
  ];
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var ss = sheet.getSheetByName('RAW data');
  var data = ss.getDataRange().getValues();
  var ts = sheet.getSheetByName('Output Im able to achieve');
  ts.getRange(1,1,ts.getLastRow()+1, ts.getLastColumn()+1).clearContent()
  for (var counter = 0; counter <= names.length-1; counter = counter + 1) {
    var col = data[0].indexOf(names[counter]);
    if (col != -1) {
      var range = ss.getRange(1,col+1,ss.getLastRow(),1).getValues();
      ts.getRange(1, ts.getLastColumn()+1, range.length, 1).setValues(range);
    }
  }
}

 

Clark Lind

unread,
May 21, 2022, 4:28:27 PM5/21/22
to Google Apps Script Community
Something like this might do it:

function review() {
  var names = ['First Name','Last Name','Feedback'];
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var ss = sheet.getSheetByName('RAW data');
  var data = ss.getDataRange().getValues();
  var ts = sheet.getSheetByName('Output Im able to achieve');
  var ds = sheet.getSheetByName('Output I want');
  ts.getRange(1,1,ts.getLastRow()+1, ts.getLastColumn()+1).clearContent();
  ds.getRange(9, 2, ds.getLastRow(), names.length ).clearContent();
  for (var counter = 0; counter < data[0].length; counter = counter + 1) {

    var col = data[0].indexOf(names[counter]);
    if (col != -1) {
      var range = ss.getRange(1,col+1,ss.getLastRow(),1).getValues();
      ts.getRange(1, ts.getLastColumn()+1, range.length, 1).setValues(range);
      ds.getRange(9,  ts.getLastColumn()+1, range.length, 1).setValues(range);   
Reply all
Reply to author
Forward
0 new messages