Ordená tus datos por fecha y hora automáticamente
Te pasó lo que le pasa a cualquiera: ya lograste que la planilla se ordene sola por fecha, pero ahora necesitás que también considere el horario para que no sea un caos visual. Es frustrante estar pegando fragmentos de código de tutoriales sin entender qué parte tocar cuando querés sumar un segundo criterio y ver que nada cambia en tu hoja de cálculo.
El Plan de Acción: 2. Reestructuración del comando de ordenamiento: Modificar la instrucción de Google Apps Script para que deje de leer un solo criterio y pase a procesar una lista de prioridades. 3. Validación de rango: Asegurar que el área de impacto (tu tabla) se mantenga fija para que el script no ordene celdas fuera de lugar.
Implementación Detallada: Para solucionar esto, no necesitás aprender programación, solo necesitás saber “dónde meter los corchetes”. El error en tu código actual es que le estás dando una instrucción simple (una sola columna), cuando para un orden multinivel, Apps Script necesita una lista (un array).
Seguí estos pasos técnicos:
- Abrí tu Google Sheet y andá a “Extensiones” > “Apps Script”.
- Borrá todo el código que tenés actualmente en el editor.
- Copiá y pegá este nuevo código, pero prestá mucha atención a la parte que te marco abajo:
function onEdit(event){
// 1. Definimos la hoja de trabajo
var w = event.source.getSheetByName("Case Tracker");
// 2. Identificamos la celda que acabás de editar
var c = event.range;
// 3. Definimos qué columna dispara el orden (la 5 es tu fecha)
var srtby = 5;
// 4. Definimos el rango total que queremos mover (tu tabla)
var t = "A10:J115";
// 5. Verificamos si la edición fue en la columna de interés
if(c.getColumn() == srtby){
var range = w.get_Range(t); // Nota: Usamos el rango definido arriba
// AQUÍ ESTÁ EL TRUCO:
// En lugar de usar solo {column: 5}, usamos corchetes [] para crear una lista de prioridades.
range.sort([
{ column: 5, ascending: true }, // Primero ordena por la columna 5 (Fecha)
{ column: 6, ascending: true } // Segundo ordena por la columna 6 (Hora)
]);
}
}
Puntos clave para que no falle:
- El número de la columna de “Hora”: En el código te puse
column: 6. Si tu hora está en la columna F, es la 6. Si está en la G, cambialo por 7. Solo tenés que contar desde la A (A=1, B=2, etc.). - Los corchetes
[ ]: Son fundamentales. Sin ellos, el script solo entiende una instrucción. Con ellos, entiende una jerarquía de importancia. - El rango
t = "A10:J115": Si tu tabla crece en el futuro, recordá estirar este número para que no se queden datos afuera del orden automático.
Al guardar y editar cualquier celda de la columna 5, verás cómo la planilla primero agrupa todas las fechas iguales y, dentro de cada fecha, acomoda los horarios cronológicamente. Ganaste tiempo y limpieza visual sin tocar una sola fórmula compleja.
Herramienta Sugerida: ChatGPT (versión gratuita o Plus). Es la herramienta ideal para este caso porque actúa como un traductor de lógica. Si mañana necesitás que el orden sea descendente o agregar una tercera columna (por ejemplo, “Prioridad”), no hace falta que busques tutoriales; solo le pasas tu código actual y le pedís el cambio. Su capacidad para entender la estructura de objetos en JavaScript (el lenguaje de Apps Script) es perfecta para resolver errores de sintaxis como este.
Prompt para copiar:
Tengo este código de Google Apps Script que ordena una hoja llamada "Case Tracker" por la columna 5 cuando edito esa misma columna:
function onEdit(event){
var w = event.source.getSheetByName("Case Tracker");
var c = w.getActiveCell();
var srtby = 5;
var t = "A10:J115";
if(c.getColumn() == srtby){
var range = w.getRange(t);
range.sort( { column : srtby, ascending: true } );
}
}
Necesito modificarlo para que cuando edite la columna 5, el rango "A10:J115" se ordene con dos criterios: primero por la columna 5 de forma ascendente y, como segundo criterio, por la columna 6 de forma ascendente. Por favor, dame el código completo listo para copiar y pegar.