Rozdział 3 Studium przypadku: porządkowanie miesięcznej tabeli sprzedaży ・ MISJA 11

Misja 11: Zapisz kolumnę wyniku naraz (setValues)

📋 Lista misji

Zadanie

Wpisz „Duże” w kategorii każdego wiersza z kwotą co najmniej 100 000. Zamiast pisać wiersz po wierszu, odczytaj kolumnę naraz i zapisz ją naraz.

Sprzedaż październik - Arkusze Google
Sprzedaż październik

Na potrzeby ćwiczenia tabela przed każdym uruchomieniem wraca do stanu początkowego (prawdziwy arkusz nie wraca. Zmiany skryptu czasem da się cofnąć przez Ctrl+Z, ale nie wszystkie naraz).

Apps ScriptProjekt bez nazwyWdróż ▾
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 ? 'Duże' : '']);
sheet.getRange(2, 5, , 1).(labels);
}
Ctrl+S: zapisz · Ctrl+R: uruchom (edytor) · F5: otwórz ponownie

Rozdział 3 ・ MISJA 11

Zapisz kolumnę wyniku naraz (setValues)

Wpisz „Duże” w kategorii każdego wiersza z kwotą co najmniej 100 000. Zamiast pisać wiersz po wierszu, odczytaj kolumnę naraz i zapisz ją naraz.

Teraz
Cel

Czytanie kodu

sheet.getRange(2, 4, lastRow - 1, 1).getValues();
Odczytuje naraz lastRow - 1 wierszy i 1 kolumnę (kolumnę kwot), zaczynając od wiersza 2, kolumny 4.
amounts.map((row) => [row[0] >= 100000 ? 'Duże' : '']);
Tworzy tablicę z „Duże” dla wierszy co najmniej 100 000, a pustą dla pozostałych. warunek ? A : B to sposób na zapis if w jednym wierszu.
sheet.getRange(2, 5, labels.length, 1).setValues(labels);
Zapisuje labels naraz w kolumnie E, w tylu wierszach, ile ma labels.

Odczytaj naraz przez getValues, przekształć wiersz po wierszu przez map i zapisz naraz przez setValues. To szybsze niż komórka po komórce; nawet tysiące wierszy nie każą ci czekać. Jeśli zakres i tablica mają różną liczbę wierszy, pojawia się błąd „The number of rows in the data does not match …”.

Jak zacząć z GAS i najczęściej używany kod opisujemy w artykule.Czym jest GAS? Jak zacząć i najczęściej używany kod

Twój kod działa w odizolowanym miejscu wewnątrz tej strony. Nie sięga poza stronę ani do innych witryn.

* To symulacja działania Arkuszy Google i Apps Script, która może częściowo różnić się od oryginału.

* Arkusze Google to znak towarowy Google LLC. Ta witryna nie jest powiązana z Google.