Respuestas:
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
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:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 4;
var tableRange = "B3:E9";
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
}
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 (la Value
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.
null
para el event
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#sort
Aquí 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:
// LinkBack to this script:
// http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036
/**
* Automatically sorts the 1st column (not the header row) Ascending.
*/
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 1;
var tableRange = "A2:T99"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
}
var sheet = SpreadsheetApp.getActiveSpreadsheet();
hacerlo en lugar de lo que hay aquí.
Otra opción sin un script es:
=QUERY(A1:C3,"SELECT * ORDER BY C")
El rango está restringido (A1: C3) porque donde el orden es ascendente aparecerán primero las entradas en blanco.
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.
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:
// Sorts descending by edited column, then ascending by column 1
// Note the use of an array
range.sort([{column: columnToSortBy, ascending: false}, {column: 1, ascending: true}]);
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
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
;
ejemplo= sort(Sheet1!A:C; 3; TRUE)