Puede usar la sort()
función para eso, pero debe tener sus datos en un lugar y una copia ordenada automáticamente de esos datos en otro lugar.
Por ejemplo, supongamos que tengo Sheet1 con mis datos:
| A | B | C
=====================
1 | This | this | 2
2 | Is | is | 1
3 | Test | test | 3
Luego, en Sheet2, celda A1, pondría esta función:
= ordenar (Hoja1! A: C, 3, VERDADERO)
Esto mostraría mis datos, pero ordenados por la columna C (la tercera columna), ascendente.
| A | B | C
=====================
1 | Is | is | 1
2 | This | this | 2
3 | Test | test | 3
;
ejemplo= sort(Sheet1!A:C; 3; TRUE)
También es posible usar los scripts de Google Apps para lograr la clasificación automática de los datos en el lugar.
Esto puede ser más difícil de lograr y más propenso a errores (todavía elegiría la solución de William Jackson, +1 BTW), pero pensé que era lo suficientemente interesante como para mostrar.
Tengo una hoja que se ve así:
Agregué un nuevo script, usando estos pasos:
en la ventana de código vacía que aparece, pegue el siguiente código, que se ejecutará automáticamente cada vez que se edite una celda:
regrese a la hoja y comience a jugar con los valores para ver la tabla ordenar automáticamente cada vez
Nota:
En el guión anterior,
4
representa el índice de la columna D (laValue
columna, la que se va a ordenar)"B3:E9"
representa el rango de la tabla (excluyendo la fila del encabezado)Lo más probable es que su tabla difiera de la mía, por lo que estos valores deben ajustarse en consecuencia.
fuente
null
para elevent
parámetro, que de otro modo se rellena correctamente con la infraestructura de la hoja de cálculo de Google cuando se desencadena un evento real.range.sort
línea como la siguiente:range.sort( { column : columnToSortBy, ascending: false } );
. Para obtener más opciones de clasificación, visite developers.google.com/apps-script/class_range#sortAquí hay un script genérico que se clasificará automáticamente según la primera columna y asume una fila de encabezado.
Para crear un script:
En la ventana de código vacía, pegue el siguiente código, que se ejecutará automáticamente cada vez que se edite una celda:
fuente
var sheet = SpreadsheetApp.getActiveSpreadsheet();
hacerlo en lugar de lo que hay aquí.Otra opción sin un script es:
El rango está restringido (A1: C3) porque donde el orden es ascendente aparecerán primero las entradas en blanco.
fuente
SELECT * WHERE C <> '' ORDER BY C
para ignorar las entradas en blanco, luego puede usar un rango lo suficientemente grande como para incluir todas las filas actuales y futuras.Usando la solución de script, pero ordena en más de una columna
Quería ordenar por una columna de menú desplegable y luego por fecha.
Para hacerlo, modifique la línea "range.sort" de cualquiera de los fragmentos de código de Cristian o geekspotz de la siguiente manera:
La diferencia es agregar los corchetes alrededor de toda su declaración (matriz) y separar los ordenamientos por comas.
La modificación del código de clasificación extraída de la respuesta de desbordamiento de pila de Serge aquí : Clasificación automática en hojas
fuente
Hojas de cálculo de Google tiene filtros por este mismo motivo y no requiere que cree una nueva hoja en su documento.
Documentación: https://support.google.com/docs/answer/3540681
fuente