En este tutorial vamos a continuar mejorando una lista de tareas en Google Sheets, que es una herramienta muy útil para organizar nuestro día a día y aumentar la productividad. Esta es la segunda parte de un proyecto que he ido desarrollando y ajustando personalmente durante meses, y en esta entrega vamos a ver cómo automatizar la creación de filas nuevas para que la lista nunca se quede sin espacio, además de cómo organizar nuestras tareas según diferentes categorías que se alinean con metodologías de productividad como GTD (Getting Things Done). Esto te ayudará a tener un control más claro de tus pendientes, evitar saturarte con demasiadas tareas en una sola lista y facilitar la gestión de tus actividades personales y laborales.
Ahora, vamos a repasar y detallar los aspectos más importantes que abordamos en esta segunda parte, donde además del código para insertar filas nuevas automáticamente, implementamos una organización más inteligente de las tareas en distintas pestañas según su categoría.
Automatizar la inserción de filas nuevas en la lista de tareas
Uno de los problemas que detecté en la primera versión de la lista de tareas es que, cuando marcamos las tareas como hechas, no se generaban filas nuevas para seguir agregando pendientes, lo que puede ser frustrante si se llenan las filas disponibles. Para solucionarlo, implementamos un script en Google Apps Script que inserta automáticamente una fila nueva justo después de la última fila con datos, cada vez que marcamos una tarea como completada.
La función clave que usamos para insertar filas es insertRowsAfter(fila, cantidad), que permite insertar una o más filas justo después de una fila específica. Para determinar la última fila con datos, usamos el método getLastRow() sobre el rango de datos, y así sabemos dónde insertar la nueva fila.
function agregarFilaNueva() {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Bandeja de entrada");
var ultimaFila = hoja.getLastRow();
hoja.insertRowsAfter(ultimaFila, 1);
}
Este fragmento inserta una fila nueva justo después de la última fila con datos en la hoja llamada «Bandeja de entrada». Lo interesante es que al insertar la fila, también mantenemos las validaciones de datos, como listas desplegables y checklists, para que la experiencia de usuario sea fluida y sin necesidad de configurar manualmente cada vez.
Organizando las tareas con categorías según GTD
Para que la lista de tareas no se vuelva inmanejable, es fundamental organizarla. Basándome en la metodología GTD, dividí las tareas en cuatro categorías principales:
- Agenda: Tareas con fecha y hora específicas, como reuniones o eventos.
- Por hacer: Tareas que hay que realizar pero no tienen una fecha límite estricta.
- Seguimiento: Actividades que requieren supervisión o revisión, como esperar respuestas o resultados.
- Algún día / Tal vez: Ideas o tareas que no son urgentes ni prioritarias, pero que queremos recordar.
Para implementar esto en Google Sheets, creamos una nueva pestaña llamada Listas donde definimos estas categorías para usarlas como opciones en un listado desplegable dentro de la hoja principal. Así, cada tarea puede ser clasificada fácilmente al momento de capturarla.
Listas de categorías:
Agenda
Por hacer
Seguimiento
Algún día
Luego, aplicamos validación de datos en la columna correspondiente para que al ingresar o editar una tarea podamos seleccionar la categoría correcta desde un menú desplegable.
Migrar tareas automáticamente según su categoría
Una vez que tenemos las tareas clasificadas, el siguiente paso es automatizar su organización en pestañas separadas según la categoría. Esto lo hacemos creando cuatro hojas adicionales llamadas Agenda, Por hacer, Seguimiento y Algún día. Con un botón y un script personalizado, podemos migrar las tareas desde la hoja principal a la hoja correspondiente según la categoría seleccionada.
El script detecta la categoría de cada tarea y la copia a la hoja que tenga el mismo nombre. Además, elimina la tarea de la hoja original para evitar duplicados y mantener la lista limpia. Esto hace que la gestión diaria sea mucho más sencilla y visualmente ordenada.
function migrarTareas() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var hojaOrigen = ss.getSheetByName("Bandeja de entrada");
var datos = hojaOrigen.getDataRange().getValues();
// Variables para columnas (ajustar según configuración)
var colCategoria = 3; // Columna donde está la categoría
var colMigrar = 6; // Columna para marcar si migrar
for (var i = datos.length - 1; i >= 1; i--) { // Recorrer de abajo hacia arriba
if (datos[i][colMigrar - 1] === "Migrar") {
var categoria = datos[i][colCategoria - 1];
var hojaDestino = ss.getSheetByName(categoria);
if (hojaDestino) {
hojaDestino.appendRow(datos[i]);
hojaOrigen.deleteRow(i + 1);
}
}
}
}
En este código, recorremos las filas de la hoja de entrada y, cuando detectamos que la columna «Migrar» está marcada, copiamos la fila a la hoja que corresponde según la categoría y la eliminamos de la hoja original. De esta forma, el flujo de trabajo es mucho más organizado y automatizado.
Consejos finales y próximos pasos
Con estos ajustes, ya tienes una lista de tareas mucho más funcional que se adapta a tus necesidades y que te permite mantener el control sin saturarte. Recuerda que la productividad es muy personal y que esta herramienta es una base para que la adaptes según tu estilo y ritmo de trabajo.
Para seguir mejorando, podrías explorar integrar esta lista con Google Calendar para que las tareas de agenda se sincronicen automáticamente, o incluso enviar notificaciones por correo electrónico para las tareas de seguimiento. Estas son ideas que podemos ir desarrollando en futuros tutoriales.
Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.