AI w Arkuszach Google: własna formuła =AI() przez API w złotówkach
Gotowy skrypt Apps Script z funkcją =AI(), bezpieczne trzymanie klucza, cache przed podwójnymi opłatami, koszt 500 opisów na 5 modelach i limity Arkuszy.

👁 116 przeczytań
AI w Arkuszach Google da się dodać jako zwykłą formułę: wpisujesz =AI("Napisz opis produktu"; A2) i komórka zwraca odpowiedź modelu. Wystarczy kilkanaście linijek w Apps Script i klucz API. Pokazuję cały skrypt, jak ustawić klucz, żeby nie wisiał w arkuszu, jak nie płacić dwa razy za to samo przy przeliczaniu i ile kosztuje 500 opisów produktów na kilku modelach, w złotówkach i z fakturą.
Po co formuła z AI w arkuszu
Arkusz to naturalne miejsce na powtarzalne zadania tekstowe. Kolumna z nazwami produktów i kolumna z opisami. Lista opinii klientów i kolumna z oceną nastroju. Tytuły artykułów i kolumna z kategorią. Kopiowanie każdego wiersza do czatu i z powrotem zajmuje godziny, a formuła przeciągnięta w dół robi to w kilka minut.
Gotowe dodatki z marketplace zwykle mają własny abonament i limit. Własna funkcja przez API kosztuje tyle, ile zużyte tokeny, a model wybierasz sam: tani do kategoryzacji, mocniejszy do tekstów, które ktoś będzie czytał.
Krok 1. Klucz API i jego zapisanie
Potrzebny jest klucz do API zgodnego z OpenAI. W moim serwisie Jantaris doładowujesz saldo BLIK-iem albo kartą od 40 zł i tworzysz w panelu osobny klucz z miesięcznym limitem wydatków. Faktura VAT wystawia się po każdym doładowaniu.
Klucza nie wpisuj do komórki ani do kodu. Każdy, kto ma dostęp do arkusza, zobaczyłby go. W edytorze Apps Script (Rozszerzenia, Apps Script) otwórz Ustawienia projektu, sekcję Właściwości skryptu, i dodaj właściwość JANTARIS_KEY z wartością sk-jt-....
Krok 2. Skrypt funkcji =AI()
W edytorze Apps Script wklej kod i zapisz projekt:
const URL =
"https://jantaris.com/v1/chat/completions";
const MODEL = "gpt-6-luna";
/**
* Odpowiedź modelu AI.
* @customfunction
*/
function AI(polecenie, dane) {
const tekst = dane
? polecenie + "\n\n" + dane
: polecenie;
const cache =
CacheService.getScriptCache();
const klucz = Utilities.base64Encode(
Utilities.computeDigest(
Utilities.DigestAlgorithm.MD5,
MODEL + tekst));
const zapis = cache.get(klucz);
if (zapis) return zapis;
const r = UrlFetchApp.fetch(URL, {
method: "post",
contentType: "application/json",
muteHttpExceptions: true,
headers: { Authorization:
"Bearer " + PropertiesService
.getScriptProperties()
.getProperty("JANTARIS_KEY") },
payload: JSON.stringify({
model: MODEL,
max_tokens: 300,
messages: [{ role: "user",
content: tekst }]
})
});
const j = JSON.parse(
r.getContentText());
if (!j.choices)
return "BLAD " + r.getResponseCode();
const odp =
j.choices[0].message.content.trim();
cache.put(klucz, odp, 21600);
return odp;
}W arkuszu wpisujesz na przykład:
=AI("Napisz opis produktu do
sklepu, 2 zdania, bez
przymiotników w stopniu
najwyższym:"; A2)Funkcja skleja polecenie z zawartością komórki, wysyła do modelu i zwraca tekst. Parametr max_tokens ucina zbyt długie odpowiedzi, co przy setkach wierszy chroni rachunek.
Dlaczego w skrypcie jest cache
Arkusz przelicza formuły częściej, niż się wydaje: po otwarciu pliku, po zmianie sąsiednich komórek, po skopiowaniu zakresu. Bez zabezpieczenia każde przeliczenie to nowe zapytanie i nowa opłata za ten sam tekst.
Skrypt liczy skrót z modelu i treści zapytania i zapisuje odpowiedź w pamięci podręcznej na 6 godzin, czyli najdłużej, jak pozwala Apps Script. Ten sam wiersz w tym czasie nie kosztuje drugi raz. Gdy wynik ma zostać na stałe, zaznacz kolumnę, skopiuj i wklej jako same wartości. Wtedy formuła znika i nic się już nie przeliczy.
Nie przepłacaj za te subskrypcje
Prowadzę sklep z rocznymi dostępami do narzędzi AI - te same konta, o których piszę wyżej, tylko taniej niż w cenniku producenta.
Ile kosztuje 500 opisów produktów
Przyjmuję 300 tokenów wejścia (polecenie i dane produktu) i 150 tokenów wyjścia na wiersz. Dla 500 produktów to 150 tys. tokenów wejścia i 75 tys. wyjścia. Ceny brutto z publicznego katalogu API z 26.10.2026:
Do kategoryzacji i krótkich etykiet wystarczy najtańszy model. Teksty, które trafią do klientów, zrób na próbce 20 wierszy w dwóch modelach i porównaj, zanim puścisz całą kolumnę. Model zmieniasz jedną linijką: const MODEL = "claude-sonnet-5.5";.
Limity, na które trafisz
- 30 sekund na wywołanie. Funkcja niestandardowa w Arkuszach musi zakończyć się w tym czasie. Krótkie odpowiedzi mieszczą się bez problemu, długie teksty lepiej generować skryptem uruchamianym z menu, który zapisuje wyniki w pętli.
- Dzienny limit zapytań UrlFetch. Na zwykłym koncie Google to 20 tys. wywołań dziennie, więcej niż potrzebuje większość arkuszy.
- Wiele komórek naraz. Po przeciągnięciu formuły na tysiąc wierszy Arkusze wysyłają zapytania partiami i część komórek chwilę pokazuje „Wczytywanie”. To normalne.
- Błąd w komórce. Skrypt zwraca „BLAD” z kodem HTTP: 401 to zły klucz, 402 za niskie saldo, 403 limit miesięczny klucza.
Wersja wsadowa: setki wierszy bez limitu 30 s
Przy dłuższych tekstach albo tysiącach wierszy lepiej działa skrypt uruchamiany z menu. Przechodzi po kolumnie A i wpisuje odpowiedzi do kolumny B jako zwykłe wartości, więc nic się potem nie przelicza:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("AI")
.addItem("Opisy do kolumny B",
"opisy")
.addToUi();
}
function opisy() {
const ark = SpreadsheetApp
.getActiveSheet();
const n = ark.getLastRow();
for (let w = 2; w <= n; w++) {
if (ark.getRange(w, 2)
.getValue()) continue;
const dane = ark.getRange(w, 1)
.getValue();
ark.getRange(w, 2).setValue(
AI("Opis produktu, "
+ "2 zdania:", dane));
}
}Skrypt pomija wiersze, które mają już opis, więc po przerwaniu wystarczy uruchomić go jeszcze raz. Pojedyncze uruchomienie z menu może trwać do 6 minut na zwykłym koncie Google, więc bardzo długie listy przerób w kilku turach.
Przykłady formuł do skopiowania
=AI("Kategoria jednym słowem:
elektronika, dom, moda,
sport albo inne"; B2)
=AI("Nastrój opinii: pozytywny,
neutralny albo negatywny.
Tylko jedno słowo."; C2)
=AI("Przetłumacz na angielski,
zachowaj nazwy własne:"; D2)W poleceniach do arkusza zawsze określaj format odpowiedzi: jedno słowo, lista do wyboru, liczba zdań. Bez tego model dopisuje wstępy w rodzaju „Oto opis:”, które potem trzeba czyścić w każdej komórce.
A co z Excelem
W Excelu ta sama zasada działa przez makro VBA albo Office Scripts, które wysyła zapytanie do tego samego adresu /v1/chat/completions. Kod jest dłuższy niż w Arkuszach, dlatego do szybkich eksperymentów prostsze są Arkusze Google. Opis endpointu czatu i pól odpowiedzi jest w dokumentacji czatu.
Gdy arkusz to tylko etap, a dane mają płynąć dalej, na przykład z formularza do sklepu, wygodniejszy będzie automat. Jak połączyć to samo API z n8n i Make, opisałem w tekście o automatach z API w n8n i Make.
Najczęstsze pytania
Jak dodać AI do Arkuszy Google?
Przez Apps Script: funkcja niestandardowa wysyła zawartość komórki do API modelu i zwraca odpowiedź. Klucz API trzymasz we właściwościach skryptu, a w arkuszu wpisujesz =AI("polecenie"; A2).
Ile kosztuje AI w arkuszu?
Tyle, ile zużyte tokeny. 500 krótkich opisów produktów to około 0,31 zł na GPT-6 Luna i 5,43 zł na Claude Sonnet 5.5, brutto (stan 26.10.2026).
Czy potrzebuję ChatGPT Plus?
Nie. Abonament ChatGPT nie daje dostępu do API. Formuła korzysta z klucza API rozliczanego za zużycie, bez abonamentu.
Dlaczego formuła liczy się kilka razy?
Arkusze przeliczają formuły po otwarciu pliku i zmianach w arkuszu. Skrypt z tego tekstu zapisuje odpowiedzi w pamięci podręcznej na 6 godzin, a gotowe wyniki warto wkleić jako wartości.
Czy dane z arkusza trafiają do trenowania modeli?
W moim serwisie polecenia i wyniki nie są używane do trenowania modeli. Danych osobowych klientów i tak nie wysyłaj do żadnego modelu bez podstawy prawnej.
Czytasz Promptowego częściej? Dodaj go do preferowanych źródeł w Google, a nowe teksty będą wyżej w Twoich wynikach.
Źródła i data sprawdzenia
Ceny i limity sprawdziłem 26.10.2026.
- Jantaris - publiczny katalog API z cenami modeli czatu w PLN
- Google Apps Script - funkcje niestandardowe w Arkuszach (limit 30 s, dostępne usługi)
- Google Apps Script - limity i przydziały (UrlFetch)
- Google Apps Script - CacheService (maksymalnie 6 godzin)
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →- dygot.plLidl i Europa: plan na własną AI. Właściciel dyskontów buduje zaplecze z twórcą superkomputerów
- przewagi.plGoogle Ads na Black Friday 2026: agencja od 1 500 zł netto, ChatGPT Ads od 65 zł dziennie i plan na 4 tygodnie
- generatornia.plZdjęcie z mikołajem AI: jak zrobić świąteczny portret ze swojego selfie
- jutropis.plUstawa o AI podpisana. Skargi do KRiBSI i testy dla firm
