Chapitre 3 Étude de cas : mettre au propre le tableau des ventes mensuelles ・ MISSION 11

Mission 11 : Écrire la colonne résultat d’un coup (setValues)

📋 Liste des missions

Énoncé

Écrivez « Gros » dans la catégorie de chaque ligne dont le montant est d’au moins 100 000. Au lieu d’écrire ligne par ligne, lisez la colonne d’un coup et écrivez-la d’un coup.

Ventes d’octobre - Google Sheets
Ventes d’octobre

Pour l’entraînement, le tableau revient à son état de départ avant chaque exécution (une vraie feuille ne revient pas en arrière. Les modifications d’un script s’annulent parfois avec Ctrl+Z, mais pas toutes d’un coup).

Apps ScriptProjet sans titreDéployer ▾
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 ? 'Gros' : '']);
sheet.getRange(2, 5, , 1).(labels);
}
Ctrl+S : enregistrer · Ctrl+R : exécuter (éditeur) · F5 : rouvrir

Chapitre 3 ・ MISSION 11

Écrire la colonne résultat d’un coup (setValues)

Écrivez « Gros » dans la catégorie de chaque ligne dont le montant est d’au moins 100 000. Au lieu d’écrire ligne par ligne, lisez la colonne d’un coup et écrivez-la d’un coup.

Maintenant
Objectif

Lire le code

sheet.getRange(2, 4, lastRow - 1, 1).getValues();
Lit d’un coup lastRow - 1 lignes et 1 colonne (la colonne des montants), à partir de la ligne 2, colonne 4.
amounts.map((row) => [row[0] >= 100000 ? 'Gros' : '']);
Construit un tableau avec « Gros » pour les lignes d’au moins 100 000, vide sinon. condition ? A : B est une façon d’écrire if sur une ligne.
sheet.getRange(2, 5, labels.length, 1).setValues(labels);
Écrit labels d’un coup en colonne E, sur autant de lignes que labels.

Lire d’un coup avec getValues, convertir ligne par ligne avec map et écrire d’un coup avec setValues. C’est plus rapide que cellule par cellule ; même des milliers de lignes ne vous font pas attendre. Si la plage et le tableau n’ont pas le même nombre de lignes, l’erreur « The number of rows in the data does not match … » apparaît.

Débuter avec GAS et le code courant sont expliqués dans un article.Qu’est-ce que GAS ? Débuter et code courant

Votre code s’exécute dans un espace isolé à l’intérieur de cette page. Il ne peut atteindre ni l’extérieur de la page ni d’autres sites.

* Ceci est une simulation du comportement de Google Sheets et d’Apps Script, qui peut différer en partie de l’original.

* Google Sheets est une marque de Google LLC. Ce site n'est pas affilié à Google.