Instrução For loop e if para várias condições

Estou passando um tempo coçando a cabeça com as condições if. Vou deixar claro como a planilha deve funcionar.

Quando os usuários selecionam um valor nos menus suspensos na coluna E, coluna F ou coluna G. A coluna H será atualizada com um valor.

Como deve funcionar:

Equipe 1 - Coluna E

A equipe 1 selecionará "Solicitação enviada" na lista suspensa. O script executará setvalue "REQUEST_SENT" na coluna H.

Equipe 2 - Coluna F

A equipe 2 selecionará "Solicitação recebida". O script executará o setvalue "REQUEST_RECEIVED" na coluna H.

A equipe 2 selecionará "Solicitar upload". O script executará setvalue "REQUEST_Uploading" na coluna H.

A equipe 2 selecionará "Upload concluído". O script executará setvalue "UPLOAD_COMPLETED" na coluna H.

Equipe 3 - Coluna G

A equipe 2 selecionará "Solicitar transferência". O script executará setvalue "REQUEST_TRANSFERRING" na coluna H.

A equipe 2 selecionará "Solicitar na revisão". O script executará setvalue "REQUEST_IN_REVIEW" na coluna H.

A equipe 2 selecionará "Solicitar revisão concluída". O script executará setvalue "REVIEW_COMPLETED" na coluna H.

Equipe 1 - Coluna E

A equipe 1 selecionará "Solicitação aprovada" ou "Solicitação rejeitada" na lista suspensa. O script executará setvalue "REQUEST_APPROVED" ou "REQUEST_REJECTED" na coluna H.

Equipe 2 - Coluna F

Se a equipe 1 selecionou "Solicitação aprovada". A equipe 2 selecionará "Gravar em andamento". O script executará setvalue "BURN_IN_PROGRESS" na coluna H.

A equipe 2 selecionará "Gravar concluída". O script executará setvalue "BURN_COMPLETED" na coluna H.

Equipe 1 - Coluna E

A equipe 1 selecionará "Solicitação enviada" ou "Gravar rejeitado" na lista suspensa. O script executará setvalue "REQUEST_SHIPPED" ou "BURN_REJECTED" na coluna H.

O script abaixo executa o que eu quero, mas quando todos os valores são selecionados na coluna E, F ou G, o valor da coluna H muda para um valor diferente com base na coluna E ou na coluna F.

Deseja que o valor seja definido com base no valor selecionado da última coluna. Pensei em criar colunas de atualização para cada equipe, mas isso tornará a planilha ainda maior. Tente manter a folha compacta.

Aqui está oPlanilha do Google

Aqui o código

Team 1
var REQUEST_SENT = "REQUEST_SENT";
var REQUEST_APPROVED = "REQUEST_APPROVED";
var REQUEST_REJECTED = "REQUEST_REJECTED";
var REQUEST_SHIPPED = "REQUEST_SHIPPED";
var BURN_REJECTED = "BURN_REJECTED";
var REQUEST_CANCELLED = "REQUEST_CANCELLED";

//Team 2
var REQUEST_RECEIVED = "REQUEST_RECEIVED";
var REQUEST_TRANSFERRING = "REQUEST_TRANSFERRING";
var REQUEST_COMPLETED = "REQUEST_COMPLETED";

//Team 3
var REQUEST_IN_REVIEW = "REQUEST_IN_REVIEW";
var PM_REVIEW = "PM_REVIEW";
var REQUEST_TRANSFERRING = "REQUEST_TRANSFERRING";
var BURN_IN_PROGRESS = "BURN_IN_PROGRES";
var BURN_COMPLETED = "BURN_COMPLETED";

