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)
É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.
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).
Fichier +
Code.gs
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.
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.