ШІ-автоматизація звучить модно, але найчастіше бізнесу потрібне простіше: прибрати ручну “копіпасту” і стабільно збирати цифри в один звіт. У маркетолога це може бути 30–60 хв щодня: звести витрати з кількох таблиць, підрахувати підсумки, рознести по датах. За місяць це легко перетворюється на 10–20 годин рутини — і ще ризик помилок.

Проблема ручної звітності
Проблема ручної звітності

Хороша новина: Google Sheets — це не просто таблиця, а платформа, де можна написати невеликий скрипт і перетворити звітність на автоматичний процес.

Чому саме Apps Script?

Apps Script — вбудована мова автоматизації від Google, яка працює прямо “всередині” Google Workspace.

Практичний кейс: Код в Таблиці
Практичний кейс: Код в Таблиці
  • Безкоштовно: не платите щомісяця за ліміти, як у Zapier/Make (особливо коли задач стає більше).
  • Хмарно: код виконується на серверах Google — ваш ПК може бути вимкнений.
  • Інтеграції: прямий доступ до Gmail, Drive, Calendar і до зовнішніх API через fetch (у Apps Script це UrlFetchApp).
  • Контроль: ви керуєте логікою, форматами, періодичністю та помилками.

Практичний кейс: зібрати витрати з 5 різних файлів у один звіт

Сценарій типового бізнесу: є 5 таблиць (реклама/відділи/філії), у кожній лист Costs з колонками:

  • A: Date (наприклад 2026-02-20)
  • B: Source (Google Ads / Meta / TikTok / інше)
  • C: Amount (число)

Задача: зібрати все в одну консолідовану таблицю Report у вашому “головному” файлі.

Код (вставити як є)

function buildReport() {
  // 1) Посилання на 5 джерел (ID файлів Google Sheets)
  const SOURCE_SPREADSHEETS = [
    'PASTE_FILE_ID_1',
    'PASTE_FILE_ID_2',
    'PASTE_FILE_ID_3',
    'PASTE_FILE_ID_4',
    'PASTE_FILE_ID_5',
  ];

  const SOURCE_SHEET_NAME = 'Costs';  // звідки читаємо
  const TARGET_SHEET_NAME = 'Report'; // куди пишемо

  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const target = ss.getSheetByName(TARGET_SHEET_NAME) || ss.insertSheet(TARGET_SHEET_NAME);

  // 2) Заголовки для зведення
  const out = [['Date', 'Source', 'Amount', 'FromFile']];

  // 3) Проходимо всі файли і збираємо рядки
  SOURCE_SPREADSHEETS.forEach((fileId) => {
    const srcSS = SpreadsheetApp.openById(fileId);
    const srcSheet = srcSS.getSheetByName(SOURCE_SHEET_NAME);
    if (!srcSheet) return;

    const values = srcSheet.getDataRange().getValues();
    // пропускаємо заголовок (рядок 1)
    for (let i = 1; i < values.length; i++) {
      const [date, source, amount] = values[i];
      if (!date || !source || !amount) continue;

      out.push([date, source, Number(amount), srcSS.getName()]);
    }
  });

  // 4) Очистити старе і записати нове
  target.clearContents();
  target.getRange(1, 1, out.length, out[0].length).setValues(out);

  // 5) Мінімальне форматування
  target.getRange('A:A').setNumberFormat('yyyy-mm-dd');
  target.getRange('C:C').setNumberFormat('#,##0.00');
  target.autoResizeColumns(1, out[0].length);
}

Як запустити (для не-програміста)

  1. Відкрийте “головну” таблицю, де має бути звіт.
  2. Меню: Розширення → Apps Script.
  3. Вставте код у файл Code.gs.
  4. Натисніть Run / Виконати для buildReport.
  5. Перший запуск попросить доступи — натисніть Allow / Дозволити.
  6. Після цього у вас з’явиться лист Report із консолідованими даними.

Triggers: автоматизація без участі людини

Тригери та автоматизація
Тригери та автоматизація

Щоб звіт збирався сам (наприклад, щоночі о 03:00):

  1. Apps Script → зліва Triggers (Тригери)
  2. Add Trigger
  3. Function: buildReport
  4. Event source: Time-driven
  5. Time: Day timer → 3:00–4:00

Тепер звіт оновлюється без ручного запуску.

Поради від профі (щоб не “падало”)

  • Ліміти виконання: скрипти мають обмеження часу (часто згадують 6 хв/30 хв залежно від типу акаунта). Якщо даних багато — обробляйте пакетами, пишіть частинами, зберігайте прогрес у Properties.
  • Безпека ключів: не вставляйте API-ключі прямо в код. Краще тримати їх у Script Properties або в Google Cloud Console як секрети.
  • Стабільність: додавайте простий контроль помилок і логування (Logger.log). Мій досвід із Google Cloud SkillBoost добре “приземляє” підхід: архітектура має бути такою, щоб процес відновлювався і не ламав бізнес-звітність через одну помилку в JSON або API.
Поради від профі
Поради від профі

Економічний ефект

Навіть якщо скрипт економить 30 хв на день, це ~10 годин на місяць. Для маркетолога/менеджера це або реальні гроші, або час на задачі, що приносять дохід. І головне — звіт стає стабільним, без людських помилок.