Kapitel 3 Case: rydde op i månedens salgstabel ・ MISSION 11

Mission 11: Skriv resultatkolonnen på én gang (setValues)

📋 Missionsliste

Opgave

Skriv "Stor" i kategorien for hver række med et beløb på mindst 100.000. I stedet for at skrive række for række læser du kolonnen på én gang og skriver den på én gang.

Salg oktober - Google Sheets
Salg oktober

Af hensyn til øvelsen går tabellen tilbage til starttilstanden før hver kørsel (et rigtigt regneark gør ikke det. Ændringer fra et script kan nogle gange fortrydes med Ctrl+Z, men ikke alle på én gang).

Apps ScriptUnavngivet projektImplementér ▾
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 ? 'Stor' : '']);
sheet.getRange(2, 5, , 1).(labels);
}
Ctrl+S: gem · Ctrl+R: kør (editor) · F5: åbn igen

Kapitel 3 ・ MISSION 11

Skriv resultatkolonnen på én gang (setValues)

Skriv "Stor" i kategorien for hver række med et beløb på mindst 100.000. I stedet for at skrive række for række læser du kolonnen på én gang og skriver den på én gang.

Nu
Mål

Læs koden

sheet.getRange(2, 4, lastRow - 1, 1).getValues();
Læser lastRow - 1 rækker og 1 kolonne (beløbskolonnen) på én gang, fra række 2, kolonne 4.
amounts.map((row) => [row[0] >= 100000 ? 'Stor' : '']);
Laver et array med "Stor" for rækker på mindst 100.000 og tomt ellers. betingelse ? A : B er en måde at skrive if på én linje.
sheet.getRange(2, 5, labels.length, 1).setValues(labels);
Skriver labels på én gang i kolonne E, lige så mange rækker som labels har.

Læs på én gang med getValues, omdan række for række med map, og skriv på én gang med setValues. Det er hurtigere end celle for celle; selv tusindvis af rækker får dig ikke til at vente. Har området og arrayet forskelligt antal rækker, vises fejlen "The number of rows in the data does not match …".

Hvordan du kommer i gang med GAS og almindelig kode, forklares i en artikel.Hvad er GAS? Kom i gang og almindelig kode

Den kode, du skriver, kører et isoleret sted inde på denne side. Den når ikke uden for siden eller til andre websteder.

* Dette er en simulering af, hvordan Google Sheets og Apps Script fungerer, og kan delvis afvige fra originalen.

* Google Sheets er et varemærke tilhørende Google LLC. Dette websted har ingen forbindelse til Google.