Импорт данных и базовая автоматизация

Урок про то, как затащить готовые данные в таблицу и поручить ей самой повторять скучную работу.

Автоматизация таблицы — это перекладывание повторяющихся действий (импорт, пересчёт, форматирование отчёта) на саму программу, чтобы не делать их руками каждый раз.

Мы умеем считать формулами и формулами массива. Но прежде чем считать, данные нужно куда-то загрузить, а готовый отчёт — регулярно обновлять. Если делать это вручную каждую неделю, уходит время и появляются ошибки. Этот урок — обзор того, как таблица берёт данные извне и как поручить ей рутину.

Импорт данных из CSV

CSV (Comma-Separated Values) — простейший текстовый формат: строки таблицы записаны построчно, а ячейки разделены запятыми или точками с запятой. Почти любая программа умеет выгружать данные в CSV, поэтому это универсальный «мост» между системами.

Имя,Класс,Балл
Анна,9А,87
Борис,9Б,73
Вера,9А,95

Чтобы загрузить такой файл, в Google Sheets выбирают Файл → Импортировать и указывают CSV; в Excel — Данные → Из текста/CSV. Программа спросит разделитель (запятая или точка с запятой) и кодировку — для русского текста чаще всего нужен UTF-8, иначе кириллица превратится в «кракозябры».

Импорт прямо из веба

В Google Sheets есть формулы, которые тянут данные из интернета без скачивания файлов:

  • IMPORTDATA("ссылка.csv") — загружает CSV-файл по прямой ссылке прямо в ячейки.
  • IMPORTHTML("ссылка"; "table"; 1) — вытаскивает первую таблицу с веб-страницы.
=IMPORTDATA("https://example.com/ocenki.csv")

Эти формулы периодически обновляются сами, так что таблица всегда показывает свежие данные источника.

Макросы: запись действий

Если каждую неделю вы делаете одну и ту же последовательность — выделить, отсортировать, покрасить «шапку», поставить рамки — это можно записать как макрос. В Google Sheets: Расширения → Макросы → Записать макрос. Программа запоминает ваши клики, и в следующий раз весь набор действий выполняется по одному нажатию или горячей клавише.

Макрос — это автоматизация «без программирования»: вы просто показываете таблице, что делать, а она повторяет. Под капотом, правда, запись превращается в код — и его можно потом подправить.

Идея Apps Script

За макросами стоит Google Apps Script — встроенный язык на основе JavaScript, на котором пишут собственные функции и сценарии. Полноценное программирование выходит за рамки урока, но важно понять идею: скрипт умеет то, чего не умеют формулы, — например по расписанию очищать лист, отправлять письмо или собирать отчёт из нескольких таблиц.

Простейший скрипт, который пишет приветствие в ячейку A1, выглядит так (это код «для чтения», запускать его в браузере-песочнице нельзя — он работает только внутри Google):

function privet() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange("A1").setValue("Отчёт обновлён");
}

Открывается редактор через Расширения → Apps Script. Скрипт можно повесить на кнопку или на триггер по времени — тогда он сам запустится, скажем, каждый понедельник в 9 утра.

Как это работает: автоматический отчёт

Соберём логику типового недельного отчёта по успеваемости. Идея конвейера: данные приходят из CSV → формулы считают показатели → скрипт по расписанию обновляет лист. Сами расчёты несложно проверить на Python — посчитаем средний балл и долю сдавших порог 75:

data = [("Анна", 87), ("Борис", 73), ("Вера", 95), ("Глеб", 60), ("Дина", 78)]
balls = [b for _, b in data]
sredniy = sum(balls) / len(balls)
sdali = sum(1 for b in balls if b >= 75)
dolya = sdali / len(balls) * 100
print("Средний балл:", round(sredniy, 1))
print("Сдали (>= 75):", sdali, "из", len(balls))
print("Доля сдавших, %:", round(dolya, 1))

Вывод:

Средний балл: 78.6
Сдали (>= 75): 3 из 5
Доля сдавших, %: 60.0

В таблице те же числа дадут формулы: СРЗНАЧ(B2:B6) для среднего, СЧЁТЕСЛИ(B2:B6; ">=75") для количества сдавших. Доля считается как

$$ \text{доля} = \frac{\text{сдали}}{\text{всего}} \cdot 100\% = \frac{3}{5} \cdot 100\% = 60\% $$

Связка получается такой: один раз настраиваем формулы и скрипт, дальше каждую неделю достаточно подложить свежий CSV — отчёт пересчитается сам.

Частые ошибки

  • Неверная кодировка CSV. Кириллица в «кракозябрах» — почти всегда не та кодировка. Импортируйте как UTF-8.
  • Перепутан разделитель. Если все данные легли в один столбец, выбран не тот разделитель (запятая вместо точки с запятой или наоборот).
  • Десятичная запятая в CSV. В русских данных дробное число 3,5 может конфликтовать с запятой-разделителем — тогда числа читаются как текст.
  • Скрипт без разрешений. При первом запуске Apps Script просит доступ к таблице; пока не подтвердите, он не выполнится.
  • Автоматизировали разовую задачу. Запись макроса и скрипт оправданы для регулярной рутины. Для разового действия проще сделать руками.

Итоги

  • CSV — универсальный текстовый формат обмена; при импорте следите за разделителем и кодировкой UTF-8.
  • IMPORTDATA и IMPORTHTML тянут данные из веба прямо в ячейки и обновляются сами.
  • Макрос записывает последовательность действий и повторяет её одним нажатием.
  • Google Apps Script (на основе JavaScript) автоматизирует то, что не под силу формулам, и запускается по триггеру времени.
  • Автоматический отчёт — это конвейер «импорт → формулы → скрипт по расписанию»; настраивается один раз.
Проверьте себя
1. Почему при импорте CSV с русским текстом важно выбрать кодировку UTF-8?
AИначе файл не откроется вообще
BИначе кириллица отобразится нечитаемыми символами («кракозябрами»)
CИначе числа округлятся
DИначе формулы перестанут работать
2. Что такое Google Apps Script по отношению к таблице?
AФормат файла для экспорта таблицы
BВстроенный язык на основе JavaScript для написания скриптов и автоматизации, в том числе по расписанию
CСпособ построить диаграмму
DОблачное хранилище для файлов