Kapitel 3 Fallstudie: städa upp månadens försäljningstabell ・ MISSION 11
Uppdrag 11: Skriv resultatkolumnen på en gång (setValues)
Uppgift
Skriv ”Stor” i kategorin för varje rad med ett belopp på minst 100 000. I stället för att skriva rad för rad läser du kolumnen på en gång och skriver den på en gång.
För övningens skull återgår tabellen till startläget före varje körning (ett riktigt kalkylark gör inte det. Ändringar från ett skript kan ibland ångras med Ctrl+Z, men inte alla på en gång).
Arkiv +
Kod.gs
Kapitel 3 ・ MISSION 11
Skriv resultatkolumnen på en gång (setValues)
Skriv ”Stor” i kategorin för varje rad med ett belopp på minst 100 000. I stället för att skriva rad för rad läser du kolumnen på en gång och skriver den på en gång.
Läsa koden
- sheet.getRange(2, 4, lastRow - 1, 1).getValues();
- Läser lastRow - 1 rader och 1 kolumn (beloppskolumnen) på en gång, med början på rad 2, kolumn 4.
- amounts.map((row) => [row[0] >= 100000 ? 'Stor' : '']);
- Bygger en array med ”Stor” för rader på minst 100 000 och tomt annars. villkor ? A : B är ett sätt att skriva if på en rad.
- sheet.getRange(2, 5, labels.length, 1).setValues(labels);
- Skriver labels på en gång i kolumn E, lika många rader som labels har.
Läs på en gång med getValues, gör om rad för rad med map och skriv på en gång med setValues. Det går snabbare än cell för cell; inte ens tusentals rader får dig att vänta. Har området och arrayen olika antal rader visas felet ”The number of rows in the data does not match …”.
Hur du kommer i gång med GAS och vanlig kod beskrivs i en artikel.Vad är GAS? Komma i gång och vanlig kod
Koden du skriver körs på en isolerad plats inne på den här sidan. Den når inte utanför sidan eller andra webbplatser.
* Detta är en simulering av hur Google Kalkylark och Apps Script fungerar och kan delvis skilja sig från originalet.
* Google Kalkylark är ett varumärke som tillhör Google LLC. Den här webbplatsen har ingen koppling till Google.