function pmSendEmails() {
  var ss1 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var ss2 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
  Logger.log('Sheet1: '+ss1.getSheetName());
  Logger.log('Sheet2: '+ss2.getSheetName());

  var startRow = 2;
  var lastRow1 = ss1.getLastRow()-1;
  var lastRow2 = ss2.getLastRow()-1;
  var range1 = ss1.getRange(startRow, 1, lastRow1, 8);
  var range2 = ss2.getRange(startRow, 1, lastRow2, 3);

  var data1 = range1.getValues();
  var data2 = range2.getValues();

  var addresses = [];
     for (var i = 0; i < data2.length; ++i){
       var row2 = data2[i];
       var cc = row2[1];
       var replyTo = row2[2];
       addresses.push([cc,replyTo])
     }

  var html;

     for (var i = 0; i < data1.length; ++i){
       var row1 = data1[i];
       var projectName = row1[0];
       var projectID = row1[1];
       var projectManager = row1[2];
       var dueDate = Utilities.formatDate(new Date(row1[3]), "America/New_York", "MMMM dd, yyyy");
       var team1 = row1[4];
       var team2 = row1[5];
       var team3 = row1[6];
       var status = row1[7];
 }

Aqui eu preciso colocar a instrução if e condições para atualizar a coluna H

if (condition =="" && (condition !=)){
}

Também abaixo do código será executado se as condições forem verdadeiras.

   var subject = "New DVD Request" + projectName + " ("+projectID+")";
   var user = Session.getActiveUser().getEmail();
   var timestamp = Utilities.formatDate(new Date(), "America/New_York", "MMMM dd, yyyy HH:mm");
   var comments1 = ss1.getRange(startRow + i, 5).getNote();
   comments1 = comments1 + "Request Sent:\n" + user + "\n" + timestamp + "\n";             
   var comments = ss1.getRange(startRow + i, 8).getNote();
   comments = comments + "EMAIL_SENT:\n" + timestamp + "\n";       
   html = projectName+" "+projectID+" "+projectManager+" "+dueDate;       
   var setdata = ss1.getRange(startRow + i, 8).setValue(EMAIL_SENT).setNote(comments);
   var team1Update = ss1.getRange(startRow + i, 5).setNote(comments1);
   var optAdvancedArgs = {replyTo: replyTo, cc: user, name: "Venue Client Services"};
   SpreadsheetApp.flush();
   //MailApp.sendEmail(projectManager, subject, html, optAdvancedArgs);

Entre em contato se precisar de mais informações ou esclarecimentos. Qualquer ajuda seria muito apreciada. Obrigado.

Editar 04/12/14 # 1 Algumas coisas que eu quero que aconteçam. Sempre que uma célula é editada com o intervalo de colunas E, F. G e H, uma nota é adicionada com o endereço de email e o carimbo de data / hora do usuário ativo. No meu código anterior, consegui isso com o código abaixo.

   var user = Session.getActiveUser().getEmail();
   var timestamp = Utilities.formatDate(new Date(), "America/New_York", "MMMM dd, yyyy HH:mm");
   var comments1 = ss1.getRange(startRow + i, 5).getNote();
   comments1 = comments1 + "Request Sent:\n" + user + "\n" + timestamp + "\n";             
   var comments = ss1.getRange(startRow + i, 8).getNote();
   comments = comments + "EMAIL_SENT:\n" + timestamp + "\n";
   var setdata = ss1.getRange(startRow + i, 8).setValue(EMAIL_SENT).setNote(comments);
   var team1Update = ss1.getRange(startRow + i, 5).setNote(comments1);

comments1 define a nota para as seleções de queda na coluna E, F, G e comentários define a nota para a coluna H. Quando coloco o código acima no atual script onEdit (e), nada acontece. Qualquer ajuda sobre como eu posso implementar isso.

Editar 04/12/14 # 2 Também no código anterior, eu era capaz de enviar emails com base nas seleções do menu suspenso nas colunas E, F, G. Portanto, se os usuários selecionarem Solicitar enviado, um email será enviado. Isso é repetido para todas as seleções do menu suspenso nas colunas E, F, G. Qualquer ajuda sobre como implementar o MailApp para cada seleção.

   var html = projectName+" "+projectID+" "+projectManager+" "+dueDate;       
   var optAdvancedArgs = {replyTo: replyTo, cc: user, name: "Venue Client Services"};
   MailApp.sendEmail(projectManager, subject, html, optAdvancedArgs);

questionAnswers(1)

yourAnswerToTheQuestion