Luku 3 Tapaustutkimus: kuukauden myyntitaulukon siistiminen ・ MISSIO 11
Tehtävä 11: Kirjoita tulossarake kerralla (setValues)
Tehtävänanto
Kirjoita ”Iso” jokaisen vähintään 100 000:n summan rivin luokkaan. Älä kirjoita rivi kerrallaan, vaan lue sarake kerralla ja kirjoita se kerralla.
Harjoitusta varten taulukko palaa alkutilaan ennen jokaista suoritusta (oikea taulukko ei palaa. Skriptin muutokset voi joskus kumota Ctrl+Z:lla, mutta ei kaikkia kerralla).
Tiedosto +
Koodi.gs
Luku 3 ・ MISSIO 11
Kirjoita tulossarake kerralla (setValues)
Kirjoita ”Iso” jokaisen vähintään 100 000:n summan rivin luokkaan. Älä kirjoita rivi kerrallaan, vaan lue sarake kerralla ja kirjoita se kerralla.
Koodin lukeminen
- sheet.getRange(2, 4, lastRow - 1, 1).getValues();
- Lukee kerralla lastRow - 1 riviä ja 1 sarakkeen (summasarakkeen) alkaen riviltä 2, sarakkeesta 4.
- amounts.map((row) => [row[0] >= 100000 ? 'Iso' : '']);
- Tekee taulukon, jossa vähintään 100 000:n riveillä on ”Iso” ja muilla tyhjä. ehto ? A : B on tapa kirjoittaa if yhdelle riville.
- sheet.getRange(2, 5, labels.length, 1).setValues(labels);
- Kirjoittaa labelsin kerralla sarakkeeseen E niin monelle riville kuin labelsissa on.
Lue kerralla getValuesilla, muunna rivi kerrallaan mapilla ja kirjoita kerralla setValuesilla. Se on nopeampaa kuin solu kerrallaan; tuhannetkaan rivit eivät pakota odottamaan. Jos alueella ja taulukolla on eri määrä rivejä, tulee virhe ”The number of rows in the data does not match …”.
GAS:n aloittaminen ja yleinen koodi on koottu artikkeliin.Mikä on GAS? Aloittaminen ja yleinen koodi
Kirjoittamasi koodi toimii eristetyssä paikassa tämän sivun sisällä. Se ei ulotu sivun ulkopuolelle eikä muille sivustoille.
* Tämä on simulaatio Google Sheetsin ja Apps Scriptin toiminnasta, ja se voi osin poiketa alkuperäisestä.
* Google Sheets on Google LLC:n tavaramerkki. Tämä sivusto ei liity Googleen.