Как подключить GPT к Google Sheets
Три способа интеграции GPT с Google Sheets: от простых расширений до кастомных функций через Apps Script.
Google Sheets — один из самых массовых рабочих инструментов: по данным Google, таблицами пользуются более 3 миллиардов человек. Подключение GPT к Sheets превращает таблицу в инструмент обработки текста: классификация данных, генерация описаний, перевод, извлечение сущностей — всё это можно сделать формулой в ячейке. Рассмотрим три способа интеграции.
Способ 1: Расширение GPT for Sheets
Самый быстрый старт — расширение GPT for Sheets and Docs от Talarian. Установка из Google Workspace Marketplace занимает минуту. После установки введите API-ключ OpenAI в настройках расширения и получите доступ к функциям прямо в ячейках.
Основные функции:
=GPT("Переведи на английский: " & A2)
=GPT_CLASSIFY(A2, "позитивный, негативный, нейтральный")
=GPT_EXTRACT(A2, "email")
=GPT_SUMMARIZE(A2)
=GPT_TAG(A2, "технологии, финансы, здоровье, спорт")Расширение обрабатывает ячейки по одной, поэтому на больших таблицах (1000+ строк) работает медленно. Для пакетной обработки используйте функцию GPT_TABLE, которая отправляет данные группами.
Способ 2: Кастомные функции через Apps Script
Google Apps Script позволяет создать собственные функции для Google Sheets, которые вызывают API напрямую. Этот способ гибче расширения и не требует подписки на сторонний сервис.
Откройте «Расширения → Apps Script» и вставьте код:
const OPENAI_KEY = PropertiesService.getScriptProperties().getProperty('OPENAI_KEY');
function GPT(prompt, model = "gpt-4o-mini") {
const url = "https://api.openai.com/v1/chat/completions";
const payload = {
model: model,
messages: [{role: "user", content: prompt}],
max_tokens: 256,
temperature: 0.3
};
const options = {
method: "post",
headers: {
"Authorization": "Bearer " + OPENAI_KEY,
"Content-Type": "application/json"
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
return json.choices[0].message.content.trim();
}
function CLASSIFY(text, categories) {
return GPT(`Классифицируй текст в одну из категорий: ${categories}.\nТекст: ${text}\nКатегория:`);
}
function EXTRACT_DATA(text, field) {
return GPT(`Извлеки ${field} из текста. Верни только значение.\nТекст: ${text}`);
}Сохраните API-ключ в свойствах скрипта: «Настройки проекта → Свойства скрипта → OPENAI_KEY». После этого функции доступны как обычные формулы: =GPT("Переведи: " & A2).
Способ 3: Python-скрипт с gspread
Для массовой обработки данных эффективнее забрать данные из Google Sheets через API, обработать локально и записать результат обратно. Библиотека gspread делает это просто:
import gspread
from openai import OpenAI
# Авторизация через сервисный аккаунт
gc = gspread.service_account(filename="credentials.json")
sh = gc.open("Данные для обработки")
ws = sh.sheet1
client = OpenAI()
rows = ws.get_all_records()
for i, row in enumerate(rows, start=2):
if row.get("Результат"): # Пропускаем обработанные
continue
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": f"Кратко опиши продукт: {row['Название']}"}],
max_tokens=100
)
result = response.choices[0].message.content
ws.update_cell(i, 4, result) # Записываем в колонку DЭтот подход обрабатывает тысячи строк быстрее, чем формулы в таблице, и позволяет использовать локальные модели вместо облачного API.
Практические кейсы
Обработка отзывов. Загрузите отзывы клиентов в колонку A. В колонке B формула классифицирует тональность, в колонке C — извлекает ключевые жалобы, в колонке D — генерирует шаблон ответа. Один API-запрос стоит доли цента, обработка 500 отзывов обойдётся в $1–2.
Генерация SEO-описаний. Для интернет-магазина: колонка A — название товара, B — характеристики, C — формула =GPT("Напиши SEO-описание товара в 2 предложения: " & A2 & ". Характеристики: " & B2). За час — описания для сотен позиций.
Парсинг неструктурированных данных. Адреса, телефоны, имена из свободного текста. Формула =EXTRACT_DATA(A2, "номер телефона") вытаскивает нужное поле из произвольного текста с точностью 90–95%.
Контроль расходов
Каждый вызов функции — это API-запрос. На таблице из 10 000 строк расходы могут быстро вырасти. Рекомендации:
Используйте gpt-4o-mini вместо gpt-4o — разница в цене 15x при сопоставимом качестве для задач классификации и извлечения. Ограничьте max_tokens — для классификации достаточно 10–20 токенов. Кэшируйте результаты — копируйте столбец с формулами в значения после обработки, чтобы не вызывать API повторно при каждом пересчёте таблицы.
Подробнее о выборе модели под задачу — в нашем руководстве по выбору LLM.
Ограничения
Apps Script имеет лимит в 6 минут на выполнение скрипта и 20 000 вызовов UrlFetch в сутки. Для больших объёмов используйте Python-скрипт или триггеры с распределением нагрузки. Не отправляйте в API персональные данные (ФИО, паспортные данные, медицинские записи) — это нарушает политику обработки данных большинства провайдеров.
GPT + Google Sheets: сценарии автоматизации
Интеграция ChatGPT/Claude с Google Sheets открывает мощные возможности: массовая обработка данных, генерация текстов для каждой строки, категоризация, перевод, SEO-оптимизация без ручного труда. Три основных способа подключения: Apps Script, Zapier/Make, прямой API через формулу.
Способ 1: Google Apps Script + OpenAI API
Самый гибкий способ — написать скрипт в Apps Script (JavaScript) который вызывает OpenAI API: Tools → Apps Script → вставить код → запустить. Скрипт может обрабатывать весь столбец за раз.
function callGPT(prompt) {
const apiKey = 'sk-...';
const payload = {
model: 'gpt-4o-mini',
messages: [{role: 'user', content: prompt}],
max_tokens: 500
};
const options = {
method: 'post',
contentType: 'application/json',
headers: {'Authorization': 'Bearer ' + apiKey},
payload: JSON.stringify(payload)
};
const response = UrlFetchApp.fetch('https://api.openai.com/v1/chat/completions', options);
const data = JSON.parse(response.getContentText());
return data.choices[0].message.content;
}
// Обработка всего столбца A -> результат в столбец B
function processColumn() {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getRange('A2:A100').getValues();
data.forEach((row, i) => {
if (row[0]) {
const result = callGPT('Категоризируй: ' + row[0]);
sheet.getRange(i + 2, 2).setValue(result);
Utilities.sleep(500); // rate limit
}
});
}Способ 2: GPT for Sheets (надстройка)
Надстройка GPT for Sheets and Docs добавляет формулу =GPT(prompt, cell) прямо в таблицу. Установка: Extensions → Add-ons → Get add-ons → поиск 'GPT for Sheets'. Бесплатный план: 100 вызовов/день. Удобно для нетехнических пользователей без кода.
Практические применения
| Задача | Промпт | Результат |
|---|---|---|
| Мета-описание для SEO | 'Напиши meta description 160 знаков для: ' + A2 | Готовый тег |
| Категоризация товаров | 'Определи категорию: ' + A2 + '. Только одно слово.' | Категория |
| Тональность отзывов | 'Тональность (positiv/negativ/neutral): ' + A2 | Метка |
| Перевод | 'Переведи на русский: ' + A2 | Перевод |
| Извлечение email из текста | 'Найди email в тексте. Только email: ' + A2 | Email или пусто |
Стоимость и оптимизация
GPT-4o mini — оптимальный выбор для таблиц: $0.15/1M входящих токенов. 1 000 строк с кратким промптом = ~$0.05–0.15. Для больших объёмов используйте Batch API OpenAI: 50% скидка, асинхронная обработка до 10 000 строк одним запросом.