2015-08-28 37 views
6

Desidero ordinare automaticamente i valori nel foglio di calcolo di Google, non appena immetto il valore in una cella. Di seguito è riportato un esempio:Ordinamento automatico dei record nel foglio di calcolo non appena viene inserito il valore

| S. No. | Task | Value | 
| 1  | Task 1 | $$ | 
| 2  | Task 2 | $$$ | 
| 3  | Task 3 | $$$$ | 
|  |  |  | 

Nella tabella di cui sopra, non appena entro in campo Valore per il Task 3, voglio che vada verso l'alto e il primo dovrebbe venire alla fine. Non voglio ottenere questo manualmente manualmente ogni volta.

+0

Guarda la macro dell'evento [Worksheet_Change] (https://msdn.microsoft.com/en-us/library/office/ff839775.aspx?f=255&MSPPError=-2147217396). Scrivi un codice Torna indietro e mostra il codice se incontri dei problemi. – Jeeped

+0

btw, è questo [Excel] o [foglio di calcolo di google]? Sono due cose completamente diverse quando si parla di codice automatizzato. Scegline uno e possalo. Non gettare fango su un muro per vedere cosa si attacca. – Jeeped

+0

su un foglio google, potresti provare la formula SORT per creare una copia ordinata della tabella che si aggiornerebbe automaticamente quando vengono immessi nuovi valori –

risposta

1

Analogamente al suggerimento di Chris Hick, è possibile inserire i dati in qualsiasi ordine e disporre una copia in ordine. Dal momento che il vostro esempio appare ben ordinato (ascendente) ho assunto si vorrebbe ordinato decrescente (dal S. No.) e che ciò che è in A1:

=query(A:C,"Select * where A is not NULL order by A desc") 

aggiungere un paio di voci 9 in A5, 8 in A6 e la la lista risultante sarà ordinata 9,8,3,2,1.

1

È possibile utilizzare uno script per ordinare automaticamente la tabella. Per fare questo, vai su strumenti> editor di script. Questo aprirà una nuova finestra.

Eliminare il codice che si vede e incollare il seguito in:

function onEdit(event) { 
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var cellColumn = sh.getActiveRange().getColumnIndex(); 
    var currentSheet = sh.getName(); 
    if ((cellColumn == 3) && currentSheet == "enter sheet name here") { 
    var range = sh.getRange("A2:C"); 
    range.sort({column:2, ascending:false}); 
    } 
} 

Sarà necessario modificare il "nome digitare foglio qui" per il nome del foglio che si desidera essere ordinati. Assicurarsi di lasciare le virgolette in.

Se si desidera cambiare il tipo in modo che è ascendente, modificare l'ultima riga da

ascending:false 

a

ascending:true 

Se si desidera cambia l'intervallo dei dati che sono ordinati, quindi puoi farlo sulla riga sopra. Al momento è impostato per ordinare l'intervallo A2:C.