es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una forma de enviar un correo electrónico automatizado a partir de dos entradas consecutivas idénticas en un formulario de Google en Google Sheets?

Soy el encargado administrativo de la escuela.
Estamos utilizando Google Forms para nuestros registros de asistencia en nuestra academia de idiomas.

El formulario de Google utiliza una cuadrícula de casillas de verificación con los nombres de los estudiantes como filas y las siguientes opciones como columnas:

  • Presente
  • Ausente
  • Tarde
  • En línea
  • Tarea no entregada

Estas respuestas se envían a hojas de cálculo que son revisadas manualmente por el personal administrativo.

Actualmente tenemos un sistema en el que se supone que los profesores deben informar verbalmente al personal administrativo si los estudiantes están ausentes en dos clases o más consecutivas, pero muchos de ellos no trabajan en el centro y pueden olvidarse de actualizar la administración.

He estado buscando un script que desencadene un correo electrónico a una dirección de correo electrónico especificada si un estudiante tiene una entrada de “Ausente” dos veces seguidas, pero que también se reinicie cuando el estudiante vuelva a asistir.

Alternativamente, el nombre del estudiante (información en la Fila 1) que esté ausente dos veces consecutivas podría agregarse a una hoja de cálculo alternativa para su compilación.

¡Espero que alguien pueda ayudar! ¡Gracias!

En este ejemplo, Sofía Vergara (¡ojalá!) estuvo ausente tres veces seguidas, por lo que se debería desencadenar un correo electrónico después de la segunda ausencia. Luego se reiniciaría después de que ella asista a la cuarta clase (E5). Juan López luego está ausente en dos clases consecutivas y debería agregarse a la lista de ausentes.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    Definitivamente puedo ayudarte con eso. Aquí tienes un script que debería hacer el truco:

    function checkAttendance() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var formResponsesSheet = ss.getSheetByName('Form Responses 1');
      var lastRow = formResponsesSheet.getLastRow();
      var data = formResponsesSheet.getRange(lastRow, 1, 1, formResponsesSheet.getLastColumn()).getValues()[0];
      var emailSubject = 'Alerta de Asistencia';
      var emailBody = '';
    
      // comprueba si el estudiante ha estado ausente dos veces seguidas
      var currentStatus = '';
      var previousStatus = '';
    
      for (var i = 1; i < data.length; i++) {
        currentStatus = data[i];
        previousStatus = formResponsesSheet.getRange(lastRow - 1, i + 1).getValue();
    
        if (currentStatus === 'Ausente' && previousStatus === 'Ausente') {
          emailBody += data[0] + ' ha estado ausente en dos clases seguidas.\n\n';
        }
      }
    
      // enviar un correo electrónico si es necesario
      if (emailBody !== '') {
        MailApp.sendEmail('tu.correo@example.com', emailSubject, emailBody);
      }
    
      // agregar al estudiante a la lista de ausentes si es necesario
      var absenteeSheet = ss.getSheetByName('Ausentes');
      var absenteeList = absenteeSheet.getRange(2, 1, absenteeSheet.getLastRow() - 1, 1).getValues().flat();
      var studentName = data[0];
    
      if (emailBody !== '' && absenteeList.indexOf(studentName) === -1) {
        absenteeSheet.appendRow([studentName]);
      }
    
    }
    

    Este script se ejecutará cada vez que se envíe una nueva respuesta al formulario. Comprueba si algún estudiante ha estado ausente en dos clases seguidas y, de ser así, envía un correo electrónico a la dirección especificada con los nombres de los estudiantes ausentes. También agrega el nombre de cualquier estudiante que haya estado ausente en dos clases seguidas a la lista de ausentes.

    Para utilizar este script, abre el editor de scripts en tu archivo de Google Sheets y pega el código. Luego, guarda el script y configura un activador para ejecutar la función checkAttendance cada vez que se envíe una nueva respuesta al formulario.

    ¡Hazme saber si tienes alguna pregunta o si hay algo más en lo que pueda ayudarte!

Comments are closed.