Capitolo 3 Caso pratico: sistemare la tabella delle vendite mensili ・ MISSIONE 11

Missione 11: Scrivere la colonna del risultato in una volta (setValues)

📋 Elenco delle missioni

Consegna

Scrivi «Grande» nella categoria di ogni riga con importo di almeno 100.000. Invece di scrivere riga per riga, leggi la colonna in una volta e scrivila in una volta.

Vendite di ottobre - Fogli Google
Vendite di ottobre

Per l’esercizio, la tabella torna allo stato iniziale prima di ogni esecuzione (un foglio vero non torna indietro. Le modifiche di uno script a volte si annullano con Ctrl+Z, ma non tutte insieme).

Apps ScriptProgetto senza titoloEsegui il deployment ▾
function markLarge() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const amounts = sheet.getRange(2, 4, lastRow - 1, 1).getValues();
const labels = amounts.map((row) => [row[0] >= 100000 ? 'Grande' : '']);
sheet.getRange(2, 5, , 1).(labels);
}
Ctrl+S: salva · Ctrl+R: esegui (editor) · F5: riapri

Capitolo 3 ・ MISSIONE 11

Scrivere la colonna del risultato in una volta (setValues)

Scrivi «Grande» nella categoria di ogni riga con importo di almeno 100.000. Invece di scrivere riga per riga, leggi la colonna in una volta e scrivila in una volta.

Ora
Obiettivo

Leggere il codice

sheet.getRange(2, 4, lastRow - 1, 1).getValues();
Legge in una volta lastRow - 1 righe e 1 colonna (quella degli importi), a partire dalla riga 2, colonna 4.
amounts.map((row) => [row[0] >= 100000 ? 'Grande' : '']);
Crea un array con «Grande» per le righe di almeno 100.000 e vuoto per le altre. condizione ? A : B è un modo di scrivere if su una riga.
sheet.getRange(2, 5, labels.length, 1).setValues(labels);
Scrive labels in una volta nella colonna E, su tante righe quante ne ha labels.

Leggere in una volta con getValues, convertire riga per riga con map e scrivere in una volta con setValues. È più veloce che cella per cella: nemmeno migliaia di righe ti fanno aspettare. Se intervallo e array hanno un numero di righe diverso, compare l’errore «The number of rows in the data does not match …».

Come iniziare con GAS e il codice di uso comune sono spiegati in un articolo.Che cos’è GAS? Come iniziare e codice di uso comune

Il codice che scrivi gira in uno spazio isolato all’interno di questa pagina. Non può raggiungere l’esterno della pagina né altri siti.

* Questa è una simulazione del comportamento di Fogli Google e Apps Script e può differire in parte dall’originale.

* Fogli Google è un marchio di Google LLC. Questo sito non è affiliato a Google.